潜水很久了,但今天我遇到了一个奇怪的问题,它会一直困扰着我,直到解决为止:-)
它似乎表现为从一台服务器到故障转移群集的单向 ping 问题。
所有计算机均运行 Windows Server 2008 R2,且禁用 IPV6。Windows 防火墙服务已禁用。
地形地貌:
报告服务器 - 使用 E1000 NIC 的 VMWare 虚拟机。没什么特别的 - IP、子网、网关和路由表看起来都很正常。
SQL 2008R2 主动/被动故障转移群集 - 每个群集配置了 7 个 NIC - 3 个 iSCSI,其余 4 个使用 BACS 绑定到 2 个 IP。一个 NIC 组用于本地流量,另一个用作故障转移群集的一部分。故障转移群集有一个 VIP。
问题:
上周一切运行良好。所有机器都在同一子网。今天,报告服务器无法 ping 故障转移群集的 VIP。它可以使用两个非存储 IP 地址 ping 两个节点,没有任何问题。
SQL 故障转移群集可以 ping 报告服务器而不会出现任何问题。
我可以从任何其他机器 ping SQL VIP,从心里证明了这一点。
创可贴
我尝试在 TCP/IP 出现故障时重新启动报告服务器,但无济于事。最终有效的方法是更改报告服务器 IP 地址 - 据我所知,交换机 (Catalyst 3750) 上没有主机规则。
是什么原因导致的?我想说的是,报告服务器重新启动后,ARP 表被清除了,并且 IP 地址不应该在 DB 群集上变得陈旧……正在寻找比我更懂网络知识的人 :-)
答案1
捂脸。
我知道是什么原因造成的,尽管我可能需要帮助来解释。在今晚的故障排除中,我启动了另一台服务器并让它假设报告服务器的 IP 地址 - 这台运行 Windows Server 2008 R2 的全新服务器无法 ping VIP。
嗯,这很奇怪。而且,它再次可以通过名称 ping 任一节点。我查看了 arp 表,它似乎很正常 - 我跳到活动 DB 节点上检查 MAC 地址,并注意到 IPv6 的复选框已勾选。我取消了选中它,它立即解决了问题。
问题变成了 - 为什么?我肯定没有在集群配置中使用 IPv6……但这个集群已经投入生产 3 个多月了,在今天之前没有出现任何明显问题。这个节点已经作为活跃节点超过 3 周了。
有人有经验或解释过为什么这么好的事情会变得这么糟糕吗?:-)