
太長了;我的 ZFS 鏡像池出現一些校驗和錯誤。我更換了控制器,認為這是最有可能的原因,但錯誤不會清除。池清除會暫時重置它們,但下次我運行磨砂時它們會回來。我怎樣才能永久清除它們?
全文:我已經在 ubuntu 20.04.2 LTS 上設定並運行 ZFS mirror-0 一段時間了。當其中一個驅動器損壞時,我利用失敗的機會將兩個驅動器更換為更大的驅動器,並為新驅動器添加了 SATA-III PCI 卡(舊驅動器已連接到板載 SATA II 控制器) ,因為我沒有更多可用的SATA III 連接埠)。在新驅動器和控制器上運行幾週後,ZFS 抱怨兩個新驅動器上的校驗和錯誤,並因此將陣列置於「降級」狀態。
一些研究使我得出的結論是,由於兩個驅動器顯示的校驗和錯誤數量完全相同,因此控制器的問題比驅動器本身的問題更有可能。因此,我暫時拔出了新控制器並將驅動器放回板載 SATA II 控制器上,一旦確認問題所在,打算更換控制器卡。然後,我刪除了zpool status -v
顯示為有永久性錯誤的兩個文件,發出了zpool clear data
重置錯誤的命令,並運行了清理。
不幸的是,在清理之後錯誤再次出現,直到現在不再-v
顯示文件,而只是顯示地址(我相信是索引節點),大概是我之前刪除的文件之一。我又試了一次,結果還是一樣。每次我運行磨砂時,它都會返回以下結果:
root@watchman:~# zpool status -v
pool: data
state: DEGRADED
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: http://zfsonlinux.org/msg/ZFS-8000-8A
scan: scrub repaired 16K in 0 days 09:10:20 with 1 errors on Sat Jul 24 15:48:21 2021
config:
NAME STATE READ WRITE CKSUM
data DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
ata-ST8000VE000-2P6101_WSD1M5NW DEGRADED 0 0 15 too many errors
ata-ST8000VE000-2P6101_WSD1HEJX DEGRADED 0 0 15 too many errors
errors: Permanent errors have been detected in the following files:
data:<0x380508>
據我所知,這與已經存在的問題相同,可能是由於控制器不良造成的,但我似乎無法清除它。如何將鏡像恢復到功能齊全的狀態?
更新:我最終放棄了清除錯誤的想法,而是重新開始。我創建了一個新池,從現有鏡像中竊取了一個驅動器。然後我運行 arsync
將所有資料從舊池複製到新池。這確實遇到了一些錯誤(zfs 沒有對資料錯誤撒謊),但沒有任何重大或令人不安的問題,並且排除錯誤的檔案允許 rsync 成功完成。然後,我將第二個驅動器添加到新池中,重新同步後,現在一切看起來都很好,並且對新池的清理完成,沒有錯誤。
因此,假設在下週左右一切都繼續良好,我認為可以肯定地假設 SATA III 卡是問題的原因,並用更好的品牌/選項替換它:)