我正在尝试在 Hyper V R2 之上运行的几个 Windows 2008 R2 虚拟服务器上设置 NLB。
每个服务器都有一个用于 LAN 访问的 vNIC(以及用于 SAN 访问的第二个 vNIC)。我正在将集群设置为使用多播模式。每个 vNIC 都设置为允许 MAC 欺骗。
本质上,我发现我可以将 SERVER1 添加为主机,它将从远程子网获取并响应集群 IP。如果我随后在 NLB 管理器中“停止”该节点,它仍然会在我希望它停止对该 IP 的响应时做出响应。
如果我重新创建集群并将 SERVER2 添加为第一台主机,向导将正确完成,服务器上的 IPCONFIG 显示它现在具有集群 IP,但我无法从远程子网 ping 集群 IP,但我可以从另一台机器在同一个子网上。
作为最后的测试 - 在集群中的两台服务器上,当两个节点都根据 NLB 管理器停止时,我仍然从同一子网上的另一台机器上 ping 通。
这两个虚拟机位于同一个物理刀片上,并且构建起来与它们将用作 SharePoint Web 前端服务器完全相同。我不知道第二个虚拟机可能有什么问题,阻止它像集群中的唯一节点一样占用地址,更不用说当我停止/启动节点时集群的奇怪行为。
通常,像这样的跨子网问题与网络设备相关,不一定是 NLB。查看Microsoft Enterprise Networking 团队的这篇博客文章,其中涉及问题和可能的解决方案。