作为IT人员,不知道你有没有经历过手抖,一不小心删除了数据库,文件等

本次详细为大家介绍在vmware vsphere上如何恢复被删除的vmfs数据存储及vmfs数据存储分区丢失,如何恢复

在开始之前我们先“删库跑路”,当然这是测试环境,小编还没有那么大胆。

环境介绍:

此次测试环境为7.0版本,数据存储为新添加的本地磁盘(所有传统存储一样)

vmos备份的虚拟机文件在哪(vmwarevmfs数据存储恢复)(1)

vmos备份的虚拟机文件在哪(vmwarevmfs数据存储恢复)(2)

下面我们先手滑删除存储

vmos备份的虚拟机文件在哪(vmwarevmfs数据存储恢复)(3)

vmos备份的虚拟机文件在哪(vmwarevmfs数据存储恢复)(4)

重点我是删除存储,而不是卸载,为了证明真实性,继续

vmos备份的虚拟机文件在哪(vmwarevmfs数据存储恢复)(5)

新建存储能看到我刚才删除的数据存储(正常情况下如果没有删除数据存储,新建存储是不能识别到该数据存储的)

vmos备份的虚拟机文件在哪(vmwarevmfs数据存储恢复)(6)

OK 到现在我们已经删除了数据存储,首先,不要惊慌。请勿再次从 vSphere 界面重新创建 VMFS 数据存储,或执行任何其他能够覆盖磁盘 (LUN) 上先前 VMFS 分区的数据的操作。

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

vmos备份的虚拟机文件在哪(vmwarevmfs数据存储恢复)(7)

Ssh进入主机

vmos备份的虚拟机文件在哪(vmwarevmfs数据存储恢复)(8)

获取分区表,注意已经没有显示为vmfs文件系统

vmos备份的虚拟机文件在哪(vmwarevmfs数据存储恢复)(9)

然后您必须获取磁盘上 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

可以看到我的起始分区为2048

vmos备份的虚拟机文件在哪(vmwarevmfs数据存储恢复)(10)

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

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

vmos备份的虚拟机文件在哪(vmwarevmfs数据存储恢复)(11)

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

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

partedUtil showGuids

vmos备份的虚拟机文件在哪(vmwarevmfs数据存储恢复)(12)

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

LUN ID — naa.60003ff44dc75adc87daa4e08f467565

开始块- 2048

最后块– 209715166

GPT GUID – AA31E02A400F11DB9590000C2911D1B8

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

partedUtil setptbl /vmfs/devices/disks/ mpx.vmhba0:C0:T1:L0 gpt "1 2048 209715166 AA31E02A400F11DB9590000C2911D1B8 0"

创建一个新的分区

vmos备份的虚拟机文件在哪(vmwarevmfs数据存储恢复)(13)

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

partedUtil getptbl /vmfs/devices/disks/ mpx.vmhba0:C0:T1:L0

可以看到vmfs信息已经出来了

vmos备份的虚拟机文件在哪(vmwarevmfs数据存储恢复)(14)

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

vmkfstools -V

esxcli storage core adapter rescan –all

重新扫描磁盘

vmos备份的虚拟机文件在哪(vmwarevmfs数据存储恢复)(15)

存储 已经出来了

vmos备份的虚拟机文件在哪(vmwarevmfs数据存储恢复)(16)

但是不能访问数据,

vmos备份的虚拟机文件在哪(vmwarevmfs数据存储恢复)(17)

别急需要挂载存储

vmos备份的虚拟机文件在哪(vmwarevmfs数据存储恢复)(18)

vmos备份的虚拟机文件在哪(vmwarevmfs数据存储恢复)(19)

可以看到数据已经全部出来了

Vmfs分区丢失也是一样的操作

vmos备份的虚拟机文件在哪(vmwarevmfs数据存储恢复)(20)

谁能正常显示存储,但是容量已经为0 且不能正常访问数据

vmos备份的虚拟机文件在哪(vmwarevmfs数据存储恢复)(21)

vmos备份的虚拟机文件在哪(vmwarevmfs数据存储恢复)(22)

重新设置一下分区

vmos备份的虚拟机文件在哪(vmwarevmfs数据存储恢复)(23)

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

vmkfstools -V

esxcli storage core adapter rescan –all

重新扫描磁盘

vmos备份的虚拟机文件在哪(vmwarevmfs数据存储恢复)(24)

数据正常可访

,