清除 ZFS 校驗和錯誤嗎?

清除 ZFS 校驗和錯誤嗎?

太長了;我的 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 卡是問題的原因,並用更好的品牌/選項替換它:)

答案1

有時,我也會在 0 映像上出現一些校驗和錯誤,主要發生在重新引導後,並且 zfs 池的狀態會降級。

zpool status <poolname>

在此輸入影像描述

為了解決這個問題並清除錯誤,我運行:

zpool clear <poolname>

相關內容