本文针对vCenter的一个常见问题,就是当我们想配置一个虚拟机(比如想加虚拟内存或者硬盘空间),在vCenter对着该VM右键点击“编辑设置”时,有可能会发现所有硬盘空间都显示0GB,并且其他选项都变灰无法进行更改,如下图:
这时我们会发现,全部VM都同样状况,所有虚拟机全部硬盘都显示为0gb,重启了vCenter但是问题依旧。
如果我们看日志,会发现/var/log/vmware/vsphere-ui/logs/vsphere_client_virgo.log会有以下的关键字:
InvalidSslCertificateException: Invalid SSL certificate (HTTP 526 status code)
我们可以看到有SSL证书相关的错误
可以SSH进去VCSA用以下命令确认:
cat /var/log/vmware/vsphere-ui/logs/vsphere_client_virgo.log | grep -i "invalid ssl"
全部VM硬盘显示0GB的解决办法
参照VMware KB的解决办法https://knowledge.broadcom.com/external/article?legacyId=85784,用lsdocter修复SSL证书的mismatch问题:
1. 下载lsdocter脚本(下载链接在文章最下方)
https://knowledge.broadcom.com/external/article?legacyId=80469
什么是lsdocter: lsdocter全名为Lookup Service Doctor,是一个VMware原厂提供的脚本,主要用于解决存储在 PSC 数据库中的数据问题以及与 vCenter 本地相关的数据问题的工具。这个工具主要用来检测和纠正可能导致拓扑更改(合并、重新指向等)、升级或维护过程中出现的失败(例如错误应用新的 SSL 证书)的问题。
注意:确保你有做vCenter的离线备份
2. 将lsdocter上传至vCenter里的任意目录,如/tmp,解压
# unzip lsdoctor.zip
3. cd 到lsdocter目录,执行检查选项-l, –lscheck (这个”–l”只是检查功能,用来双重确认问题)
# python lsdoctor.py -l
可以看到的确找到了问题found SSL Trust Mismatch: Please run python ls doctor.py –trustfix option on this node.
4. 执行trustfix修复SSL问题
# python lsdoctor.py -t 或者python lsdoctor.py --trustfix
输入administrator@vsphere.local的密码后,过大概5分钟修复完成
5. 重启vCenter服务使其生效
# service-control --stop --all && service-control --start --all
大概15分钟全部服务重启后,回到vCenter UI网页,可以看到问题解决,VM的硬盘不再显示为0gb,虚拟机的硬盘可以正常显示容量并可以正常设置。