Btrfs
btrfs 可以跟踪/避免壞塊嗎?
我有一個我不完全信任的硬碟驅動器,但仍然想使用(burstcoin 探勘,如果我在文件中得到一個壞塊,我只會損失幾美分)。
如何告訴 btrfs 將某些塊標記為壞塊(例如來自
badblocks
輸出)?如果我不能將塊預先標記為壞塊,
btrfs scrub
如果使用它們的文件被刪除,將來是否會避免辨識出的任何壞塊?
可悲的是沒有。
btrfs 不會跟踪壞塊,
btrfs scrub
也不會阻止下一個文件命中相同的壞塊。這個 btrfs 郵件列表文章建議使用 ext4
mkfs.ext4 -c
(這*“建立一個壞塊列表,然後不會使用這些扇區”*)。在 mdadm 3.1+ 和 RAID0上使用btrfs 的建議將不起作用。似乎LVM 不支持 badblock relocation。
一種解決方法是建構一個不包括已知壞塊的設備:btrfs over dmsetup。
未聲明——還沒有更新檔——還沒有在核心中
目前 btrfs 不跟踪壞塊,即很可能失去寫入它們的數據的磁碟塊。Btrfs 應該接受一個 badblocks 輸出格式的列表,將它儲存在一個新的 btree 中(或者可能在目前的範圍樹中,帶有一個新的標誌),重新定位塊包含的任何數據,並保留這些塊以便它們不能被使用用於未來的分配。此外,當發現校驗和錯誤時,可以教擦洗以測試壞塊。這將使磨砂膏更加有用;校驗和錯誤通常是由磁碟引起的,但是當擦洗檢測到受影響的文件時,在備份方案中這提供了重新創建它們的機會,下一個重用壞塊的文件將開始出現錯誤。這兩項將匹配 ext4 功能(通過 e2fsck 使用)。
如果狀態發生變化,請發表評論,我將更新此答案。