当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 在 VMware ESXi/vSphere 上恢复已删除的 VMFS 数据存储

作者:精品下载站 日期:2024-12-14 23:27:44 浏览:15 分类:玩电脑

在 VMware ESXi/vSphere 上恢复已删除的 VMFS 数据存储


让我们看看附加到 ESXi 主机/vSphere 的 VMFS 数据存储被删除、丢失或损坏时出现的问题。例如,当 VMware 管理员意外删除 VMFS 数据存储或由于存储/备份设备上的错误而禁用/丢失具有 VMFS 分区的磁盘/LUN 时,可能会由于人为错误而发生这种情况。在本文中,我们将展示如何使用 VMFS 数据存储手动恢复磁盘上的分区表。

假设 VMware 管理员意外选择了“删除”而不是“卸载”并删除了 VMFS 数据存储。

您无法卸载/删除正在使用的 VMFS 数据存储,或者在其上注册了 VM 或状态无效(未知)的 VM。

[玩转系统] 在 VMware ESXi/vSphere 上恢复已删除的 VMFS 数据存储

首先,不要惊慌。请勿再次从 vSphere 界面重新创建 VMFS 数据存储,或执行任何其他可能覆盖磁盘 (LUN) 上先前 VMFS 分区数据的操作。

打开vCenter客户端界面,进入存储->设备,在列表中找到之前连接的VMFS数据存储的磁盘/LUN。获取磁盘的完整路径(带有 naa 标识符)。在我的屏幕截图中,它是:

/vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565

在此示例中,我使用在 Windows Server(iSCSI 目标)上运行的 iSCSI VMFS 数据存储。

[玩转系统] 在 VMware ESXi/vSphere 上恢复已删除的 VMFS 数据存储

在目标 LUN 可用的 ESXi 主机上启用 SSH,并使用 SSH 客户端连接到它(我使用的是内置 Windows SSH 客户端)。

确保设备上存在分区表:

partedUtil getptbl /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565 

该命令返回磁盘/LUN 上有 GPT。

gpt
1305 255 63 20971520

[玩转系统] 在 VMware ESXi/vSphere 上恢复已删除的 VMFS 数据存储

然后,您必须获取磁盘上 VMFS 分区的第一个和最后一个块。

要显示 ESXi 主机中所有可用分区的摘要并查找已删除 VMFS 分区的第一个块,请在 ESXi cli 中运行以下脚本:

offset="128 2048"; for dev in `esxcfg-scsidevs -l | grep "Console Device:" | awk {'print $3'}`; do disk=$dev; echo $disk; partedUtil getptbl $disk; { for i in `echo $offset`; do echo "Checking offset found at $i:"; hexdump -n4 -s $((0x100000+(512*$i))) $disk; hexdump -n4 -s $((0x1300000+(512*$i))) $disk; hexdump -C -n 128 -s $((0x130001d + (512*$i))) $disk; done; } | grep -B 1 -A 5 d00d; echo "---------------------"; done

[玩转系统] 在 VMware ESXi/vSphere 上恢复已删除的 VMFS 数据存储

在此示例中,我们显示了有关已删除分区(testVMFS)的信息,并获取了该分区的第一个块的编号:2048

现在我们需要获取磁盘上 VMFS 分区的最后一个块:

partedUtil getUsableSectors /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565

[玩转系统] 在 VMware ESXi/vSphere 上恢复已删除的 VMFS 数据存储

在我们的示例中,它是20971486

如果该命令返回“磁盘上未知的分区表”错误,请手动设置 GPT 分区标签:

partedUtil mklabel /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565 gpt

然后获取 VMFS 分区的分区表 GUID。它始终是 AA31E02A400F11DB9590000C2911D1B8

您可以使用以下命令显示所有可能的分区表 GUID:

partedUtil showGuids

[玩转系统] 在 VMware ESXi/vSphere 上恢复已删除的 VMFS 数据存储

这意味着您必须为 vSAN 数据存储使用另一个 gpt GUID。

所以我们得到了以下信息:

  • LUN ID — naa.60003ff44dc75adc87daa4e08f467565

  • 起始区块 - 2048

  • 端块 - 2097148

  • GPT GUID - AA31E02A400F11DB9590000C2911D1B8

然后使用您获得的信息在磁盘上创建分区表:

partedUtil setptbl /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565 gpt "1 2048 20971486 AA31E02A400F11DB9590000C2911D1B8 0"

[玩转系统] 在 VMware ESXi/vSphere 上恢复已删除的 VMFS 数据存储

再次检查磁盘上的分区并确保 VMFS 分区现在可见:

partedUtil getptbl /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565

[玩转系统] 在 VMware ESXi/vSphere 上恢复已删除的 VMFS 数据存储

现在您需要挂载 VMFS 数据存储:

vmkfstools -V
esxcli storage core adapter rescan --all

[玩转系统] 在 VMware ESXi/vSphere 上恢复已删除的 VMFS 数据存储

转到 vSphere 客户端并确保出现意外删除的 VMFS 数据存储。您可以将其挂载到VMware ESXi主机上,也可以从Linux或Windows主机上访问它。

[玩转系统] 在 VMware ESXi/vSphere 上恢复已删除的 VMFS 数据存储

所有文件(包括 ISO 映像和虚拟机文件)都可在恢复的 VMFS 数据存储上使用。

[玩转系统] 在 VMware ESXi/vSphere 上恢复已删除的 VMFS 数据存储

之前,我们演示了如何使用 partedUtil 在 USB 闪存驱动器上创建 VMFS 数据存储,并使用命令行工具增加 VMFS 数据存储的大小。详细了解如何使用partedUtil在ESXi中管理分区表:https://kb.vmware.com/s/article/1036609。

本指南与 VMware ESXi/vSphere 6.0、6.5 和 7.0 相关。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯