34、丢失或锁定文档导致虚拟机无法Power On
故障状态:
1、虚拟机无法开启;
2、尝试开启虚拟机时,看到类似如下错误信息:
Unable to open Swap File;
Unable to access a file since it is locked;
Unable to access Virtual machine configuration;
3、在/var/log/vmkernel文件里可以看到类似如下信息:
WARNING: World: VM xxxx: xxx: Failed to open swap file <path>ock was not free
WARNING: World: VM xxxx: xxx: Failed to initialize swap file <path>
4、当尝试开启虚拟机的console控制台时,可能会收到如下错误信息:
Error connecting to <path><virtual machine>.vmx because the VMX is not started
5、在开启虚拟机时,卡在95%位置无响应;
6、从模板部署一台新的VM之后无法开启虚拟机;
7、虚拟机在vCenter Server和ESXi/ESX主机之间报告控制台电源状态冲突;
故障分析:
导致这个问题的因素可能很多,但是众多问题中,都穿插或包含着文件损坏或文件被锁定等问题的可能。虚拟机常用的文件包括:
*.vswp
*-flat.vmdk
*-delta.vmdk
*.vmx
*.log
解决方案:
首先需要确认哪些文件处于锁定状态:
1、利用vSphere Client登录ESXi/ESX主机、vCenter Server主机;
2、在Datastore里找到想要开启但是无法开启的虚拟机所在位置;
3、尝试开启虚拟机,如果无法开启且console显示错误,先查阅vmware.log日志文件的相关信息来确认问题;
4、利用SSH或COS选用root权限登录到ESXi/ESX主机之后执行下面的命令查看虚拟机的完整路径:
#vmware-cmd -l
系统将输出类似如下信息来显示注册到ESXi/ESX主机的虚拟机:
/vmfs/volumes/<UUID>/<虚拟机目录>/<虚拟机名>.vmx
5、执行下列命令切入到这个虚拟机所在的目录:
#cd /vmfs/voluems/<UUID>/<虚拟机目录>
6、然后查阅vmware.log日志,在文件的尾部查看什么原因导致这个问题后再针对性的分析。
准确定位并删除掉锁定文件
由于虚拟机可以在主机之间移动,如果虚拟机注册到的主机保持对文件的锁定状态,那么,这个锁定文件可以有效保障ESXi/ESX主机对虚拟机文件的控制权和有效保护虚拟系统。主机由Service Console接口的MAC来确定。lock由VMkernel或Service Console负责维护;
备注:ESXi服务器没有Service Console所以,lock由VMkernel单独负责维护;
首先要确定VMkernel可能锁定的文件:
1、执行下面的命令来报告锁定目录所在的MAC地址:
#vmkfstools -D /vmfs/volumes/<UUID>/<虚拟机目录>/<锁定状态文件>
2、由于负责锁定.vmdk文件的主机会将MAC地址写入到vmkernel日志里面,那么可以用下面的命令查阅:
#tail /var/log/vmkernel |