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