Re: Bit-Rot

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

 





On 03/03/17 21:54, Gandalf Corvotempesta wrote:
2017-03-03 22:41 GMT+01:00 Anthony Youngman <antlists@xxxxxxxxxxxxxxx>:
Isn't that what raid 5 does?

nothing to do with raid-5

Actually, iirc, it doesn't read every stripe and check parity on a read,
because it would clobber performance. But I guess you could have a switch to
turn it on. It's unlikely to achieve anything.

Barring bugs in the firmware, it's pretty near 100% that a drive will either
return what was written, or return a read error. Drives don't return dud
data, they have quite a lot of error correction built in.

This is wrong.
Sometimes drives return data differently from what was stored, or,
store data differently from the original.
In this case, if real data is "1" and you store "0", when you read
"0", no read error is made, but data is still corrupted.

Do you have any figures? I didn't say it can't happen, I just said it was very unlikely.

With a bit-rot prevention this could be fixed, you checksum "1" from
the source, write that to disks and if you read back "0", the checksum
would be invalid.

Or you just read the raid5 parity (which I don't think, by default, is what happens). That IS your checksum. So if you think the performance hit is worth it, write the code to add it, and turn it on. Not only will it detect a bit-flip, but it will tell you which bit flipped, and let you correct it.

This is what ZFS does. This is what Gluster does. This is what BRTFS does.
Adding this in mdadm could be an interesting feature.

Well, seeing as I understand btrfs doesn't do raid5, only raid1, then of course it needs some way of detecting whether a mirror is corrupt. I don't know about gluster or ZFS. (I believe raid5/btrfs is currently experimental, and dangerous.)

But the question remains - is the effort worth it?

Can I refer you to a very interesting article on LWN? About git, which assumes that "if hash(A) == hash(B) then A == B". And how that was actually MORE accurate than "if (memcmp( A, B) == true) then A == B".

Cheers,
Wol
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux