通過命令行管理頑固的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