我有一个 mdadm raid 6 文件系统,它只有 4 个磁盘中的 3 个正在运行。我有 4x2tb 磁盘,每当我添加第 4 个磁盘(我尝试了整整一周)并执行时,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
擦除与突袭相关的块,但都导致了同样的失败。
通过执行echo check > /sys/block/md0/md/sync_action
.
我已经尝试读取磁盘的所有扇区,看看它是否会说有一个坏块,但没有发生这种情况。
我现在正在sudo badblocks -wsv /dev/sde1
磁盘上运行 a,但我怀疑是否会出现任何错误。
这让我很困惑,我的磁盘是否在某些方面坏了,磁盘检查由于某种原因不起作用?
还是与我没有正确添加磁盘有关?我跑了:
sudo mdadm /dev/md0 -a /dev/sde1
我想我总是在文件系统仍然挂载时运行此命令,并在添加磁盘时卸载它,我认为这不会导致问题吗?
如果驱动器本身还不错,那么它很可能是内核错误。
例如,最近有一个 RAID6 重新同步相关的数据损坏错误,根据您运行的内核版本,您可能会受到影响:
BUG:RAID6 恢复被提交 4f4fd7c5798bbdd5a03a60f6269cf1177fbd11ef 破坏
否则,还要检查RAID6 的剩余奇偶校验中可能存在的RAID 不一致 (
mdadm --action=check /dev/mdX
, )。watch head /sys/block/md*/md/mismatch_cnt
还要检查所有其他角度、memtest、smartctl 等以及 dmesg 是否有可能在重新同步期间弹出的错误消息。
在玩 btrfs 并更新 vmware时发现了这个问题,结果是:
硬盘 0 和硬盘 4,我添加到我的 Arch Linux vmware 来宾的物理硬盘,是相同的。
难怪它破了。
frostschutz 的回答可能仍然很重要,因为我的内核版本在受影响的版本中。