RAID1 is a simple RAID mode, storing data on multiple hard drives to increase reliability. RAID1 slows down disk writes because data needs to be written to multiple drives, but it has the potential to speed up reads because a read could be done from any drive. Looking at drivers/md/dm-raid1.c it seems that Linux does not implement this yet:

static struct mirror *choose_mirror(struct mirror_set *ms, sector_t sector)
        /* FIXME: add read balancing */
        return ms->default_mirror;

For bonus points, figure out a really intelligent way to choose the mirror, using factors such as:

RAID1 read balancing was added in 2.6.25:;a=commitdiff;h=06386bbfd2441416875d0403d405c56822f6ebac

Difficulty: 4

KernelNewbies: KernelProjects/Raid1ReadBalancing (last edited 2017-12-30 01:30:00 by localhost)