将磁盘添加到 mdadm raid 6 后文件系统损坏

将磁盘添加到 mdadm raid 6 后文件系统损坏

我有一个 mdadm raid 6 文件系统,其中 4 个磁盘中只有 3 个在运行。我有 4x2tb 磁盘,每当我添加第四个磁盘(我尝试了一整周)并执行 a 操作ls时,都会出现一些文件系统错误:

$ ll /mnt/downloads/downloads
...
d????????? ? ?    ?       ?                   ? drivers/
...

但每当我删除新添加的磁盘时,它都会正确显示文件系统:

$ sudo mdadm /dev/md0 --fail /dev/sde1
mdadm: set /dev/sde1 faulty in /dev/md0
$ ll /mnt/downloads/downloads
(correct contents)

我尝试过将超级块归零,执行sudo wipefs -a /dev/sde1擦除与突袭相关的块,所有这些都导致了相同的失败。

通过执行以下操作,检查仅包含 3 个磁盘的 mdadm 阵列,没有显示任何错误echo check > /sys/block/md0/md/sync_action

我尝试读取磁盘的所有扇区以查看是否会显示有坏块,但没有发生此类情况。

我现在正在磁盘上运行sudo badblocks -wsv /dev/sde1,但我怀疑会出现任何错误。

这让我非常困惑,我的磁盘是否在某种程度上坏了并且磁盘检查由于某种原因不起作用?

还是和我没有正确添加磁盘有关?我跑:

sudo mdadm /dev/md0 -a /dev/sde1

我想我总是在文件系统仍然挂载的情况下运行这个命令,并在添加磁盘期间卸载它,我不认为这会导致问题,不是吗?

答案1

如果驱动器本身没有坏,那么它很可能是内核错误。

例如,最近存在与 RAID6 重新同步相关的数据损坏错误,并且根据您运行的内核版本,您可能会受到影响:

BUG:RAID6 恢复被提交 4f4fd7c5798bbdd5a03a60f6269cf1177fbd11ef 破坏

否则,还要检查RAID6 的剩余奇偶校验中可能存在的RAID 不一致 ( mdadm --action=check /dev/mdX、 )。watch head /sys/block/md*/md/mismatch_cnt

还要检查所有其他角度、memtest、smartctl 等以及 dmesg 是否有在重新同步期间可能弹出的错误消息。

答案2

在玩 btrfs 时发现了这个问题,并且更新VMware,结果是:

硬盘 0 和硬盘 4(我添加到 Arch Linux vmware guest 中的物理硬盘)是同一个。

难怪它会破裂。

frostschutz 的答案可能仍然很重要,因为我的内核版本位于受影响的版本中。

相关内容