我们为新的暂存环境设置了一个由 2 个主机组成的 Windows 网络负载平衡 (NLB) 群集。群集最初运行良好,但最终,在通过我们的自动部署脚本停止并启动其中一个主机后,第一个主机无法再看到第二个主机。因此,如果您在 Host1 上打开 NLB 管理器,则 Host2 不可见。如果您在 Host2 上打开 NLB 管理器,则不会发生这种情况。编辑:实际上,有时 Host2 也无法看到 Host1。当这种情况发生时,集群将完全无法响应请求。
我们在“糟糕状态”期间注意到的事情:
- 主机之间可以互相 ping 通。
- RPC 可以工作,因为我可以从另一个主机访问一个主机的 C$ 共享。
- 如果我尝试手动将缺失的 Host2 添加到 Host1,系统会提示它已经存在。我可以单击 Cluster > Connect to Existing 并指定 Host2,此方法有效,但前提是我关闭 NLB Manager 并再次打开它。
- 当集群处于不良状态时,如果我尝试启动 Host2,它会显示“正在融合”,但永远不会变为“已融合”。
我们尝试过但未能解决问题的方法:
- 删除所有 NLB 内容并从头开始重新创建配置。
- 在其中一台主机的设备管理器中删除并重新添加网络适配器。
- 从多播切换到单播。
- 从头开始重建第二个节点的虚拟机。
重新启动服务器似乎可以暂时解决问题,直到它再次发生。
配置:
- 两台主机均运行 Windows Server 2012 R2,并已于 2015-09-21 进行了最新更新。在设置 NLB 之前,第二台主机是从第一台主机的映像克隆而来的。
- 两台主机都在同一台 VMWare 主机上作为 VMWare 客户机运行。我不确定 VMWare 的版本(这取决于我们的管理员),但客户机操作系统上的 VMWare 工具显示版本为 9.4。
- 每个主机都有一个以太网适配器,并分配了 2 个 IP:主机的专用 IP 和集群 IP。
- 端口规则:多播、仅端口 80 和 443、负载均衡、亲和性单一
答案1
我曾在使用多播的一对交换机上看到过这种行为,其中每个物理主机仅连接到一个或另一个交换机。默认交换机配置会阻止 NLB 服务器通信。我们必须应用交换机配置设置才能让它们通信。
快速检查方法是先将它们设置为单播。如果此方法有效,则查看交换机配置。