Skip to contentSkip to conversation

Linear RAID failure. How to recreate?

DISCUSSION anoneironaut84 2 participants 2 messages Jan 25, 2010 – Jan 29, 2010 MD RAID

lore
Share & tools
lore
#0 lore raw

Hey all,

I'm just wondering if there is any way to recreate a linear array. For
example in a simple two disk linear RAID array if one disk fail if I replace the old drive with a working drive can I stop the linear RAID array, format the simple device nodes and recreate the array? I tried to do something like this but failed:

bash# mdadm --manage /dev/md1 -f /dev/sda2
mdadm: set /dev/sda2 faulty in /dev/md1
bash# mdadm --manage /dev/md1 -f /dev/sdb2
mdadm: set /dev/sdb2 faulty in /dev/md1
bash# cat /proc/mdstat
Personalities : [linear] [raid1]
md1 : active linear sdb2[1] sda2[0]

      957216768 blocks 64k rounding

md0 : active raid1 sdb1[1]

      9775424 blocks [2/1] [_U]

unused devices: <none>
bash# mdadm --manage /dev/md1 -r /dev/sdb2
mdadm: hot remove failed for /dev/sdb2: Device or resource busy bash# mdadm --manage /dev/md1 -r /dev/sda2
mdadm: hot remove failed for /dev/sda2: Device or resource busy bash# mdadm --manage /dev/md1 -fr /dev/sda2
mdadm: hot remove failed for /dev/sda2: Device or resource busy bash# mdadm --manage --stop /dev/md1
mdadm: fail to stop array /dev/md1: Device or resource busy bash# fuser -m /dev/md1
bash# fuser -m /dev/sda2
bash# fuser -m /dev/sdb2
bash# mdadm --manage --stop /dev/md1
mdadm: fail to stop array /dev/md1: Device or resource busy bash-2.05b# lsof | grep md1
bash-2.05b#

Would appreciate some input.

Thanks!

-JD

PS My system is RHEL-4 running on the 2.6.22 kernel.

Signature · 2 lines
View this message in context: http://old.nabble.com/Linear-RAID-failure.--How-to-recreate--tp27301741p27301741.html
Sent from the linux-raid mailing list archive at Nabble.com.
#1 lore raw
Quoted 8 lines · On Sun, 24 Jan 2010 19:25:23 -0800 (PST) anoneironaut84…

Hey all,

I'm just wondering if there is any way to recreate a linear array. For
example in a simple two disk linear RAID array if one disk fail if I replace the old drive with a working drive can I stop the linear RAID array, format the simple device nodes and recreate the array? I tried to do something like this but failed:

Yes, you could do that. But mode of the data would be missing, so I don't really see much point.

Quoted 5 lines

bash# mdadm --manage /dev/md1 -f /dev/sda2
mdadm: set /dev/sda2 faulty in /dev/md1
bash# mdadm --manage /dev/md1 -f /dev/sdb2
mdadm: set /dev/sdb2 faulty in /dev/md1

It doesn't really make sense to set a device in a linear array to faulty as there is no alternative strategy that can be used to read or write. So as you notice, the 'faulty' status is not recorded:

Quoted 8 lines

bash# cat /proc/mdstat
Personalities : [linear] [raid1]
md1 : active linear sdb2[1] sda2[0]

      957216768 blocks 64k rounding

md0 : active raid1 sdb1[1]

      9775424 blocks [2/1] [_U]
Quoted 7 lines

unused devices: <none>
bash# mdadm --manage /dev/md1 -r /dev/sdb2
mdadm: hot remove failed for /dev/sdb2: Device or resource busy bash# mdadm --manage /dev/md1 -r /dev/sda2
mdadm: hot remove failed for /dev/sda2: Device or resource busy bash# mdadm --manage /dev/md1 -fr /dev/sda2
mdadm: hot remove failed for /dev/sda2: Device or resource busy

Similarly you cannot remove individual devices from a linear array. You can only sort the whole array, then maybe restart it.

Quoted 2 lines

bash# mdadm --manage --stop /dev/md1
mdadm: fail to stop array /dev/md1: Device or resource busy

Presumably the device is mounted?

Quoted 3 lines

bash# fuser -m /dev/md1
bash# fuser -m /dev/sda2
bash# fuser -m /dev/sdb2

I guess no process is using the mounted filesystem?

What does
cat /proc/mounts

show?

Quoted 5 lines

bash# mdadm --manage --stop /dev/md1
mdadm: fail to stop array /dev/md1: Device or resource busy bash-2.05b# lsof | grep md1
bash-2.05b#

Quoted 7 lines

Would appreciate some input.

Thanks!

-JD

PS My system is RHEL-4 running on the 2.6.22 kernel.

NeilBrown