我们有几十个 Win2008 和 2008R2 Enterprise 集群,用于 SQL Server 2008 和 2008 R2 Enterprise/Datacenter。过去,我们在地球另一端的几台服务器上遇到了许多随机故障转移和“网络已分区”错误的问题。这是大多通过更新 NIC 驱动程序和卸载 Forefront Endpoint Protection 解决了这个问题(不确定这对一切有何影响,但它有帮助)。
快进六个月到十一月,我们不断收到来自 SCOM 和事件日志的警报,称集群(特别是两个)每周都会出现几次“网络已分区”错误,但实际上没有发生故障。SQL Server 仍在运行,Web 前端的服务没有中断。错误似乎源自“被动”节点并通过网络复制(我们首先收到来自被动节点、然后是主动节点、然后是 Web 前端的警报),但所有节点/网络适配器/磁盘/应用程序/ip/网站仍可正常运行。我们无法找到这些错误不断出现的原因,而集群、网络或任何东西似乎都没有问题。任何有关原因或我们可以调查的可能方向的想法都将非常有用。
答案1
当您收到网络分区错误时,这意味着当前运行集群应用程序的服务器以某种方式与其他节点隔离。假设没有其他故障,您的服务完全有可能(并且很有可能)继续运行。警告告诉您,如果需要故障转移,它可能会失败(通常是由于节点没有路径来交接磁盘/CSV)。
请务必仔细检查相关服务器之间的网络拓扑和群集网络设置。我们在这方面有过不愉快的经历,故障转移群集使用多路径 NIC 进行节点间通信,而这些 NIC 与 SQL 服务器使用的 NIC 不同(即单独的 VLAN)。由于主群集和备份群集连接的路径方式使得只要有一个交换机发生故障,仲裁就可能丢失,因此 SQL 服务器仍会显示为在线,但群集会显示为分区,这意味着如果服务器(或交换机)发生故障,它将严重影响群集。