Thread (2 messages) 2 messages, 2 authors, 2010-01-29

Re: Linear RAID failure. How to recreate?

From: Neil Brown <hidden>
Date: 2010-01-29 12:00:43

On Sun, 24 Jan 2010 19:25:23 -0800 (PST)
anoneironaut84 [off-list ref] wrote:
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.
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:
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
Similarly you cannot remove individual devices from a linear array.
You can only sort the whole array, then maybe restart it.
bash# mdadm --manage --stop /dev/md1
mdadm: fail to stop array /dev/md1: Device or resource busy
Presumably the device is mounted?
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?
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.
NeilBrown
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help