Screwed my RAID array...

Bas van Schaik <[email protected]> Thu, 30 Mar 2006 10:20:00 +0200
Newsgroups gmane.linux.enbd.general
Message-ID <[email protected]>
Hi all,

For some reason, enbd stopped responding, causing my RAID5 array "md1"
to hang. I thought just letting the enbd-client processes would solve
the problem, so I issued:

> echo -n 0 > /proc/nbdstat

(FYI: my configuration has one "frontend" running enbd-clients to four
"backends")

This appearently wasn't a very good idea: md1 was completely down. No
way to assemble it again using mdadm, it keeps complaining about "too
few devices". Luckily, there was no important data on the RAID-device,
it was built for testing purposes. However, I would like to know (and
maybe it's nice to have it documented on this mailinglist, using this
thread) how to act in such situation.
Afterwards, I think it would have been better to kick the client
processes one-by-one. But, I expect mdadm would mark the nd* device
belonging to the kicked client process as faulty. Kicking a second
client process will therefore corrupt my RAID5 array.

By the way: I've checked /proc/nbdstat before killing/kicking anything,
all seemed fine. All devices like this:

> State:      verify, rw, merge requests, enabled, show_errs, last error
> 0, lives 0, bp 0

So, I couldn't determine which client process was hanging, I couldn't
even determine what exactly was the problem. md1 was just not responding
to anything, and "mdadm --detail /dev/md1" or "cat /proc/mdstat" hung up
too.

Does anyone have some bright ideas on how to act in a situation like
this? When needed, I'm willing to run some tests on my configuration.


Regards,

-- Bas