Am 09.02.2010 13:28, schrieb Michael Tokarev: > Stefan *St0fF* Huebner wrote: > [] >> Now imagine any RAID with some kind of redundancy, reading/writing >> data. One of the disks finds out "I cannot correctly read/write the >> requested sector", starts its error correction, hits the respective >> ERC-timeout and reports back a media error or unrecoverable error. Now >> mdraid would drop the disk. >> >> But actually the data of the sector can be recreated through the >> existing redundancy. Wouldn't it be a smart thing if the mdraid >> recreates the sector and just tried to write it again? And after a good >> amount of failed retries it may well drop the disk. > > This is exactly what md layer is doing. On failed _read_ it tries to > reconstruct data from other disk drives and writes the reconstructed > data back to the drive where read failed. If the _write_ fails md will > drop the disk. Hi Mjt, I hoped so - great it is implemented like that. Well, then all that's needed is the check at assembly/creation time: - (is the drive an ATA-drive) && (does it support SCT ERC) -> and if it does, set some reasonable timeouts. (like the 7s it is with enterprise class drives for reading. For writing I would suggest 14s, bearing in mind that too quick reallocation results in the spare sectors running out quickly.) The writing back (I guess this is done with a reasonable amount of retries) does not make sense if the drive is still in its error recovery procedure and does not react to any commands until it is done. P.S.: I have already implemented the checks and setup, but in userspace using SG_IO. /st0ff > > /mjt > -- > 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 -- 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