我目前有一个 zfs raidz2 池卡在重新同步循环中,因为我试图用 8TB 磁盘替换 3TB 磁盘。在让第一个替换磁盘重新同步在线超过一周后,它终于完成了,但立即重新启动。在将磁盘标记为“OFFLINE”后,第二次重新同步在大约 2 天内完成。我将磁盘标记为在线,一切看起来都很好(几分钟),所以我更换了第二个磁盘。一旦第二个磁盘的重新同步启动,它显示第一个磁盘也在重新同步。我现在正在对这两个驱动器进行第 3 或第 4 次重新同步,并且两个磁盘重新同步后,我没有容错能力。此时,我想将 zpool 备份到 nfs 共享并使用新驱动器重新创建它,但我不想丢失包括我的所有 jail 在内的所有数据集配置。有没有办法将整个 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
答案1
您可以使用zfs snapshot -r pool0@backup; zfs send -R pool0@backup > zfs.img
创建一个复制的发送流,然后使用它来进行恢复zfs recv
。
话虽如此,但这似乎与描述的问题类似这里
您还可以尝试通过zfs_resilver_disable_defer
可调参数禁用延迟重新同步。