VMware虚拟机是一个神器,虽然经常遇到一些小问题,但还是喜欢VMware虚拟机!
本文解决问题:VMware虚拟机无法开机,提示:Unable to open Swap File的解决办法?
今天有个朋友进行虚拟化测试时VMware虚拟机遇到一个奇怪的问题,虚拟机无法开机,尝试开启虚拟机时,提示错误信息如下:
Unable to open Swap File;
Unable to access a file since it is locked;
Unable to access Virtual machine configuration;
通过cli登录ESXI,在/var/log/vmkernel文件里可以看到类似如下信息:
WARNING: World: VM xxxx: xxx: Failed to open swap file ock was not free
WARNING: World: VM xxxx: xxx: Failed to initialize swap file
同时当尝试开启虚拟机的console控制台时,可能会收到如下错误信息:
Error connecting to .vmx because the VMX is not started
再次开启虚拟机时,卡在95%位置无响应;从模板部署一台新的VM之后无法开启虚拟机;虚拟机在vCenter Server和ESXi/ESX主机之间报告控制台电源状态冲突;
问题分析:
导致这个问题的因素可能很多,但是众多问题中,都穿插或包含着文件损坏或文件被锁定等问题的可能。最终定位到是由于丢失或锁定文档导致虚拟机无法Power On,通常虚拟机常用的文件如下:
*.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//虚拟机目录>/虚拟机名>.vmx
5、执行下列命令切入到这个虚拟机所在的目录:
#cd /vmfs/voluems//虚拟机目录>
6、然后查阅vmware.log日志,在文件的尾部查看什么原因导致这个问题后再针对性的分析。
准确定位并删除掉锁定文件
由于虚拟机可以在主机之间移动,如果虚拟机注册到的主机保持对文件的锁定状态,那么,这个锁定文件可以有效保障ESXi/ESX主机对虚拟机文件的控制权和有效保护虚拟系统。主机由Service Console接口的MAC来确定。lock由VMkernel或Service Console负责维护;
备注:ESXi服务器没有Service Console所以,lock由VMkernel单独负责维护;
首先要确定VMkernel可能锁定的文件:
1、执行下面的命令来报告锁定目录所在的MAC地址:
#vmkfstools -D /vmfs/volumes//虚拟机目录>/锁定状态文件>
2、由于负责锁定.vmdk文件的主机会将MAC地址写入到vmkernel日志里面,那么可以用下面的命令查阅:
#tail /var/log/vmkernel