今天在esxi上的一台windows系統的虛拟機(以下簡稱vm),突然nagios報警提示說:該機器發生故障。
既然問題出來了,就要解決。先在本機ping下那台vm,發現不能ping通。使用vsphere登入到esxi,發現該vm還處于運作狀态,但是無法遠端進去,一直顯示的是黑屏。
打算直接在esxi上重新開機該機器,但是卻提示如下的錯誤資訊:
因為不想安裝esxi的其他管理工具,是以就打算通過esxi的ssh直接重新開機vm。
通過ssh關閉vm有兩種方法:一是使用esxi指令行工具vim-cmd來關閉vm,二是通過系統發送信号關閉vm。
<b>方法一、</b>
我們先來介紹方法一,通過ssh終端登入到esxi上。
第一、使用如下指令擷取esxi上的所有虛拟機清單,如下:
vim-cmd vmsvc/getallvms
可以看到目前該esxi上有5台vm。
第二、擷取報錯vm的目前狀态:
vim-cmd vmsvc/power.getstate vm_id
可以看到目前該vm是處于運作狀态的。
第三、使用第一步擷取的vm_id來關閉虛拟機:
vim-cmd vmsvc/power.shutdown vm_id
根據上圖,我們發下還是無法關閉vm。我們可以使用以下指令,強制關閉虛拟機:
vim-cmd vmsvc/power.off vm_id
<b>方法二、</b>
現在我們來看方法二,要使用方法二關閉vm,我們要知道該esxi上目前是否有vm正在運作,我們可以通過如下指令進行檢視:
ps |grep vmx
注意上圖中,我标記出來的pid号。該pid就是該vm程序的父pid。我們隻需把該程序父pid殺死即可關閉vm,如下:
kill -9 9823
以上是就是在ssh下關閉esxi的vm。那麼下面我們通過ssh開啟vm。指令如下:
vim-cmd vmsvc/power.on vm_id