使用ESX troubleshooting恢复虚拟原始设备映射数据(3)
花三天解决了问题
由于这些文件现在都在Linux主机上,我再次使用vcbrestore命令就成功了。
/tmp/vcbrestore -D -I ./VM_4.tvzc -O /dev/stdout | tar -xvf -
由于最后一次尝试成功了,现在我已经可以成功复制导致问题的虚拟机的flat.vmdk和-rdm.vmdk文件,我知道先前失败的原因在于NTFS和SMB/CIFS。不过,由于虚拟RDM恢复成了VMDK文件,为了使用虚拟机,对-rdm.vmdk元数据作一些小改动是必要的。我必须更改VM_1.vmdk元数据文件里的两行。
createType="vmfsRawDeviceMap"
更改为
createType="vmfs"
还有
RW 584888320 VMFSRDM "VM_1-rdm.vmdk"
更改为
RW 584888320 VMFS "VM_1-rdm.vmdk"
我现在可以在VMware Workstation v6.5或VMware Server v2里运行虚拟机了。我测试了一些恢复理论。虚拟机在VMware Server v2里运行得很好。它不能在ESX里运行,因为VMFS不能处理大于256GB的文件。
为什么vRangerPro失败了?
在过程中的这个阶段,我最终明白了Vizioncore vRangerPro是如何备份虚拟RDM的。非常感谢Vizioncore的一位高级工程师,我也开始明白了vRangerPro的恢复方法。很明显,虚拟RDM比256GB大得多,因此我不能将其作为VMDK存储在VMFS。为什么?因为当我设置VMFS,我不允许它处理较大的文件。这就是为什么使用Vizioncore vRangerPro尝试恢复的时候失败了。vRanger Pro将所有RDM作为VMDK存储,这需要你的LUN上有足够的空间,并且LUN支持大于256GB的文件(至少在我这样的情况下)。