【发布时间】:2020-10-30 01:57:04
【问题描述】:
在一台 Proxmox 机器上,我注意到一些 VM 的一些备份失败了,所以我想测试一下。 在测试整个主机停止响应时,我强制重新启动。 重新启动后,我似乎丢失了整个数据存储。 几乎每个 zfs 命令都会导致冻结。 zpool status,zpool list,你说它,它会被锁住,你甚至不能 ctrl 打破它。 我仍然可以创建一个新的 SSH 会话并尝试其他事情。 为了查看导致命令挂起的原因,我考虑运行
zpool set failmode=continue
希望它会显示一个错误,但正如您所猜想的那样,该命令也会挂起。
这是在两个 nvme 驱动器上创建的池。创建池的原始命令是
zpool create -f -o ashift=12 storage-vm /dev/nvme0n1 /dev/nvme1n1
我首先想到的是其中一个 nvme 坏了,所以我检查了 SMART 状态,但它显示两个驱动器都非常健康。 然后在尝试其他东西之前,我决定使用 dd 命令将驱动器备份到 NFS 共享。
dd if=/dev/nvme0n1 of=/mnt/pve/recovery/nvme0n1
dd if=/dev/nvme1n1 of=/mnt/pve/recovery/nvme1n1
两个命令都完成并且在 NFS 共享上我有 2 个大小完全相同的图像(每个 2TB)
然后我尝试在 nvme 上使用 dd 进行非破坏性读/写测试,并且没有出现错误。 为了尽可能排除我使用备用硬件(相同品牌和类型等)构建另一台 Proxmox 机器并将驱动器放置在那里。 在新机器上,所有 zpool 命令也挂起。如果我在从主板上卸下驱动器的情况下运行 zpool status,它不会挂起,但显然它没有任何显示。 所以我把nvme的放回原机。
zdb -l /dev/nvme0n1给了
failed to unpack label 0
failed to unpack label 1
failed to unpack label 2
failed to unpack label 3
哪一种让我担心。对其他 nvme 也是如此。
现在我的想法已经不多了。我对 zfs 系统知之甚少,不知道有什么方法可以保存数据。 显然,驱动器并没有真正死掉,因为智能告诉我它是健康的,我可以从它们中添加图像。 硬件交换也几乎排除了诸如故障 RAM 或主板之类的事情。 有没有办法从该存储中恢复至少一些虚拟机? 帮助/指针将不胜感激。
【问题讨论】:
-
我遇到了同样的问题,我想知道您是否有幸恢复了任何数据?
-
@nxet 是的,我能够恢复一切。稍后我会回复您。