一、【问题描述】
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是该虚拟机名称。
相关知识库:
本文出自 “想你所想,没有不可以” 博客,请务必保留此出处http://joket.blog.51cto.com/3504252/1739158
原文地址:http://joket.blog.51cto.com/3504252/1739158