我有一個 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 的答案可能仍然很重要,因為我的核心版本位於受影響的版本中。