1. 错误描述
在vSphere上,一次重启虚拟服务器时出现启动不了,提示找不到vmdk虚拟磁盘文件:
2. 原因分析
查看这台虚拟服务器的摘要信息,对比datastore上其他可用的虚拟机,发现损坏的服务器上确实缺少一个vmdk磁盘文件,但是可以看见一个50G的xxx-flat.vmdk
文件;而正常的服务器只有xxx.vmdk
,没有xxx-flat.vmdk
,关机之后两个文件都存在,而且真实的磁盘容量从vmdk转移到了xxx-flat.vmdk
。
虚拟主机在运行的时候,实际在使用的是xxx-flat.vmdk
,然而xxx.vmdk
是可以同时被删除的,才导致了问题。
这里需要说明,虚拟机的每个磁盘驱动器都包含了一对.vmdk
文件。一个是文本文件,包含了关于虚拟硬盘的描述数据;另外一个是磁盘的实际内容。例如,一个名为examplevm
的虚拟机连接有一个硬盘。这个磁盘由如下两个文件构成:一个小于 1KB 的examplevm.vmdk
描述文件和一个10GB大小的examplevm- flat.vmdk
平面(数据)文件,该文件包含虚拟机的实际数据,而这些数据又是以二进制的形式存放在物理磁盘上,examplevm.vmdk
描述文件就是描述这种映射关系的。
另外:
A note for ESX-users:
Do not use Datastorebrowser to identify vmdks