NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: gptmbr.bin vs RAIDframe



Rhialto <rhialto%falu.nl@localhost> writes:

> On Fri 19 Jun 2015 at 01:27:09 +0700, Robert Elz wrote:
>> Of course, if a drive develops bad spots, the single raidframe approach will
>> fail that drive, and none of the filesystems will be mirrored until the
>> drive is replaced or the bad spots corrected - the multiple raidframe approach
>> will only file the arrays where the bad spots occur, other filesystems
>> would remain mirrored.
>
> Which leads to the question: has this principle never been used in
> single-large-RAID setups? Like there is now some memory of which parts
> of the disk have parity that still needs to be rebuilt (right?), one
> could re-use the same zones and remember in which one of those there was
> a read error.

Three unrelated thoughts:

1) raidframe, at least in RAID1, already keeps track of what's dirty by
zone, so that parity rebuild after a crash is very fast.  It could be
extended to keep track of failure by zone as well.

2) In my experience with raidframe, I have experienced three failure
modes.  One is transient errors, perhaps SATA cabling or conrtroller
flakes. that are cleared on reboot.  Another is complete failure of
the disk.   The most common is some bad sectors.  In these cases,
rewriting parity restores the raid set.  So raidframe could, again at
least for RAID1, write the data from the other disk back to the disk
with the read error.

Beyond that, it would be nice to have a background process to
read/compare both halves and on read failure on one half write the good
value to the non-readable sector.  I more or less do this manually by
running dd over my disks to /dev/null every few months.

3) I think zfs does part of this, but I'm not clear on how it handles
a disk with some blocks that can't be read.   It would be really nice to
get modern OpenZFS running well on NetBSD.

Attachment: pgpiB6I8bKQda.pgp
Description: PGP signature



Home | Main Index | Thread Index | Old Index