-   Linux - Server (
-   -   How do I resync a "dirty" software raid1? (

isync 06-03-2007 03:45 PM

How do I resync a "dirty" software raid1?
I have a software raid 1 array here, consiting of two drives:
sudo mdadm --create /dev/md0 -a -l 1 -n 2 /dev/sdb /dev/sdc

To test it I pulled out one disk, made changes to the ramining disk and then plugged back in the other drive.

I ended up with:

  md0 : active raid1 sdb[0] sdc[2](F)
      488386496 blocks [2/1] [U_]

Which - as it seems - the system does not automatically resync. Now, how do I tell the system to re-accept the reappeared drive sdc and sync it up with sdb?

For further description of my problem and how I ran into it, please read:

rtspitz 06-03-2007 04:04 PM

you need to remove the failed/missing device with mdadm first and the re-add it to start the rebuild/sync.

mdadm --manage /dev/md0 --remove /dev/sdc
mdadm --manage /dev/md0 --add /dev/sdc

you could have tested it without actually pulling a disk. mdadm can "software-fail" a device with


mdadm --manage /dev/md0 --fail /dev/sdc

isync 06-04-2007 01:12 AM

Thanks a LOT!
That did it.

Actually I got a

hot remove failed for /dev/sdc No such device or address
first, which brought me to

As it seems re-booting/waiting during the process made mdadm remove the drive completely from the array during the process. So, when I tried to "--remove" it, it was in fact already gone. So

sudo mdadm /dev/md0 -a /dev/sdc
did the trick!

And when resync was slow (7000min! on a non-production machine) I did "sudo -s -H" to circumvent the ubuntu “permission denied” problem and then "echo 50000 >/proc/sys/dev/raid/speed_limit_min" - and instantly I was down to 240min.

Now my last question: Should I worry about fdisk giving

sudo fdisk -l /dev/sdb
Disk /dev/sdb doesn't contain a valid partition table

All times are GMT -5. The time now is 02:25 AM.