Backup

ZFS 池數據備份和恢復

  • July 29, 2021

我目前有一個 zfs raidz2 池卡在重新同步循環中,因為我試圖用 8TB 磁碟替換 3TB 磁碟。在讓第一個替換磁碟重新同步線上一個多星期後,它終於完成了,只是立即重新開始。將磁碟標記為“離線”後,第二次重新同步大約在 2 天內完成。我線上標記了磁碟,一切看起來都很好(幾分鐘),所以我更換了第二個磁碟。一旦第二個磁碟的重新同步啟動,它表明第一個磁碟也在重新同步。我現在正處於這兩個驅動器的第三或第四個重新同步週期,並且兩個磁碟重新同步我沒有容錯能力。此時我想將 zpool 備份到 nfs 共享並使用新驅動器重新創建它,但我沒有 不想失去我所有的數據集配置,其中包括我所有的監獄。有沒有辦法將整個 zpool 導出為可以以某種方式恢復的備份映像?具有足夠磁碟空間來儲存所有這些數據的另一台機器的文件系統已經使用了不同的文件系統,因此 zfs 複製可能不是一個選項。這是一個 TrueNAS-12.0-U4 安裝。備份機器正在執行帶有 LVM/Ext4 的 Ubuntu 21.04。以下是目前池狀態。


 pool: pool0
state: DEGRADED
status: One or more devices is currently being resilvered.  The pool will
   continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
 scan: resilver in progress since Thu Jul 29 00:39:12 2021
   13.8T scanned at 273M/s, 13.0T issued at 256M/s, 13.8T total
   2.17G resilvered, 93.77% done, 00:58:48 to go
config:

   NAME                                            STATE     READ WRITE CKSUM
   pool0                                           DEGRADED     0     0     0
     raidz2-0                                      DEGRADED     0     0     0
       gptid/55bf3ad6-3747-11eb-a0da-3cecef030ab8  ONLINE       0     0     0
       gptid/55c837e3-3747-11eb-a0da-3cecef030ab8  ONLINE       0     0     0
       gptid/55f4786c-3747-11eb-a0da-3cecef030ab8  ONLINE       0     0     0
       gptid/60dcf0b8-eef3-11eb-92f9-3cecef030ab8  OFFLINE      0     0     0  (resilvering)
       gptid/56702d96-3747-11eb-a0da-3cecef030ab8  ONLINE       0     0     0
       gptid/5685b5f7-3747-11eb-a0da-3cecef030ab8  ONLINE       0     0     0
       gptid/8f041954-eef3-11eb-92f9-3cecef030ab8  OFFLINE      0     0     0  (resilvering)
       gptid/56920c3a-3747-11eb-a0da-3cecef030ab8  ONLINE       0     0     0
   cache
     gptid/56256b6a-3747-11eb-a0da-3cecef030ab8    ONLINE       0     0     0

errors: No known data errors

您可以使用zfs snapshot -r pool0@backup; zfs send -R pool0@backup > zfs.img創建一個複制的發送流,您可以使用zfs recv.

也就是說,似乎與此處描述的問題相似。 您還可以嘗試通過zfs_resilver_disable_defer可調參數禁用延遲重新同步。

引用自:https://serverfault.com/questions/1073026