Linux MD problem

Shane Hathaway shane at hathawaymix.org
Tue Jul 7 22:55:20 MDT 2009


Mike Lovell wrote:
> I have a machine that has 4 disks in a raid 10 using md. The machine 
> went through an unclean shutdown yesterday and when the box came up, I 
> saw errors like the following in the kernel log and the array no longer 
> works.
> 
> [   28.575149] md: raid10 personality registered for level 10
> [   28.610827] md: md0 stopped.
> [   28.688678] md: bind<sdu1>
> [   28.688981] md: bind<sdv1>
> [   28.689269] md: bind<sdw1>
> [   28.689566] md: bind<sdx1>
> [   28.689748] md: kicking non-fresh sdw1 from array!
> [   28.689890] md: unbind<sdw1>
> [   28.690036] md: export_rdev(sdw1)
> [   28.690175] md: kicking non-fresh sdv1 from array!
> [   28.690316] md: unbind<sdv1>
> [   28.690452] md: export_rdev(sdv1)
> [   28.690589] md: kicking non-fresh sdu1 from array!
> [   28.690730] md: unbind<sdu1>
> [   28.690866] md: export_rdev(sdu1)
> [   28.704706] raid10: not enough operational mirrors for md0
> [   28.704706] md: pers->run() failed ...
> 
> Anyone have some suggestions on what can be done to get the array 
> working again? There are a lot of virtual machines that are on the array 
> that I really don't want to have to go through and rebuild. Thanks in 
> advance for any advice you guys have.

I would try assembling the array without sdx1:

   mdadm --assemble /dev/md0 /dev/sd[uvw]1 missing

If that works, I would check the filesystem for errors *without 
repairing anything yet*, since I don't want to change any bits at all yet:

   e2fsck -n -f /dev/md0

If that shows no errors, or a small number of easily repaired errors, 
then I would try to re-add sdx1:

   mdadm --manage --re-add /dev/md0 /dev/sdx1

If that second command fails, I would use "--add" instead of "--re-add", 
causing sdx1 to be rebuilt from scratch.

Then I would perform the real filesystem repair:

   e2fsck -p -f /dev/md0

If the first command I gave doesn't work, I would use "dd" to copy the 
partitions to backup drives before doing anything else, then I would do 
more aggressive things like "mdadm --assemble --force --update resync".

Shane



More information about the PLUG mailing list