On 01/03/18 03:59, Andrei Borzenkov wrote:
The point of the work I've spec'd is that the blocks are scattered according to a pseudo-random algorithm, such that there is no such mirror! So if you have say 20 drives, with your raid-61 configured as 8,2, that would mean you have two logical 8-drive raid-6 arrays, mirrored. But the blocks are scattered at random across your 20 drives. So if a drive fails, let's say it's 10TB, the rebuild can copy 0.5TB from EVERY other drive, and rebuild the failed one. The standard algorithm would hammer one other drive and quite possibly tip that over the edge too.
The rebuild of physical drive is limited by this very drive. There are implementations that have "virtual spare" by distributing spare sectors across all drives. Then it can parallelize rebuild to this "spare". This actually dramatically reduce time to restore array full redundancy.
It still needs to rebuild failed drive when it is replaced but it happens with array is already fully functional and redundant and so is not time critical.
That's called raid-6 :-) Raid-6 is still fully redundant with one failed drive. If you mirror it to raid-61, that means you can lose at least four drives and still not lose data. My algorithm would probably reduce the risk to the array (the old drives don't get hammered in a rebuild) but I don't see how they could speed the rebuild up that much, as the bottleneck is the drive being rebuilt, and there's absolutely nothing you can do about that. Cheers, Wol -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org