1. esxi6 關機時怎麼執行命令
目的:強行關閉通過前端界面無法關閉的ESXI虛擬機
環境:esxi5.1-esxi6.5
背景:如果esxi下面某一台vm死機了,並且esxi的控制台卡死不能用,為了不影響同一個esx下其他的vm正常使用,那麼我們只能用命令行來單獨重啟此vm,保證一定得安全性和效率。下面我會通過四種方法來重啟vm
做法:登陸esxi主機
1. SSH登陸esxi
2. 重啟/關閉VM
2.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.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了。