From: Benjamin ESTRABAUD <ben.estrabaud@mpstor.com>
To: Nicolas Noble <nicolas@nobis-crew.org>
Cc: John Stoffel <john@stoffel.org>, linux-raid@vger.kernel.org
Subject: Re: Failure propagation of concatenated raids ?
Date: Wed, 15 Jun 2016 15:45:56 +0100 [thread overview]
Message-ID: <57616A24.6010808@mpstor.com> (raw)
In-Reply-To: <CAAkR8+tkvwZneqz2XpwMEqKCXZk=HERXPu9XC0pNX0OZ-AQ8ZA@mail.gmail.com>
On 15/06/16 10:49, Nicolas Noble wrote:
>> I
>> think in your case you're better off stopping an array that has less than
>> parity drives than it should, either using a udev rule or using mdadm
>> --monitor.
>
> I actually have been unsuccessful in these attempts so far. What
> happens is that you very quickly get processes that get indefinitely
> stuck (indefinitely as in 'waiting on a very very long kernel
> timeout') trying to write something, so that the ext4fs layer becomes
> unresponsive on these threads, or take a very long time. Killing the
> processes takes a very long time because they are stuck in a kernel
> operation. And if potentially more processes can spawn back up, the
> automated script starts an interesting game of whack-a-mole in order
> to unmount the filesystem.
>
> And you can't stop the underlying arrays without first stopping the
> whole chain (umount, stop the lvm volume, etc...), otherwise you
> simply get "device is busy" errors, hence the whack-a-mole process
> killing. The only working method I've managed to successfully
> implement is to programatically loop over the list of all the drives
> involved in the filesystem, on all the raids involved, and flag all of
> them as failed drives. This way, you get to really put "emergency
> brakes" on. I find that to be a very, very scary method however.
>
I understand your concern, but I remember a thread where it was
explained that a RAID0 or linear one basically behaves like a hard drive
would: since there is no parity and the data is distributed, if say half
of the devices of the RAID0 are unavailable the LBAs on the other half
of that RAID will work fine, like if you had a SSD with half of its
cells broken. So your issue seems to be more related with dealing with
IO errors than anything. I would imagine that if the filesystem's
superblock was to become unread/writeable (if it was on the missing
RAID) then the filesystem would "fail" (be remounted as readonly). Other
than that there's not much to be done apart from instructing your
program to stop the IOs and/or fiddling with timeouts to speed up the
failure of the process.
The "emergency brake" as you put it would work similarly to a RAID5
losing more than it can: the array will error every write sent to it.
Alternatively you could disconnect the drives from Linux using the
"delete" sysfs property. If you use a journalled filesystem you
shouldn't lose any data over any of this anyways, so that seems safe.
HTH,
Regards,
Ben.
next prev parent reply other threads:[~2016-06-15 14:45 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-14 21:43 Failure propagation of concatenated raids ? Nicolas Noble
2016-06-14 22:41 ` Andreas Klauer
2016-06-14 23:35 ` Nicolas Noble
2016-06-15 0:48 ` Andreas Klauer
2016-06-15 9:11 ` Nicolas Noble
2016-06-15 1:37 ` John Stoffel
2016-06-15 9:18 ` Nicolas Noble
2016-06-15 9:29 ` Benjamin ESTRABAUD
2016-06-15 9:49 ` Nicolas Noble
2016-06-15 14:45 ` Benjamin ESTRABAUD [this message]
2016-06-15 14:59 ` John Stoffel
2016-06-15 14:56 ` John Stoffel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=57616A24.6010808@mpstor.com \
--to=ben.estrabaud@mpstor.com \
--cc=john@stoffel.org \
--cc=linux-raid@vger.kernel.org \
--cc=nicolas@nobis-crew.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).