我有一个基于 Linux 的软件 RAID 5 阵列。SMART 刚刚开始向我发送电子邮件,抱怨 5 个磁盘中的一个磁盘的当前待处理扇区数为 9,脱机不可纠正扇区数也为 9。我在 Google 上搜索了很多,似乎一致认为,如果我将扇区写入零,磁盘将重新映射它们,一切都会好起来。
我确实想追踪受影响的文件,但我很难进行映射,因为我有 5 个磁盘在 RAID 5 中,顶部有 LUKS 加密,最后是 LVM。我所做的研究都无法帮助我解决这个难题。
最后,我的计划是简单地让驱动器失效,然后重新添加它以重建阵列。
在此之前,我对阵列中的另一个磁盘进行了“长时间”测试。除了重新分配扇区数为 82,82,36,764 的磁盘外,其他磁盘均完美无缺。
因此,5 个驱动器中就有 2 个存在问题。
此时,我有点困惑,如果可能的话,尝试清除这些错误的最佳方法是什么。
有人有什么建议吗?我很乐意在必要时更换故障驱动器,但我想先尝试理清数据。
答案1
这是一般过程。mdraid
如果您还不知道具体要使用的命令,请参阅手册页和您自己的本地配置。
祈祷。
验证您的备份是否最新。如有必要,请手动运行。如果没有有备份,现在做一个。
使具有待处理扇区和离线不可纠正扇区的驱动器发生故障。具有重新分配扇区的另一个驱动器将存活更长时间,并且希望足够长的时间来完成此过程,但是该驱动器已经到了可能毁掉整个阵列的地步。
更换驱动器。在硬件方面。对新驱动器进行分区并将其添加到 mdraid 阵列。
重建阵列并等待重建完成。在较新版本的 mdraid 中,重建将自动开始。
对第二个驱动器重复该过程。
答案2
您可以使用命令(以 root 身份)强制检查和修复阵列。根据您的需要进行修改(插入阵列名称):
echo repair > /sys/block/md0/md/sync_action
当然,在开始之前你确实需要备份数据。并且你应该考虑用新的硬盘替换损坏的硬盘。
您可以使用以下命令将分区模式从磁盘复制到磁盘
sfdisk -d /dev/sda | sfdisk /dev/sdb
当然,在执行之前请仔细检查磁盘名称。您不会想删除好磁盘上的分区。
手册中描述了如何将分区/磁盘添加到阵列mdadm
。祝你好运。