On 12/31/17 09:44, Sven Hartge wrote:
David Christensen <dpchrist@holgerdanske.com> wrote:On 12/30/17 14:38, Matthew Crews wrote:The main issue I see with using BTRFS with MDADM is that you lose the benefit of bit-rot repair. MDADM can't correct bit rot, but BTRFS-Raid (and ZFS raid arrays) can, but only with native raid configurations.AFAIK:1. mdadm RAID1 can fix bit rot, so long as one drive has a good block to fix the others.Yes, but it can't fix silent bit-rot, where incorrect bytes are read from the drive without the drive noticing. In that case the Kernel has no way of knowing which bytes are the correct ones, you need some sort of checksum for that.
My bad -- the only way for md to detect bit-rot is via scrubbing:
    $ man 4 md
    SCRUBBING AND MISMATCHES
    ...
       If check was used, then no action is taken to handle the 
mismatch,  it
       is  simply  recorded.   If  repair  was  used,  then a mismatch 
will be
       repaired in the same way that resync repairs arrays.   For 
RAID5/RAID6
       new parity blocks are written.  For RAID1/RAID10, all but one 
block are
       overwritten with the content of that one block.
I wonder how md picks "that one block"?
I tried to STFW for an md design document -- e.g. explains what file 
structures, data structures, algorithms, etc., are used by md and why -- 
nope.
David