维护RAID以保持健康 – 数据清理

我想准备好最好的保持我的Linux sw-raid健康。 所以我知道在磁盘故障的情况下维护RAID上的数据以保持其可读性是非常重要的。 如果没有,URE可能会阻止正确的重build。 所以我自己:什么是一个好的(或者最好的)方法来清理我的数据? 我在考虑:

echo "check" >/sys/block/md/md0/sync_action 

要么

 echo "repair" >/sys/block/md/md/sync_action 

 badblocks -n 

首先,我不太确定“检查”是否足够。 我读“修复”将恢复错误,如果它发现一些使用奇偶校验数据。 所以这应该是我想要的,如果我得到这一点是正确的? 但是什么“检查”,甚至呢? 只有发现问题?

但是如果我这样做,它总是从一开始就需要很长时间,所以也许坏块与n-Option可能是一个更好的解决scheme,因为可以定义开始和结束块。 有了这个,我可以在晚上做小工作,并从第二天晚上开始前一个工作停止。 但是badblocks不想使用挂载的fs,除了f选项,但是man-page不推荐它。

你如何维护你的RAID? 也许我在吠叫错误的树,有更好的解决scheme…

将check函数作为cron作业一直对我来说已经足够了。 我从来没有真正发现任何错误。

除此之外,请记住RAID不是备份。 所以保留所有重要数据的备份。 离线是最好的,但外部USB驱动器和rsnapshot cron作业是一个好的第一步。

运行badblocks不会在md块设备上工作,因为RAID(取决于您正在运行的RAID级别)将会隐藏任何坏块。 而且,如果它认为它发现一个坏块什么驱动器将部门88376283? 现代硬盘驱动器自己照顾自己,并将坏块重新安置到备用块。 所以,如果你在驱动器上看到坏块,那么这不是一个好兆头,因为它通常意味着驱动器已经用尽了空闲块,并且不再能够处理媒体错误。 所以请记住,badblocks是一个旧的程序,它的原意是为了解决驱动器上的坏块问题,而驱动器能够自行重新定位坏块,当驱动器很昂贵的时候。 这并不是说坏块在现代廉价驱动器上没有用,我只是不认为它会帮助你保护磁盘上的数据。 就好像它确实显示错误,那么你的磁盘已经非常糟糕了。

除此之外,您可以使用SMART监控硬盘的健康状况,但这并不完美。 但是,这是另一层监控,你可以做。 这里有很多关于SMART的问题可以涉及到它的一些优点,缺点和能力。