Should mdraid implement timeouts?

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

 



Hello,

currently, mdraid will simply block and wait for the underlying layers to execute commands and does not handle timeouts on its own.

In a perfect world, disks will respond within a limited timeframe when for example a bad sector is encountered. Unfortunately, I see even disks with set TLER that don't. Then, with a configurable timeout, Linux Kernel will reset the device in question, then the bus, then the controller. This process takes time (and I think the bus / controller reset is really adding to that time and should be optional in the first place) during which data is unavailable, though there is redundancy and another device is ready to respond.

For a read operations, things are simple: mdraid can re-issue the read on the redundant device(s) and deliver data. For write operations, I see no other option than kicking the disk from the array. With write-intent bitmaps in place, the disk can be re-added and resync fast once it is available again.

If possible, commands sent to the bad disk should be aborted, so Kernel doesn't reset the bus.

To add response time management, the timeout could work with several values and sum up like this:

max_response_time_ms = 20
timeout_ms = 10000

Every request would measure response time. If response time - max_response_time_ms > 0, decrease timeout_ms temporarily by that value. So slow disks would be kicked by the same timeout mechanism.

Greetings,

Pierre Beck
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[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