環境:esxi5.1-esxi6.5
背景:如果esxi下面某一台vm死機了,並且esxi的控制台卡死不能用,為了不影響同一個esx下其他的vm正常使用,那么我們只能用命令行來單獨重啟此vm,保證一定得安全性和效率。下面我會通過四種方法來重啟vm
做法:登陸esxi主機
登陸esxi的方法:
1.打開ssh服務,然后通過ssh上去(一般默認 是關閉的)
2.通過控制口,或者機房接顯示器,然后按alt+f1 輸入密碼也可以進去。
三.重啟vm
1.通過vim-cmd來重啟:
vim-cmd vmsvc/getallvms (獲取所有虛擬機的vmid信息)
關閉虛擬機:vim-cmd vmsvc/power.off 3
打開虛擬機:vim-cmd vmsvc/power.on 3
重啟虛擬機:vim-cmd vmsvc/power.reset 3
獲取虛擬機的當前狀態:vim-cmd vmsvc/power.getstate 3
2.使用esxi主機的esxcli命令來關閉vm
esxcli vm process list (獲取正在運行的虛擬機的信息)
關閉虛擬機: vm process kill --type=hard --world-id=245735
注意有三種關閉虛擬機的模式:soft程度最低,hard為立即執行,如果依然不能關機那么就只能用force模式。
查看虛擬機有沒有被關閉:esxcli vm process list (這條命令顯示,如果沒有在列表里面的則表示已經關閉了)
3.在esxi上面發送信號來關閉vm
說明:主要是虛擬機能夠在命令行下停止相關的進程從而關閉
警告:這個操作對esxi母機有潛在的危險,如果你不能正確的辨別進程的ID,而誤殺了其他的進程,就會導致不可預期的后果,所以一般盡量不要去用這種方法。
1)要知道esxi下面有沒有虛擬機在運行可以使用下面的命令:
ps | grep vmx (分別是pid,父進程,調用的服務)
2)從上面可以看出我的tw08c011s2這台虛擬機的父進程是247107,那么我只要把它kill掉就ok了 。即:
終止虛擬機的父進程: kill 247107
強制終止:kill -9 247107
3)用上面的命令進行檢測,應該是ok了。