通過命令行管理頑固的VMware虛擬機(jī)
譯文【51CTO 5月22號外電】VMware的vCenter堪稱最佳的VMware虛擬系統(tǒng)界面工具。你可以使用它來全面管理自己的VMware虛擬基礎(chǔ)設(shè)施環(huán)境。你不需要其他任何工具,除非虛擬機(jī)出現(xiàn)了問題,也就是說無法用vCenter來控制該虛擬機(jī)。
當(dāng)你無法關(guān)閉、重啟、啟動或暫停虛擬機(jī)時(shí),該如何是好?你可以當(dāng)然打電話給VMware支持部門,但也可以求助于命令行。
對一些VMware管理員來說,命令行無異于神秘莫測的黑盒子,只有大膽之極或愚蠢之極的人才會執(zhí)行如同魔法的命令。由于沒有圖形化vCenter簡單易用又功能強(qiáng)大的這個(gè)優(yōu)點(diǎn),一些管理員束手無策、毫無頭緒。
不過幸運(yùn)的是,沒必要這樣。命令行并不可怕,它也沒什么好擔(dān)心的。如果學(xué)會了掌握其技能,你就能真正地駕馭虛擬王國。
我們將舉例表明這種場景:你在vCenter中遇到了一只頑固的虛擬機(jī)(VM02),它無法重啟、關(guān)閉或響應(yīng)你的請求。雖然這種情況多少有點(diǎn)罕見,但是一旦果真出現(xiàn)這種情況,你現(xiàn)在知道該如何是好。
通過SSH連接到虛擬機(jī)駐留在上面的VMware主機(jī)系統(tǒng)上。你可以選擇故障虛擬機(jī)的Summary(概要)選項(xiàng)卡,在vCenter中核查這一情況。一旦你登錄進(jìn)入到了主機(jī),如果你最初沒有作為根用戶(root)來連接,執(zhí)行su命令,使用根用戶帳戶。
請求托管型虛擬機(jī)列表。
# 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
這里給出的關(guān)閉方法應(yīng)該按所示的順序來使用。首先,你應(yīng)該嘗試正常關(guān)閉虛擬機(jī)(trysoft);如果下面這個(gè)方法失效,就繼續(xù)采用比較嚴(yán)格的方法。
# vmware-cmd VM02 stop trysoft
你不會得到響應(yīng),但是你可以在vCenter中檢查虛擬機(jī)的狀態(tài)。務(wù)必要給虛擬機(jī)足夠的時(shí)間來關(guān)閉。如果虛擬機(jī)無法關(guān)閉,那么你就得使用hard stop(強(qiáng)行停機(jī))選項(xiàng),采用更極端的措施:
# vmware-cmd VM02 stop hard
stop(hard) = 1
如果強(qiáng)行停機(jī)也關(guān)閉不了虛擬機(jī),不妨試試下列另一個(gè)“強(qiáng)行停機(jī)”命令:
# 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
要是不管你怎么嘗試,那個(gè)頑固的虛擬機(jī)都關(guān)閉不了,那么你必須使用最強(qiáng)硬的終止命令,即恰如其名的kill命令:找到運(yùn)行中虛擬機(jī)的進(jìn)程編號。
# ps -ef |grep VM02
root 31231 1 0 15:12 ? 00:00:00 /usr/lib/vmware/bin/vmkload_app.../VM02/VM02.vmx
號碼31231是VM02的進(jìn)程編號(Process ID)。結(jié)合使用進(jìn)程編號和kill命令,就可以對該進(jìn)程實(shí)行正常停機(jī)。
# kill 31231
檢查vCenter中的狀態(tài)。最后,要是該虛擬機(jī)仍拒絕關(guān)閉,你就得使用不管目前是什么狀態(tài),都終止進(jìn)程的方法:
# kill -9 31231
該虛擬機(jī)的進(jìn)程將突然終止。只有其他所有方法都失效時(shí),你才應(yīng)該使用這個(gè)方法。
你的虛擬機(jī)暫停后,可以使用vCenter或下面這個(gè)命令行選項(xiàng)讓它恢復(fù)運(yùn)行:
# vmware-cmd start VM02
避免針對虛擬機(jī)執(zhí)行強(qiáng)行關(guān)閉,因?yàn)檫@么做可能會導(dǎo)致磁盤文件受損。如果你之前備份了虛擬機(jī),要是你的一個(gè)或多個(gè)磁盤文件受損,可以恢復(fù)到其中一個(gè)備份。
【未經(jīng)許可,謝絕轉(zhuǎn)載,轉(zhuǎn)載請注明出處,謝謝合作】
譯文來源:http://www.serverwatch.com/server-tutorials/managing-stubborn-vmware-vms-from-the-command-line.html