警告:在生产环境,操作前一定要备份重要数据。!!!
故障描述
周五办公大楼停电通知:停电时间为2023 年07月21日(星期五)23时00分起 至2023年07月22日(星期六)早晨06时 00分止。
在对Vsan集群主机进行关机操作,先关闭集群vSphere DRS 自动迁移,挨个给重要的机器做快照,关机虚拟机,宿主机进行维护模式,最后关机。
当整个集群关机 再开机后,vCLS运行可能不正常,集群服务变成降级或者不正常。
报错提示:由于 vSphere 集群服务虚拟机不可用导致 vSphere 集群服务状态不正常,进而导致 vSphere DRS 功能受影响。要维护 vSphere DRS 运行状况,需要 vSphere 集群服务虚拟机
vSphere DRS 功能受到影响,原因是 vSphere Cluster Service 虚拟机不可用导致 vSphere Cluster Services 处于不正常状态。
集群服务器状态不正常。
已降级 vCLS-6df0adfc-ef83-4ce8-b0e2-eb2177945d2a 个已关闭电源
解决方法一
重启
Vcenter Client
重启了三遍。
尝试手动启动vCLS-6df0adfc-ef83-4ce8-b0e2-eb2177945d2a 虚拟机所有操作按钮全部灰色无法点击开机。
查询官网解决方法 kb.vmware.com
官方给的原因
可能有多个问题导致此错误。
用户已关闭已启用 DRS 的群集中的 vCLS 虚拟机电源或删除 vCLS 虚拟机
vCLS 虚拟机部署失败
vCLS 虚拟机打开电源失败
使用撤退模式在集群上禁用 vCLS 时
HA 无法在主机或存储发生故障时对 vCLS 虚拟机进行故障切换
解决方法适用版本
以下解决方法适用于 7.0U1 及更高版本。对于任何其他问题,请提交支持请求。
官方解决方案
具有 vCLS 虚拟机部署可能失败的解决方案的方案:
群集中没有足够的可用资源 - 在具有 400 个以上主机的群集上需要 400 MHz 的 CPU、2 MB 内存和 3 GB 的存储空间。有关这些虚拟机的资源要求的详细信息,请参见《vSphere 资源管理指南》的“vCLS 虚拟机资源分配”部分。vCLS 预留的插槽等于虚拟机的仲裁大小 + 每个群集 1 个。vCLS 虚拟机需要在群集中提供大量额外资源才能成功部署。
1 节点和 2 节点 vSAN 群集中的部署失败 - vCLS 虚拟机无法在 1 节点或 2 节点 vSAN 群集上部署,并显示错误:由于缺少合适的数据存储,无法为 ClusterAgent 置备虚拟机。由于 vCLS 使用数据存储默认策略进行数据存储选择,因此如果 vSAN 是群集中唯一可用的数据存储,则默认策略需要 3 个节点的 vSAN 群集。在此类群集中,这些 VM 的部署将失败。如果 2 节点 vSAN 群集具有见证节点,则 vCLS 虚拟机的部署将成功。解决方法是增加 vSAN 群集的大小或更改数据存储默认策略。
孤立虚拟机案例 - 如果由于主机断开连接并重新连接而导致 vCenter Server 中存在孤立的 vCLS 虚拟机,则在添加主机后在此类群集中部署新的 vCLS 虚拟机可能会失败。建议的解决方法是从清单中清理任何陈旧/孤立的 vCLS 虚拟机。
具有 vCLS 虚拟机打开电源的解决方法可能会失败的方案
群集中没有足够的可用资源。
打开断开连接/孤立的 vCLS 虚拟机的电源可能会失败 - 如果 vCenter 中存在由于主机断开连接和重新连接的孤立 vCLS 虚拟机,则此类孤立虚拟机的打开电源可能会失败,因为这些虚拟机已断开连接。解决方法是手动删除这些虚拟机,以便在正确连接的主机/数据存储中自动部署 vCLS 虚拟机。
由于虚拟机配置更改而导致打开电源失败 - 如果用户更改 vCLS 虚拟机的配置,则此类虚拟机的打开电源可能会失败。用户不应更改这些 VM 的任何配置。
以上解决方法基本没用
解决方案二
编辑Vcenter设置
点击Vcenter 第一个分之IP地址--点击配置-点击设置-点击高级设置(高级 vCenter Server 设置)- 编辑设置
警告 不支持添加或修改配置参数,这可能会导致系统不稳定。配置参数一经添加,将无法移除。确保您了解所执行的操作再继续。
添加一行 config.vcls.clusters.domain-c1431.enabled 值为alse
如何找到这个 domain-c1431 值
点击Vsan所在位置-点击地址栏-找到domain开头后面冒号结尾不要复制冒号
添加以下值,注意:参数添加后无法删除,domain-c1431是集群的值,不同的集群此值不一样
config.vcls.clusters.XXXXXX.enabled True表示为创建vcls, False 表示删除vcls
编辑高级 vCenter Server 设置
先把上述参数 值 写成 False ,集群会在1分钟内删除vcls ,重启vcenter ,再把值 改为True,集群会自动创建vcls。
经过一段时间的等待,反复修改False
与True
系统没有任何反应,已失败告终。
外国网站找到的解决方法与上面操作一致。
论坛地址4sysops
解决方法三
使用命令行终端进入SSH
找到vCLS-6df0adfc-ef83-4ce8-b0e2-eb2177945d2a 所在的主机
在宿主机 虚拟机 里面挨个查看,找到目标主机
开启主机SSH
开启宿主机 SSH 服务 使用命令工具远程进去。
打开网页 使用宿主机地址进去
ESXI
鼠标右键主机-服务-启用SSH服务
使用终端连接
会弹出输入用户名 root 密码*********
使用ESXI 命令
vim-cmd vmsvc/getallvms # 显示所有主机进程
vim-cmd vmsvc/getallvms
找到Vmid ,先查找 Name 名称 vCLS-6df0adfc-ef83-4ce8-b0e2-eb2177945d2a
vim-cmd vmsvc/power.on 1388 # 开启电源
vim-cmd vmsvc/power.on 1388
我的这个问题得到了解决
以上有三种解决办法,不敢保证每个人遇到的问题解决方法都一致,请各自尝试
操作前一定要备份重要数据