通过命令行管理顽固的VMware虚拟机

译文
云计算 虚拟化
VMware的vCenter堪称最佳的VMware虚拟系统界面工具。你可以使用它来全面管理自己的VMware虚拟基础设施环境。你不需要其他任何工具,除非虚拟机出现了问题...

【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

责任编辑:何巍 来源: 51CTO
相关推荐

2014-04-16 13:22:29

虚拟机OpenStack命令行

2014-04-16 10:44:56

OpenStack命令行工具虚拟机

2010-09-25 09:10:38

JAVA虚拟机

2009-06-12 22:02:23

Java虚拟机命令行参

2010-09-16 14:59:27

Java虚拟机

2018-06-19 16:05:27

LinuxStratis存储

2014-09-04 09:53:43

LinuxDigitalOcea

2012-01-04 09:31:05

虚拟化桌面虚拟化vmware

2011-05-17 10:28:57

VMwareXenServer

2009-08-07 11:16:28

2022-08-14 19:19:14

Linux

2014-06-09 10:23:20

2012-04-05 09:40:10

虚拟化vmware虚拟机

2010-07-01 09:26:09

2023-06-12 23:00:23

2018-05-24 14:20:01

数据库MySQL命令行

2014-02-21 11:20:34

KVMXen虚拟机

2009-12-11 14:00:09

VMware虚拟机

2009-10-27 11:29:44

linux虚拟机

2009-11-17 10:41:28

点赞
收藏

51CTO技术栈公众号