VMware vSAN 集群出现了一个严重警告,提示:vSAN 性能服务警报“统计信息主节点选举”,如下图所示。根据警报名称描述,vSAN 运行状况服务在检查 vSAN 性能服务的统计信息主节点时触发错误,由“green”状态变更为“red”状态。
导航到 vSAN 集群->监控->vSAN->Skyline Health,在运行状况检查结果中可以看到 vSAN 性能服务的“统计信息主节点选举”不正常。
点击“故障排除”,在节点信息列表中可以看到 vSAN 集群中没有主机被选举为“统计信息主节点”。
您可以尝试参考上面“故障排除”中的方法,执行这些步骤来修复和解决这个问题,如果还是不能解决,请继续往下看。
出现这个问题的原因其实是由“.vsan.stats ”对象引起的,如果你尝试访问 vSAN 存储文件中的 .vsan.stats 文件,它会提示你操作失败,并且找不到该文件。该文件是由 vSAN 性能服务自动生成,用于收集和存放 vSAN 性能服务产生的统计信息和数据文件,现在该对象出现问题了。
解决这个问题非常简单,只需要要将该对象删除,然后让 vSAN 性能服务重建该对象皆可,下面是处理过程。
要删除这个文件,首先需要知道该对象在 vSAN 当中的 UUID,在上图中的操作失败提示框中也可以找到该 UUID,或者使用下面的方法获取 UUID。通过 SSH 以 root 用户连接到 vCenter Server,然后使用以下命令连接到 RVC 命令行窗口。
rvc localhost
进入到具体的 vSAN 集群级别目录,使用以下 RVC 命令获取到对象的 UUID。
vsan.perf.stats_object_info .
使用 SSH 登录到 vSAN 集群中的任意 ESXi 主机,然后使用 objtool 工具删除指定对象即可。
/usr/lib/vmware/osfs/bin/objtool delete -u 26c3e467-5600-72d0-9df0-005056a5213d
这里先说一下,vSAN 集群启用了性能服务后,会选举一个 Stats Master,这个 Stats Master 负责从 Agent 主机收集统计信息,而这个 Stats Master 必须就是 CMMDS Master 角色所在的主机。你可以使用以下 RVC 命令查看 vSAN 集群性能服务的状态信息。
vsan.perf.cluster_info .
在 ESXi 主机上删除对象后,使用以下 RVC 命令重新启动 vSAN 集群性能服务。
vsan.perf.stats_object_delete .
vsan.perf.stats_object_create .
此时再去查看 vSAN 集群性能服务的状态信息,可以发现 esxi8-b3 主机现在同时拥有两个角色:CMMDS Master 和 Stats Master。
通过 vCenter Server 再次查看 vSAN 集群的“统计信息主节点”状态,现在一切恢复正常。