why RAID10 doesn't return BB during resync?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,
I tested some scenarios with badblocks injected under same offset on each
member drive. For RAID1 and RAID5 IO errors and badblocks were reported
during resync, as expected. For RAID10 with default layout (n=2) I didn't
observe any IO error reported.

According to code, it looks like it was designed this way from the
beginning:

    /* find the first device with a block */
    for (i=0; i<conf->copies; i++)
        if (!r10_bio->devs[i].bio->bi_status)
            break;

    if (i == conf->copies)
        goto done;

There is no attempt to fix read error, it is ignored quietly.
The implementation differs from RAID1. For RAID1, there is
fix_sync_read_error() routine, and errors are well handled.

So my questions at this point are:
Is this a gap or it is intentionally omitted?
If it is a gap, is it worth to be added in the future?

Thanks,
Mariusz



[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux