某2节点万兆网卡直连vSAN延伸群集(网络拓扑如图1所示),在某一天晚上,首选站点节点1服务器(图1中IP地址为192.168.251.2的计算机)的一条64GB内存出问题导致服务器死机。第二天管理员到单位之后,发现所有的业务虚拟机都无法使用。此时vCenter Server已经无法连接。使用vSphere Host Client可以直接登录到192.168.251.2、192.168.251.3、192.168.251.6等每台主机,但虚拟机的信息不正常,已经无法显示虚拟机的名称,另外vSAN存储容量只有其中一台主机的容量(每台主机配置了1个磁盘组,每个磁盘组有1块400GB的SSD、5块1.2TB的HDD,总容量是10.92T,现在只有5.46TB)。

image

图1 拓扑图

在关闭这三台服务器,然后打开服务器的电源之后,业务仍然没有恢复。后来检查发现,将IP地址为192.168.251.2的故障主机关闭,只打开IP地址为192.168.251.3与192.168.251.6的主机(包括见证虚拟机,IP地址为192.168.251.8),此时包括vCenter Server在内的所有虚拟机都自动启动并可以对外提供服务。如果此时再打开192.168.251.2的主机,则所有的虚拟机都会死机。为了不影响业务的办理,用户暂时关闭了192.168.251.2的主机。此时在vSphere Web Client中显示192.168.251.2无响应,主机已从VC断开连接,如图2所示。

image

图2 IP地址为192.168.251.2的主机已断开连接

在“监控→vSAN→虚拟对象”中,可以看到所有的服务器都提示“可用性降低但未重建”,如图3所示。因为此时首选站点节点主机不在线,系统无法重建冗余数据。

image

图3 虚拟对象

在“配置→vSAN→磁盘管理”中,看到192.168.251.2状态为“未响应”,见证主机与192.168.251.3的状态正常,如图4所示。

image

图4 磁盘管理

在关机之后,用户使用备用内存,更换了192.168.251.2这台主机的内存。

晚上下班之后,在不影响业务虚拟机使用的情况下,使用下述的方法修复了192.168.251.2的主机。主要方法与步骤如下。

(1)使用vSphere Web Client登录到vCenter Server,从清单中移除IP地址为192.168.251.2的主机。移除之后如图5所示。

image

图5 移除节点1的主机

(2)因为IP地址为192.168.251.2的主机无法上线,所以,将192.168.251.2的管理端口网线暂时断开,等服务器开机并进入控制台界面之后,按F2进入系统配置,在“System Customization”中移动光标到Reset System Configuration按回车键,在弹出的对话框再次按回车键重置系统配置,如图6所示。重置之后,系统将会重新启动,root密码重置为空(无密码)

image

图6 系统重置

(3)再次进入系统后,使用用户名root、密码为空登录。进入系统之后,为服务器重新设置管理IP地址、选择管理网卡,仍然使用原来的IP地址192.168.251.2、使用原来的网卡端口,并设置为原来的密码。然后重新插上服务器管理网卡的网线。

(4)在vSphere Web Client中,将192.168.251.2加入清单。参照192.168.251.1的网络设置,为192.168.251.2重新创建虚拟交换机,并为192.168.251.2的主机设置vSAN流量。如图7所示。

image

图7 重新配置vSAN流量

(5)此时在“群集→配置→磁盘管理”中,可以看到192.168.251.2的磁盘组已经添加,但状态不正常。如图8所示。

image

图8 重新加入的节点主机磁盘状态不正常

(6)使用ssh登录到节点1的ESXi主机,执行esxcli vsan network ip add -I vmk0 -T=witness命令将192.168.251.2的管理地址设置为见证流量。如图9所示。

image

图9 设置见证流量

(7)在“配置→vSAN→故障域和延伸群集”中,重新将IP地址为192.168.251.2的主机添加到“首选”站点,注意,两台节点主机,必须一台主机在“首选”站点,一台在“辅助”站点,其他名称都不行。如图10所示。

image

图10 配置故障域

(8)在“配置→vSAN→磁盘管理”中,可以看到192.168.251.2的磁盘组状态已经正常,如图11所示。

image

图11 磁盘组状态正常

(9)在“监控→vSAN→虚拟对象”中,看到大多数的虚拟机状态都恢复正常,只有一台虚拟机数据需要重建,如图12所示。

image

图12 查看虚拟对象

(10)在“监控→vSAN→重新同步组件”中,可以看到正在重新同步的组件,当前只有一个磁盘文件需要同步,如图13所示。

image

图13 查看重新同步组件

(11)在导航器中选中每台主机,在“监控→问题”中,检查确认当前主机的问题。

(12)在“监控→vSAN→运行状况”中,查看vSAN运行状况,在解决所有问题后,运行状态都是显示“已通过”,如图14所示。此时表示vSAN恢复正常。

image

图14 运行状况正常

【总结】这个故障现象比较特殊。正常情况下,如果节点主机出现故障,只要修复了节点主机并重新上线,vSAN会重新连接。很少出现vSAN主机都在线而导致虚拟机无法访问的情况。因为首选站点的主机上线就会导致vSAN群集出错,所以本次修复的关键就是在首选站点不在线的前提下重新配置首选站点。如果重新配置首选站点,可以重新安装ESXi,也可以重置ESXi然后再重新配置。本节就选择了第二种方法。