某虛機因故關閉了一段時間,再次開機后,始終未進入操作系統,遂選擇虛擬控制臺上的“重置”,以為就這樣沒事了。豈料,過了好久仍未觀察到該虛機業務恢復。再次觀察虛機仍是未進入操作系統,且“近期任務”中也看不到該虛機重置狀態,說明重置指令執行完畢已經自動不顯示了。此時,再次點擊關閉虛擬機電源、重置、掛起,均顯示“正在處理另一個任務”,虛機既不能啟動,也無法停止。
出現這一情況,其實在虛機開啟時,就沒有正常加載啟動,而我也沒有等待足夠長的時間讓虛機正常起來,于是冒失地“重置”將虛機置于“卡殼”狀態。虛機的啟動,與ESXi的Hostd服務緊密相連,此時需要在“主機→配置→安全配置文件→服務”中編輯打開SSH,進入命令行操作。
首先重啟Hostd服務,在命令行輸入“/etc/init.d/hostd restart”,重啟后回到WebClient查看虛機仍是無法關閉或重置,接下來只能強制殺掉虛機進程。通過命令“esxcli vm process list”查看到本主機上虛機的進程情況和World ID,確認ID和虛機后以命令“esxcli vm process kill--type=force --worldid=4860”進行強制關閉。完成后再次重啟Hostd服務,最后來到WebClient重新點擊虛機開啟,此時虛機順利開啟并進入到操作系統,觀察約1小時,虛機都運行平穩,確認該問題解決。
小結:虛機卡住等待處理另一個任務的情況其實并不多見,可能是ESXi的某些Bug被觸發,可能是當時主機的負載較高來不及響應,也可能是等待某個未釋放的資源,強制關閉類似于直接拔掉了服務器電源,是一個粗暴的操作行為。
本例的虛機處于剛開啟階段,甚至并未讀取磁盤,因而沒有其他副作用。假設運行中的虛機出現了類似情況,強制關閉則可能導致數據不能及時回寫到磁盤,造成數據丟失或數據損壞,遇到這種問題,需要根據情況慎重操作。