背景
我有一个 Windows 集群 (2016),有四个节点 (每个节点 3 个 NIC)。当我尝试重新启动任何集群主机服务器时,整个集群都会关闭,其他节点也会随机出现故障。
当我向微软报告案例时,他们说这是因为 NETFT 表中的陈旧路由在重启期间没有被清除,并给了我一个解决方法,即重新启动所有节点以启动集群。
我觉得我需要花很长时间才能重启物理服务器并启动集群。我的 SLA 可能会被违反。
有没有什么有用的解决方法?
微软的回应
从表面上看cluster.log
,该问题似乎与 上的陈旧路线有关NetFT.sys
。
日志分析
(以下错误在所有 4 个集群节点上持续报告,以其中一次发生的情况为例:)
主机1
2018/09/24-18:25:01.067 INFO [FTI][Initiator] This node (1) is initiator
2018/09/24-18:25:01.067 WARN [FTI][Initiator] `Ignoring duplicate connection: usable route already exists`
2018/09/24-18:25:01.067 INFO [CHANNEL 192.1.0.172:~3343~] graceful close, status (of previous failure, may not indicate problem) (0)
2018/09/24-18:25:01.068 WARN cxl::ConnectWorker::operator (): GracefulClose(1226)' because of 'channel to remote endpoint 192.1.0.172:~3343~ is closed'
主机2
2018/09/24-18:25:01.095 INFO [FTI][Initiator] This node (2) is initiator
2018/09/24-18:25:01.095 WARN [FTI][Initiator] `Ignoring duplicate connection: usable route already exists`
2018/09/24-18:25:01.095 INFO [CHANNEL 192.1.0.172:~3343~] graceful close, status (of previous failure, may not indicate problem) (0)
2018/09/24-18:25:01.096 WARN cxl::ConnectWorker::operator (): GracefulClose(1226)' because of 'channel to remote endpoint 192.1.0.172:~3343~ is closed'
主机3
2018/09/24-18:25:01.057 INFO [FTI][Follower] This node (4) is not the initiator
2018/09/24-18:25:01.057 DBG [FTI] Stream already exists to node 1: false
2018/09/24-18:25:01.057 DBG [CHANNEL 192.1.0.170:~62824~] Close().
2018/09/24-18:25:01.057 INFO [CHANNEL 192.1.0.170:~62824~] graceful close, status (of previous failure, may not indicate problem) (0)
2018/09/24-18:25:01.057 INFO [CORE] Node 4: Clearing cookie [GUID]
2018/09/24-18:25:01.057 DBG [CHANNEL 192.1.0.170:~62824~] Not closing handle because it is invalid.
2018/09/24-18:25:01.058 WARN mscs::ListenerWorker::operator (): GracefulClose(1226)' because of 'channel to remote endpoint 192.1.0.170:~62824~ is closed'
主机4
2018/09/24-18:25:01.087 INFO [FTI][Initiator] This node (3) is initiator
2018/09/24-18:25:01.087 WARN [FTI][Initiator] `Ignoring duplicate connection: usable route already exists`
2018/09/24-18:25:01.087 INFO [CHANNEL 192.1.0.172:~3343~] graceful close, status (of previous failure, may not indicate problem) (0)
2018/09/24-18:25:01.088 WARN cxl::ConnectWorker::operator (): GracefulClose(1226)' because of 'channel to remote endpoint 192.1.0.172:~3343~ is closed'
这些过时的路由是导致节点加入集群的罪魁祸首,这就是节点无法重新加入集群的原因。
对于 NetFT,作为集群网络,任何意外的成员资格删除,NetFT 路由表都不会被清除。连接仍然保留。
当发起者节点尝试创建新连接时,由于路由表仍为旧路由表,因此节点最终无法重新加入集群。NETFT 是内核级驱动程序,这就是为什么我们需要重新启动节点以刷新 NETFT 表。
行动计划
请尝试同时重新启动所有集群节点以删除过时的路由。
答案1
上周末,我在双节点 SQL AlwaysOn 群集上遇到了这种情况。我不得不重新启动主节点才能恢复。这是在网络上进行一些网络更改以及在同一天进行 Windows 更新修补后发生的。
我运行了 pssdiag 来转储集群日志,看到了完全相同的条目。重启后再次运行,它们消失了。