From: George Mitchell <george@chinilu.com>
To: Chris Murphy <lists@colorremedies.com>,
Btrfs BTRFS <linux-btrfs@vger.kernel.org>
Subject: Re: How does btrfs handle bad blocks in raid1?
Date: Tue, 14 Jan 2014 12:29:28 -0800 [thread overview]
Message-ID: <52D59E28.7010200@chinilu.com> (raw)
In-Reply-To: <486C0640-409D-4636-858C-84A679C0AF4E@colorremedies.com>
On 01/14/2014 11:13 AM, Chris Murphy wrote:
> On Jan 9, 2014, at 6:31 PM, George Mitchell <george@chinilu.com> wrote:
>> Jim, my point was that IF the drive does not successfully resolve the bad block issue and btrfs takes a write failure every time it attempts to overwrite the bad data, it is not going to remap that data, but rather it is going to fail the drive.
> If the drive doesn't resolve a bad block on write, then the drive is toast. That's how md handles it. That's even how manufacturers handle it. The point at which write failures occur mean there are no reserve sectors left, or the head itself is having problems writing data to even good sectors. Either way, the drive isn't reliable for rw purposes and coming up with a bunch of code to fix bad drives isn't worth development time in my opinion. Such a drive is vaguely interesting for test purposes however, because even though the drive is toast, we'd like the system to remain stable with it connected first and foremost. And maybe we'd want it as a source during rebuild/replacement.
>
>> In other words, if the drive has a bad sector which it has not done anything about at the drive level, btrfs will not remap the sector. It will, rather, fail the drive. Is that not correct?
> I've skimmed for this in the code, but haven't found it, so I'm not sure what the handling is. It's probably easier to take a drive I don't care about, and use hdparm to cause a sector to be flagged as bad, and see how Btrfs handles it. (The hdparm command should be clearable, but I'd rather not screw up a drive I like.)
>
> Chris Murphy
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
Chris, Please don't misunderstand me. I am not advocating that btrfs
or any other filesystem should be dealing with bad blocks. I believe
very strongly that if the drive firmware can't deal with that
transparently the drive is, indeed, toast, and should be tossed. And
the key to monitoring hard drive health, in my opinion, is SMART and
what we are lacking at this point is a SMART capability to provide
visual notifications to the user when any hard drive starts to seriously
degrade or suddenly fails. This would ideally be mediated by journal
daemon which desperately needs to be enhanced to provide visual and
ideally audible pop up warnings to the user in such cases. It would be
nice to have those notifications from btrfs as well, also mediated by
journal daemon, but this is really a SMART specialty and SMART should be
our first line defense. Where we need btrfs to move is toward automated
resiliency, automatically dropping the bad drive(s) and automatically
following up with a rebalance and return to sanity. If SMART were
capable of launching pop up warnings, btrfs would not have to worry so
much about arrays going simplex undetected. And it should really be
the user's responsibility to be running SMART and providing sufficient
number of drives AND sufficient additional free space to accommodate
potential drive failure and still retain desired level of redundancy
extra drives in their RAID arrays. That is where I stand on this.
next prev parent reply other threads:[~2014-01-14 20:29 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <201401100106.s0A16CNd016476@atl4mhib27.myregisteredsite.com>
2014-01-10 1:31 ` How does btrfs handle bad blocks in raid1? George Mitchell
2014-01-14 19:13 ` Chris Murphy
2014-01-14 19:37 ` Roman Mamedov
2014-01-14 21:05 ` Chris Murphy
2014-01-14 21:19 ` Roman Mamedov
2014-01-14 21:37 ` Chris Murphy
2014-01-14 21:45 ` Chris Murphy
2014-01-14 21:54 ` Roman Mamedov
2014-01-14 20:29 ` George Mitchell [this message]
2014-01-14 21:00 ` Roman Mamedov
2014-01-14 21:06 ` Hugo Mills
2014-01-14 21:27 ` Chris Murphy
2014-01-14 21:27 ` George Mitchell
2014-01-14 21:28 ` George Mitchell
2014-01-14 21:14 ` Chris Murphy
2014-01-14 21:48 ` George Mitchell
2014-01-14 21:48 ` George Mitchell
2014-01-14 22:14 ` George Mitchell
2014-01-09 10:26 Clemens Eisserer
2014-01-09 10:42 ` Hugo Mills
2014-01-09 12:41 ` Duncan
2014-01-09 12:52 ` Austin S Hemmelgarn
2014-01-09 15:15 ` Duncan
2014-01-09 16:49 ` George Eleftheriou
2014-01-09 17:09 ` Hugo Mills
2014-01-09 17:34 ` George Eleftheriou
2014-01-09 17:43 ` Hugo Mills
2014-01-09 18:40 ` George Eleftheriou
2014-01-09 17:29 ` Chris Murphy
2014-01-09 18:00 ` George Eleftheriou
2014-01-10 15:27 ` Duncan
2014-01-10 15:46 ` George Mitchell
2014-01-09 17:31 ` Chris Murphy
2014-01-09 18:20 ` Austin S Hemmelgarn
2014-01-09 14:58 ` Chris Mason
2014-01-09 18:08 ` Chris Murphy
2014-01-09 18:22 ` Austin S Hemmelgarn
2014-01-09 18:52 ` Chris Murphy
2014-01-10 17:03 ` Duncan
2014-01-09 18:40 ` Chris Murphy
2014-01-09 19:13 ` Kyle Gates
2014-01-09 19:31 ` Chris Murphy
2014-01-09 23:24 ` George Mitchell
2014-01-10 0:08 ` Clemens Eisserer
2014-01-10 0:46 ` George Mitchell
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=52D59E28.7010200@chinilu.com \
--to=george@chinilu.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=lists@colorremedies.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.