• Jonathan Brassow's avatar
    MD RAID10: Improve redundancy for 'far' and 'offset' algorithms (part 2) · 9a3152ab
    Jonathan Brassow authored
    MD RAID10:  Improve redundancy for 'far' and 'offset' algorithms (part 2)
    
    This patch addresses raid arrays that have a number of devices that cannot
    be evenly divided by 'far_copies'.  (E.g. 5 devices, far_copies = 2)  This
    case must be handled differently because it causes that last set to be of
    a different size than the rest of the sets.  We must compute a new modulo
    for this last set so that copied chunks are properly wrapped around.
    
    Example use_far_sets=1, far_copies=2, near_copies=1, devices=5:
                    "far" algorithm
            dev1 dev2 dev3 dev4 dev5
    	==== ==== ==== ==== ====
    	[ A   B ] [ C    D   E ]
            [ G   H ] [ I    J   K ]
                        ...
            [ B   A ] [ E    C   D ] --> nominal set of 2 and last set of 3
            [ H   G ] [ K    I   J ]     []'s show far/offset sets
    Signed-off-by: default avatarJonathan Brassow <jbrassow@redhat.com>
    Signed-off-by: default avatarNeilBrown <neilb@suse.de>
    9a3152ab
raid10.c 130 KB