Vmware vSphere虚拟机文件被锁无法正常power on的解决方法

间隙填充
正睿科技  发布时间:2015-12-09 12:01:49  浏览数:10130

  故障现象:启动虚拟机时95%,停顿并且进程中断,提示:ubable to access files since it is locked。

  原因分析:是HA的原因。

  解决方法:

  1、首先将cluster中的HA功能关闭。如果该功能不关闭,容易造成死锁,,VM不断跳动,,不断再不同的ESX内循环被锁,徒劳而无功。

    2、磁盘文件被锁,要解决,必须要知道到底是哪台ESX把他给锁住了,这是关键。

  操作:看/var/log/vmkernel但是,在做这些前, 再准备些别的工作。

  3、在VC中,把被锁的VM从Inventory中remove掉。原因很简单,这是一个 unregister的过程。

    4、根据/var/log/vmkernel,搜索owner,可以找到类似以下的语句:

  Oct 19 04:23:33 esx-hostname vmkernel: 3:06:29:47.992 cpu6:1656)FS3: 1975: Checking if lock holders are live for lock [type 10c00001 offset 52008960 v 380, hb offset 3554304 Oct 19 04:23:33 esx-hostname vmkernel: gen 17, mode 1, owner 48f5f637-462688bc-fd28-0e1a6434b6f8mtime 38112]

  OK,owner后面的48f5f637-462688bc-fd28-0e1a6434b6f8就是你的target了。 因为他就是锁住VM 的宿主.。


  5、根据以下命令,,找出到底哪台ESX的UUID是 48f5f637-462688bc-fd28-0e1a6434b6f8

  [iyunv@esxhostname root]# esxcfg-info |grep -i system uuid

    6、找到目标主机后,当然是杀死他锁住VM的进程。之所以会被锁,原因就是HA 把VM从别的HOST迁移过来,但是又没有unregister和register的过程,所以在第3步的时候,你查看VM的Summary的时候,host ip还是属于出问题的 host。 但是VM又被新的host霸王硬上功的power on,注册都没注册, 又怎么启动呢。找到 PID 用下面的命令:

  ps -efwww|grep virtualmachine.vmx

  找到 PID 后, kill -9 PID

  7、此时需确定一件事情(.vswp文件)。这个是给台客处理问题时吸取的经验。就因为忽略了这个,所以在杀掉?程后,重新注册VM,还说没有 SWAP文件,启动还是失败。

  在 VM 启动时会自动生成SWAP,没有SWAP文件,其实就是因为 SWAP 存在了, 因为重名而导致无法正常生成。

  进入到/vmfs/volumes/lunid/vm_path/下,vmkfs -d virtual_machine.vswp 或者进入Datastore Browser,在里面把SWAP文件删除也可。


    8、完全之策,你还可以进入到VM的SETTINGS--OPTIONS--SWAPFILE LOCATION, 对该保存的位置做下设置。

  9、重新注册VM。进入Datastore Browser,找到VM.vmx,add to inventory。

    10、启动VM。