虛擬機無效或不可訪問

一、【問題描述】

  1. vCenter目錄清單顯示虛擬機無效或不可訪問

  2. 虛擬機其他操作都顯示爲灰色,即無法進行界面操作

二、【問題分析】

  1. 清單服務問題

    有時候虛擬機會被標註成無效或者是無法訪問,但實際上虛擬機還是正常的,業務也可以正常訪問,但是無法對虛擬機做任何操作,這種情況一般都是清單服務的問題。


  2. 虛擬機本身的問題

    虛擬機本身的OS有時候也會有問題,導致虛擬機死機,這時候通過vmtools發送的監控信號就中斷了,主機就會把虛擬機標記成無效或者無法訪問。如果您開了HA,並且有虛擬機監控,那麼正常來說這種情況下會觸發HA,把這臺虛擬機在原主機或者集羣中的其他主機上重啓。


  3. 主機進程的問題

    虛擬機對於主機來說就相當於一個word或者excel程序在我們的電腦上一樣,就是一個系統中的進程,該進程有較小概率也會由於某些原因出現問題,會導致虛擬機無法正常工作。


三、【解決方法】

 1. 首先需要找到該虛擬機存放在哪個存儲上,選擇該虛擬機—》右鍵—》移除清單,此時在存放該虛擬機的存儲上,找到虛擬機文件夾,在該文件夾裏找到“虛擬機名稱.vmx”文件,右鍵“添加到清單”。如果“添加到清單是灰色”,那是因爲該虛擬機還在esxi上運行,所以需要通過ssh登陸到esxi,kill命令結束運行的虛擬機進程。

      SSH進入esxi,用root用戶登錄

      運行命令:ps | grep VirtualMachineName

輸入內容類似於:

      7662 7662 vmx /bin/vmx

      7667 7662 vmx /bin/vmx

      7668 7662 mks:VirtualMachineName /bin/vmx

      7669 7662 vcpu-0:VirtualMachineName/bin/vmx

將返回多個行,每行對應一個vmx 進程。請識別出目標虛擬機的父vmx 進程。第一列包含的是 PID,第二列則包含該父進程的 PID。請確保您僅終止父進程。每個進程的父進程 ID (PID) 在第二列中列出,在本示例中以粗體標識。記下該數字以便在後面的步驟中使用。

警告:請確保您標識的行僅特定於您要修復的虛擬機。如果對該虛擬機以外的虛擬機繼續執行此過程,則可能會導致其他虛擬機停機。

終止該進程:

     Kill ProcessID

等待 30 秒後重復執行第 2 步再次檢查該進程是否存在。

如果未終止,請運行以下命令:

     kill -9 ProcessID

結束該虛擬機進程後再添加清單。


相關KB鏈接:

在 ESXi 主機上關閉虛擬機 (2049661)

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2049661


另外:

如果再添加該虛擬機到清單的時候,提示“虛擬機或模板有相同名稱,或已存在”,添加清單會失敗。因爲在清單數據庫裏還存在該虛擬機vmx文件,所以現在要把該vmx文件在清單數據庫移除。

通過SQLManagement studio新建查詢

選擇vcenter數據庫,執行下面命令:

Select * from VPX_VM WHERELOCAL_FILE_NAME like '%MachineName.vmx'

找到該文件後,在執行下面刪除命令(刪除的時候可能需要執行該命令多次):

Delete from VPX_VM WHERELOCAL_FILE_NAME like '% MachineName.vmx'

其中MachineName是該虛擬機名稱。

 

相關知識庫:

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2004139

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章