我是一个白痴。我已经在我的清单上设置了我的异地备份并且..你猜对了,在这发生之前我没有解决它。我实际上以为我已经正确设置了本地备份,但事实证明不,我没有。反正:
我是 ZFS 的新手。我正在运行 Proxmox,并在 HDA 卡上的 9 个驱动器上启用了直通到池的 TrueNAS VM。我有两个 NVMe 驱动器,但我认为我只设置了一个用于缓存,一个 SSD 用于 Proxmox。由于我不清楚的原因,我的 zpool 昨天损坏了。我的 Proxmox 主机似乎知道池,这对我来说很奇怪,因为我在 TrueNAS 来宾中创建了池。
我尝试过zpool import
使用-f
-F
-FX
和-fFX
标志运行。我不确定是否应该在主机或来宾上运行这些命令。我也尝试过--readonly=on
and (在主机上)我尝试过设置echo 0 > /sys/module/zfs/parameters/spa_load_verify_metadata
,尽管在尝试在客户机上导入 zpool 之前我没有尝试过这样做,因为坦率地说,我有点害怕主机和客人似乎可以使用游泳池,我不确定这不会导致问题。
我得到的错误是元数据已损坏。 我不知道这是否相关,但这发生在我试图安装 GPU 并在 Proxmox 中为该设备启用 PCIe/GPU 直通的时候。
Proxmox:
root@proxmox:~# zpool import
pool: Seabreeze
id: 821564149027342835
state: FAULTED
status: The pool metadata is corrupted.
action: The pool cannot be imported due to damaged devices or data.
The pool may be active on another system, but can be imported using
the '-f' flag.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-72
config:
Seabreeze FAULTED corrupted data
raidz2-0 FAULTED corrupted data
sdf2 ONLINE
sdh2 ONLINE
sdc2 ONLINE
sde2 ONLINE
sdj2 ONLINE
sdb2 ONLINE
sdg2 ONLINE
sdd2 ONLINE
sdi2 ONLINE
root@proxmox:~#
真NAS:
truenas% sudo zpool import
pool: Seabreeze
id: 821564149027342835
state: FAULTED
status: The pool was last accessed by another system.
action: The pool cannot be imported due to damaged devices or data.
The pool may be active on another system, but can be imported using
the '-f' flag.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-EY
config:
Seabreeze FAULTED corrupted data
raidz2-0 FAULTED corrupted data
gptid/bb911e9d-c067-11ec-b393-734570047b00 ONLINE
gptid/bbb5c9f6-c067-11ec-b393-734570047b00 ONLINE
gptid/bba92ac5-c067-11ec-b393-734570047b00 ONLINE
gptid/bbbf0f87-c067-11ec-b393-734570047b00 ONLINE
gptid/bbda0fa2-c067-11ec-b393-734570047b00 ONLINE
gptid/bc03effa-c067-11ec-b393-734570047b00 ONLINE
gptid/bc114e59-c067-11ec-b393-734570047b00 ONLINE
gptid/bbd0f901-c067-11ec-b393-734570047b00 ONLINE
gptid/bc18eaf4-c067-11ec-b393-734570047b00 ONLINE
truenas%
我的数据可以恢复吗?
我曾经
zdb -u -l
转储一个 uberblocks 列表,将vfs.zfs.spa.load_verify_metadata
和设置vfs.zfs.spa.load_verify_data
为 0,并使用-n
,-N
,-R /some/Mountpoint
,-o readonly=on
和-T
旧 uberblock 的 txg 的 txg 的组合,以至少以只读形式到达数据所在的位置。从那里我可以看到zpool status -v
哪些文件已损坏,然后解密池,并将文件级数据复制到外部 HDD。