【51CTO 5月22号外电】VMware的vCenter堪称最佳的VMware虚拟系统界面工具。你可以使用它来全面管理自己的VMware虚拟基础设施环境。你不需要其他任何工具,除非虚拟机出现了问题,也就是说无法用vCenter来控制该虚拟机。
当你无法关闭、重启、启动或暂停虚拟机时,该如何是好?你可以当然打电话给VMware支持部门,但也可以求助于命令行。
对一些VMware管理员来说,命令行无异于神秘莫测的黑盒子,只有大胆之极或愚蠢之极的人才会执行如同魔法的命令。由于没有图形化vCenter简单易用又功能强大的这个优点,一些管理员束手无策、毫无头绪。
不过幸运的是,没必要这样。命令行并不可怕,它也没什么好担心的。如果学会了掌握其技能,你就能真正地驾驭虚拟王国。
我们将举例表明这种场景:你在vCenter中遇到了一只顽固的虚拟机(VM02),它无法重启、关闭或响应你的请求。虽然这种情况多少有点罕见,但是一旦果真出现这种情况,你现在知道该如何是好。
通过SSH连接到虚拟机驻留在上面的VMware主机系统上。你可以选择故障虚拟机的Summary(概要)选项卡,在vCenter中核查这一情况。一旦你登录进入到了主机,如果你最初没有作为根用户(root)来连接,执行su命令,使用根用户帐户。
请求托管型虚拟机列表。
# vmware-cmd -l
/vmfs/volumes/4e2204dba-9576436a-fbc9-00215af58ded/VM01/VM01.vmx
/vmfs/volumes/4e2204dba-9576436a-fbc9-00215af58ded/VM01/VM02.vmx
/vmfs/volumes/4e5a4beaa-9573215b-c5fd-00237de14f47/VM01/VM03.vmx
/vmfs/volumes/4e6c04dc3-81244355-fbb6-00215af58ded/VM01/VM04.vmx
或者必要的话,你可以使用一种更全面的视图,提供之后将要要用的信息。
# vmware-vim-cmd vmsvc/getallvms
Vmid Name File Guest OS Version Annotation
350 VM01 [CLUSTER_01] VM01/VM01.vmx winLonghorn64Guest vmx-07
440 VM02 [CLUSTER_01] VM02/VM02.vmx winLonghorn64Guest vmx-07
589 VM03 [CLUSTER_02] VM03/VM03.vmx winLonghorn64Guest vmx-07
440 VM04 [CLUSTER_03] VM04/VM04.vmx winLonghorn64Guest vmx-07
这里给出的关闭方法应该按所示的顺序来使用。首先,你应该尝试正常关闭虚拟机(trysoft);如果下面这个方法失效,就继续采用比较严格的方法。
# vmware-cmd VM02 stop trysoft
你不会得到响应,但是你可以在vCenter中检查虚拟机的状态。务必要给虚拟机足够的时间来关闭。如果虚拟机无法关闭,那么你就得使用hard stop(强行停机)选项,采用更极端的措施:
# vmware-cmd VM02 stop hard
stop(hard) = 1
如果强行停机也关闭不了虚拟机,不妨试试下列另一个“强行停机”命令:
# vmware-vim-cmd vmsvc/power.off (Find the vm id, from the output above: vmware-vim-cmd vmsvc/getallvms)
# vmware-vim-cmd vmsvc/power.off 440
要是不管你怎么尝试,那个顽固的虚拟机都关闭不了,那么你必须使用最强硬的终止命令,即恰如其名的kill命令:找到运行中虚拟机的进程编号。
# ps -ef |grep VM02
root 31231 1 0 15:12 ? 00:00:00 /usr/lib/vmware/bin/vmkload_app.../VM02/VM02.vmx
号码31231是VM02的进程编号(Process ID)。结合使用进程编号和kill命令,就可以对该进程实行正常停机。
# kill 31231
检查vCenter中的状态。最后,要是该虚拟机仍拒绝关闭,你就得使用不管目前是什么状态,都终止进程的方法:
# kill -9 31231
该虚拟机的进程将突然终止。只有其他所有方法都失效时,你才应该使用这个方法。
你的虚拟机暂停后,可以使用vCenter或下面这个命令行选项让它恢复运行:
# vmware-cmd start VM02
避免针对虚拟机执行强行关闭,因为这么做可能会导致磁盘文件受损。如果你之前备份了虚拟机,要是你的一个或多个磁盘文件受损,可以恢复到其中一个备份。
【未经许可,谢绝转载,转载请注明出处,谢谢合作】
译文来源:http://www.serverwatch.com/server-tutorials/managing-stubborn-vmware-vms-from-the-command-line.html