Il 13/09/2012 12:34, Robin Hill ha scritto:
Has anything actually attempted to read from that part of the array? Even if so, it may just have happened to read from the working disk anyway. md can only detect the error when it tries to read/write that sector of that disk.
I forced a read with "dd if=/dev/md0 of=/dev/null bs=524228 count=1 skip=1", I even get errors in syslog!
Your best bet now is to do an array check: echo check> /sys/block/md0/md/sync_action This will force a read of all disks in the array. This should trigger the read error, causing an attempt to re-write the faulty block, in turn causing the drive remap the bad sector (assuming the re-write fails). This should also be scheduled to run regularly for all arrays in order to pick up these sort of issues before they cause major problems during a rebuild.
/etc/init.d/mdadm should do exactly this kind of things (distro is Debian Squeeze). I have this in cron.d: 57 0 * * 0 root if [ -x /usr/share/mdadm/checkarray ] && [ $(date +\%d) -le 7 ]; then /usr/share/mdadm/checkarray --cron --all --idle --quiet; fi
Unfortunately it seems it didn't work :( Shouldn't a dd if=/dev/md0 be enough to trigger the read error? Thanks, Niccolò -- http://www.linuxsystems.it -- 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