有時候虛擬機器似乎秀斗了,用VI Client也無法關閉它。看起來應該是HANG住,此時你可以透過一些方式來停止該VM。
以下方式針對ESX4.X
使用
# vmware-cmd -l
列出所有虛擬機器名稱,並記下你要關閉的那個虛擬機器之設定檔路徑。
例如:
# /vmfs/volumes/ / / .vmx

取得目前虛擬機器狀態
# vmware-cmd getstate
如果結果是 getstate() = on,則Virtual Center應該是跟這台虛擬機溝通有問題,請先把這問題解決掉。
如果結果是 getstate() = off ,表示ESX無法判斷此機器是否有問題,請繼續往下看。

使用vm-support script關閉虛擬機器
取得WorldID
#vm-support –x

刪除VM之process
#vm-support –X
這個指令會透過各種方式關閉虛擬機器,所以可能會需要30分鐘左右時間。

如果上述方式無效,針對ESX4可以再使用以下方法:
列出所有VM的vmxCartelID
#/usr/lib/vmware/bin/vmdumper –l

移動卷軸慢慢尋找你要砍的那個VM名稱,顯示可能類似 :
vmid=5151 pid=-1 cfgFile="/vmfs/volumes/4a16a48a-d807aa7e-e674-001e4ffc52e9/mdineeen_test/vm_test.vmx" uuid="56 4d a6 db 0a e2 e5 3e-a9 2b 31 4b 69 29 15 19" displayName="vm_test" vmxCartelID=####

關閉vmxCartelID
#/usr/lib/vmware/bin/vmkload_app –k 9 ####

使用vmware-cmd關閉虛擬機器
溫和的關閉
#vmware-cmd stop
確認狀態後若還是沒被關閉
#vmware-cmd getstate
強行關閉
#vmware-cmd stop hard

使用Kill方式關掉VM Pid
#ps –auxwww |grep –I .vmx

root 3093 0.0 0.3 2016 860 ? S< Jul30 0:17 /usr/lib/vmware/bin/vmkload_app /usr/lib/vmware/bin/vmware-vmx -ssched.group=host/user -# name=VMware ESX Server;version=3.5.0;licensename=VMware ESX Server;licenseversion=2.0 build-158874; -@ pipe=/tmp/vmhsdaemon-0/vmx569228e44baf49d1; /vmfs/volumes/49392e30-162037d0-17c6-001f29e9abec/ / .vmx

該process ID為粗體,例如以上例子3039
#kill
等待30 秒後,在確認一次該process在不在。
如果沒有被終結掉,可再使用以下指令
#kill -9

如果還是砍不掉,ESX可能就得重新啟動才能釋放狀態不正常的VM。
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 BENIT 的頭像
    BENIT

    BenIT

    BENIT 發表在 痞客邦 留言(0) 人氣()