一、【問題描述】
vCenter目錄清單顯示虛擬機無效或不可訪問
虛擬機其他操作都顯示爲灰色,即無法進行界面操作
二、【問題分析】
清單服務問題
有時候虛擬機會被標註成無效或者是無法訪問,但實際上虛擬機還是正常的,業務也可以正常訪問,但是無法對虛擬機做任何操作,這種情況一般都是清單服務的問題。虛擬機本身的問題
虛擬機本身的OS有時候也會有問題,導致虛擬機死機,這時候通過vmtools發送的監控信號就中斷了,主機就會把虛擬機標記成無效或者無法訪問。如果您開了HA,並且有虛擬機監控,那麼正常來說這種情況下會觸發HA,把這臺虛擬機在原主機或者集羣中的其他主機上重啓。主機進程的問題
虛擬機對於主機來說就相當於一個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是該虛擬機名稱。
相關知識庫: