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

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

我希望做好充分准备,保持 Linux sw-raid 的正常运行。因此,我知道维护 RAID 上的数据非常重要,以便在磁盘发生故障时保持其可读性。否则,URE 可能会阻止正确的重建。所以我自己:清理数据的最佳方法是什么(或者可能是最佳方法)?我正在考虑:

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

或者

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

badblocks -n

对于前两者,我不太确定“检查”是否足够。我读到“修复”将通过使用奇偶校验数据来恢复发现的错误。如果我理解正确的话,这应该是我想要的吗?但是“检查”到底能做什么呢?只有发现问题?

但是如果我同时执行这两项操作,它总是从头开始,这会花费很长时间,因此也许带有 n 选项的 badblocks 可能是更好的解决方案,因为它可以定义开始和结束块。这样,我可以在晚上做一些小工作,然后在前一个工作停止后第二天晚上开始。但是 badblocks 不想使用已安装的 fs,除非使用 f 选项,但手册页不推荐它。

您如何维护您的 RAID?也许我问错了方向,还有更好的解决方案……

答案1

对我来说,将检查功能作为 cron 任务运行就足够了。我从未发现过任何错误。

除此之外,请记住 RAID 不是备份。因此,请备份所有重要数据。异地备份是最好的,但使用外部 USB 驱动器和 rsnapshot cron 作业是很好的第一步。

在 md 块设备上运行 badblocks 不起作用,因为 RAID(取决于您正在运行的 RAID 级别)将隐藏任何坏块。如果它认为发现了坏块,扇区 88376283 会位于哪个驱动器上?现代硬盘驱动器会自行处理并将坏块重新定位到备用块。因此,如果您在驱动器上看到坏块,那么这不是一个好兆头,因为这通常意味着驱动器的备用块已经用完,不再能够应对介质错误。因此请记住,badblocks 是一个旧程序,它的最初目的是在驱动器能够自行重新定位坏块之前解决驱动器上的坏块问题,当时驱动器价格昂贵。这并不是说 badblocks 在现代廉价驱动器上没有用处,我只是认为它不会帮助您保护磁盘上的数据。如果它确实显示错误,那么您的磁盘已经处于非常糟糕的状态。

除此之外,您还可以使用 SMART 监控驱动器的运行状况,但这也不是完美的。但这是您可以进行的另一层监控。这里有很多关于 SMART 的问题,可以讨论它的一些优点、缺点和能力。

相关内容