解决VMware vSAN分区故障
2018-11-06
在VMware vSAN群集中,不用怕一个主机掉线或死机,也不怕单独一个磁盘组损坏,更不怕单独一个硬盘损坏,最怕的是“主机分区”。当出现分区时,vSAN存储会部分或全部不能使用,导致虚拟机不能启动或正在运行的虚拟机死机。
VMware vSAN群集出现分区的主要原因有:
1.网络问题:这些问题包括vSAN节点主机之间,vSAN流量网卡网络不通;vSAN见证主机,vSAN见证流量网络不通,或vSAN数据流量网络中断。
2.版本问题:vSAN见证虚拟机版本与vSAN节点主机版本不一致,主要是vSAN见证虚拟机版本低于vSAN节点主机版本。
3.存储提供程序脱机。下面通过具体实例介绍。
图1 某4节点vSAN群集拓扑图
检查vSAN网络
要检查vSAN分区问题,需要先了解vSAN群集节点主机数量,知道每个节点的管理IP地址、vSAN流量IP地址,最好是根据拓扑图检查。例如图1所示为某4节点vSAN群集的拓扑,本文以该拓扑为例进行介绍。
根据拓扑图,记住vSAN群集中每个主机的管理地址(例如ESXi41的管理地址 是 172.18.96.41)、vSAN流量VMkernel的IP地址(例如ESXi41的vSAN地址是172.18.93.41)。
1.使 用vSphere Web Client登 录vCenter,依次检查每台主机的“配置→网络→VMkernel适配器”,查看vSAN流量的VMkernel的IP地址以及是否启用vSAN流量。
2.检查每台主机配置正确之后,使用SSH工具登录到其中一台主 机(例 如 172.18.96.41),使用esxcli vsan network list命令查看启用vSAN流量的网卡。
3.使用“esxcli network ip interface ipv4 get”命令查看当前主机IP地址配置,得知当前主机有两个IP地址,分别是172.18.96.41(管理地址)、172.18.93.141(vSAN流量地址)。
4.检查到其他主机管理端口的连通性,使用Ping命令,依次Ping其他主机管理地址,例如:
ping 172.18.96.42
ping 172.18.96.43
ping 172.18.96.44
5.检查到其他主机vSAN流量的连通性,使用Ping命令,依次Ping其他主机vSAN流量地址,例如:
ping 172.18.93.142
ping 172.18.93.143
ping 172.18.93.144
6. 如果第(4)、(5)两步全部连通,访问正常,表示vSAN分组不是由于网络问题造成的,需要检查其他原因。如果到某台主机的管理流量或vSAN流量不通,则检查该主机的配置或网线连接情况。也可以使用ssh登录该主机(网络或vSAN流量不通)做进一步的检查。
如果配置无误,在vSAN群集的“配置→vSAN→磁盘管理”中,可以看到所有主机都在“组1”。
vSAN流量配置相关命令
图2 某2节点延伸群集主机情况
使 用“esxcli vsan network ip set”命 令 将管理VMkernel网络适配器配置为支持见证流量,该命令要求在图形界面中为VMkernel网络启用vSAN流量服务,该命令将vSAN流量设置为见证流量。
esxcli vsan network ip set -i vmk0 -T=witness
如果未在图形界面中将VMkernel网络启用vSAN流量服务,可以直接为VMkernel增加vSAN见证流量,命令如下:
esxcli vsan network ip add -i vmk0 -T=witnes
最后,可以使用“esxcli vsan network list”命令验证新网络配置,命令如下:
esxcli vsan network list
vSAN延伸群集网络检查
对于2节点直连的vSAN延伸群集,其vSAN见证流量与vSAN数据流量相分离,在这种类型的vSAN群集中,在图形界面中不能检查vSAN见证流量配置在哪一个VMkernel上,需要使用ssh登录到节点主机检查。本文以图2所示为例进行介绍。
该vSAN延 伸 群 集的两个节点主机管理地址 分 别 是10.66.64.28、10.66.64.29;对 应 的 vSAN流量地址是172.31.255.28、172.31.255.29;见 证 主 机管理地址为10.66.64.24,vSAN流 量IP地 址 是10.66.64.34。
1.在“配置→vSAN→磁盘管理”中检查到见证主机在组1,2台节点主机在组2。
2.在“监 控 → vSAN→运行状况”测试失败,提示“vSAN群集分区”。
3.使 用ssh登 录10.66.64.28主 机,执 行“esxcli vsan network list”命令查看启用vSAN流量的网卡,通过命令查看得知vmk0为vSAN见证流量网卡,vmk1为vSAN流量网卡。
4.使 用“esxcli network ip interface ipv4 get”命令查看当前主机IP地址配置。vmk0的 IP地址 是10.66.64.28(vSAN见 证 流 量),vmk1的IP地 址是172.31.255.28(vSAN流量)。
5.使用Ping命令Ping另一节点主机的vSAN流量地址(172.31.255.29)、Ping 见证虚拟机的vSAN流量地址10.66.64.34,都能Ping通。此检查表示vSAN分区不是由网络问题引起的。
6.在vSphere Web Client管理控制台,在“监控→vSAN→运行状况”中,经过检查出现“软件版本兼容性”的失败信息,提示升级主机的ESXi软件。
7.检查节点主机、见证虚拟机的ESXi版本,发现见证虚拟机的版本较低。
经过分析,是用户升级了ESXi主机但未升级见证虚拟机,导致了vSAN群集出现分区。知道问题原因之后,故障解决就比较简单了。部署一台与ESXi节点主机同版本的见证虚拟机,在“配置→vSAN→故障域和延伸群集”中单击“更改见证主机”,将见证主机改为新部署的见证设备即可。
图3 5节点vSAN群集
通常情况下更改了见证虚拟机之后,即可解决vSAN群集分区问题。但更改见证主机之后,经过检查发现仍然存在分区现象。
在vSphere Web Client控制台中,左侧单击vCenter Server的名称,在“配置→存储提供程序”中,发现新添加的10.66.64.24的见证虚拟机为 “脱机”状态。
选中状态为脱机的10.66.64.24的见证虚拟机,单击“X”取消注册选中的储提供程序,然后单击“”按钮将所有存储提供程序与环境的当前状态同步,等脱机的存储提供程序状态为“联机”后,vSAN群集分区的故障解决。
主机配置不一致造成的分区
如果是全新组建的标准VMware vSAN群集,出现分区现象一般是网络问题。如果是2节点直通的vSAN群集,出现分区现象一般是版本、存储提供程序脱机或网络问题。如果是已配置好了vSAN群集,新增加的节点主机与原有的主机出现分区现象,则可使用vSAN工具修复。下面通过具体实例介绍。
在 图3中, 最 初ESXi01~ESXi04共4台主机组成vSAN群集,其管理地址分别是202.206.195.91~202.206.195.94, 其 vSAN 流量地址分别为192.168.11.91~ 192.168.11.94;后来添加了ESXi05到vSAN群集中,在配置了管理地址202.206.195.95及vSAN流量的VMkernel的IP地址192.168.11.95后,出现分区。
对于出现的vSAN群集分区现象,在检查新添加的vSAN节点主机的网络连接,并 且 使 用ssh登录到节点主机,使用Ping等命令检查后,发现分区不是由于网络问题引发的。
在导航器左侧选中vSAN群 集(本 示 例 中vSAN群集名称 为 JGZX),在“监控→vSAN→运行状况”中,发现“失败 vSAN群集分区”的提示,并在分区列表中显示了分区主机名称及分区情况。
在“群集→ vCenter状态具有权威性”检查失败,单击“更新ESXi配置”按钮,更新ESXi主机成员资格。
在“群 集 → vSAN群集配置一致性”中,提示202.206.195.95(这是新添加的vSAN节点主机)的网络配置未同步,单击“修复不一致的配置”按钮。在弹出的“确认-更新ESXi配置”对话框中,单击“是”按钮。
更新之后,再次返回到“配置→磁盘管理”中,可以看到所有vSAN主机牌“组1”,分区问题解决。