Vinum Raid 5: Bad HD Crashes Server. Can't rebuild array.
FX Charpentier
charpentierfx at yahoo.com
Thu Oct 18 20:27:24 PDT 2007
Hi there,
I setup this FreeBSD 4.9 a while back (I know, I know this isn't the latest version; but look it's been running perfectly since then), with the OS on a SCSI drive and a vinum volume on 3 IDE 200GB drives, hook on a Promise IDE controller.
A) The Crash
= = = = = = =
The vinum volume is set in a Raid 5 configuration. Here is how it's configured:
drive d1 device /dev/ad4s1h
drive d2 device /dev/ad5s1h
drive d3 device /dev/ad6s1h
volume datastore
plex org raid5 256k
subdisk length 185g
drive d1
subdisk length 185g
drive d2
subdisk length 185g
drive d3
Each drive in the array had a single partition, and were labeled with a type of "vinum" and an "h" partition.
Last Saturday night, drive d2 (ad5) went bad. To my surprise the server stopped, crashed and automatically rebooted. I got a "kernel panic" at the console and the server would stop during the boot process when trying to start / mount the vinum volume.
=> Q1: Isn't a Raid 5 configuration supposed to allow me to run on a degraded array, when 1 of the drive is missing?
=> Q2: Did I do anything wrong with the vinum config above?
B) The Recovery (well, sort of)
= = = = = = = = = = = = = = =
So, the next day I got a brand new 250GB hard drive and replaced d2 (ad5). Then I did the fixit floppy thing to comment out vinum from both rc.conf and fstab. This way I was able to start the server.
I prepared the new drive with Fdisk first, then did a 'disklabel' to change the type to "vinum" and the partition to "h". After that I created a special vinum configuration file called 'recoverdata' to recover the volume, and put "drive d2 device /dev/ad5s1h" there. Finally I ran: vinum create -v recoverdata. This worked and I finally entered vinum in interactive mode.
First thing, I started vinum with the 'start' command. That worked. Next, I did a "ld -v" to bring information about the vinum drives. Vinum drive d1 came up with the right information. d2 came
up with some information. d3 had all fields, but no information. It was just like a drive with only blank information.
I checked d2, formerly failed, was pointing at ad5, then ran an "lv -r" to ensure that datastore.p0 said 'degraded'. It did. Finally to rebuild the array I ran: start datastore.p0.
At that point I didn't notice right away, but I had "vinum [xxx]: reviving datastore.p0.s0". I started to get worried the drive to rebuild is datastore.p0.s1. Then reviving failed at 69%.
I tried "start datastore.p0.s1" to rebuild the array, but that failed at 69% too.
=> Q3: What can I do to revive the array? I don't know what to do at this point.
=> Q4: Did I do anything wrong in the recovery process? Just want to make sure I learn from my mistakes.
Many thanks for your help in advance.
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
More information about the freebsd-questions
mailing list