28.02.2018 00:57, Wols Lists пишет:
On 27/02/18 00:57, Greg Freemyer wrote:
Raid 61 would also be interesting. It seems to me the rebuild time on a raid 61 could be greatly faster than on just a 6 (or 60). That assumes the failed drive could just be copied over from the mirror pair of that drive.
Actually, it would be faster even than that. Do you know the difference between Raid-1+0, and linux md-raid-10? linux-10 has the disadvantage (at least from the developer's point of view) that the drives are mirrors of each other, and thus rebuilding one drive places a lot of stress on said mirror.
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.
The only snag with my algorithm is that, iirc, you can get a pathological failure if you don't have at least twice the drives. So an 8,2 setup might need 33 drives for the algorithm to work. Of course, if that's the case, it would fall back to a simpler algorithm, probably the one that leads to a mirror. Or at least for raid-6, it would know that if all copies of a block were stored on the one drive, it could rebuild that block from parity. But that's not a good idea :-(
Cheers, Wol
-- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org