linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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.

  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).