Re: [BUG] Btrfs scrub sometime recalculate wrong parity in raid5: take two
From: Andrei Borzenkov <hidden>
Date: 2016-07-15 15:10:49
From: Andrei Borzenkov <hidden>
Date: 2016-07-15 15:10:49
15.07.2016 16:20, Chris Mason пишет:
quoted
quoted
Interesting, thanks for taking the time to write this up. Is the failure specific to scrub? Or is parity rebuild in general also failing in this case?How do you rebuild parity without scrub as long as all devices appear to be present?If one block is corrupted, the crcs will fail and the kernel will rebuild parity when you read the file. You can also use balance instead of scrub.
As we have seen recently, btrfs does not compute, stores or verifies checksum of RAID56 parity. So if parity is corrupted, the only way to detect and correct it is to use scrub. Balance may work by side effect, because it simply recomputes parity on new data, but it will not fix wrong parity on existing data. I agree that if data block is corrupted it will be detected, but then you do not need to recompute parity in the first place.