概括
我在 NLB 群集中有两台机器。如果我关闭一台机器(模拟故障),那么第二台机器就不会承担负载。我正在寻求帮助来诊断原因。
细节
我构建了一个由两台网络负载平衡主机组成的测试/登台系统。这些主机实际上是在 VMware Server 下运行的虚拟机。每台主机都运行已应用 SP2 的 Windows 2003 Server Enterprise,并且每台主机都有两个 NIC。它们是新建的,除了安装 IIS6 外,配置更改很少。
IP地址如下:
主机 1:专用:192.168.0.140 集群:192.168.0.141
主机2:专用:192.168.0.142 集群:192.168.0.143
群集 IP 地址:192.168.0.144
子网掩码:255.255.255.0
在每个主机上我都设置了连接绑定顺序,以便专用连接排在第一位。
集群配置为使用单播,因为我需要使用专用 NIC 在主机之间进行通信,而我没有适合多播的路由器。主机 1 的优先级为 1,主机 2 的优先级为 2。权重设置为“相等”。
有一个端口规则:
- 所有集群 IP 地址
- 端口范围 80 至 80
- 所有协议
- 无亲和性的多主机过滤
创建集群没有问题,并且集群收敛正常。我可以 ping 集群地址,并且对该地址的 http 请求返回预期结果。我从一台单独的机器执行此操作,始终使用 IP 地址。
问题:当我关闭主机 1(模拟主机故障)时,我期望主机 2 响应集群地址上的 ping 和 http 请求,但这并没有发生。看起来主机 2 没有做任何事情。
问题:有人能建议我如何解决这个问题吗?我遗漏了什么?
我已检查以下内容:
- IP 地址和子网掩码设置如上。专用连接指定了网关和 DNS 地址,而集群连接则没有。
- 两台机器上的集群 NIC 的 MAC 地址相同。
- 集群连接绑定到适当的本地 IP 地址和集群 IP 地址。
(我是一名开发人员,不是 IT 人员,因此如果我的术语有误或不准确,请谅解)
答案1
问题的原因是我使用单播模式创建 NLB 群集,这与 VMware 的虚拟化网络管道存在兼容性问题。当我使用多播重新创建群集时,它工作正常。
微软的文档表明使用单播是最简单的选择,因为它不需要更改路由器配置。但在 VMware 下则不然,它需要进行一些网络配置更改。多播模式似乎可以正常工作。
有用的链接:
Microsoft NLB 在单播模式下无法正常工作- 描述了为什么单播在 VMware 下不容易工作,以及如果您无论如何都想使用它该怎么办。链接的页面指的是 ESX 服务器,但它似乎也适用于 VMware 服务器。
示例配置 - 网络负载平衡 (NLB) 多播模式配置- 如何使用多播模式建立集群。
最佳网络负载平衡 (NLB) 配置- 一些有用的背景知识
答案2
当服务器 1 启动时,您是否仍然看到服务器 2 的集群 NIC 上有任何与集群相关的流量?
我怀疑如果故障转移不起作用,那么您可能会遇到集群流量问题。