我正在构建一个由 2 个机架组成的 vSAN 集群,每个机架有 3 个节点(这最终将是一个延伸集群)。每个机架位于不同的子网中,如下所示:
机架 1:
- 管理:10.73.8.0/25(网关:10.73.8.126)
- vMotion:10.73.10.0/25(网关:10.73.10.126)
- vSAN:10.73.11.0/25(网关:10.73.10.126)
机架 2:
- 管理:10.73.8.128/25(网关:10.73.8.254)
- vMotion:10.73.10.128/25(网关:10.73.10.254)
- vSAN:10.73.11.128/25(网关:10.73.10.254)
我已经构建了集群,所有节点都在机架 1 中。没问题。一切正常,我有几个测试虚拟机正在运行。当我尝试将机架 2 中的节点添加到同一个集群时,我收到“vSAN 集群分区”错误。以下是我检查/测试的内容:
- 我在所有节点之间都具有完整的端到端连接(两个机架中的节点之间的 vmkping 在所有子网上均可工作,且 MTU 大小消息无碎片)
- 所有节点上的单播代理列表正确显示具有正确 UUID、IP 地址和证书指纹的所有其他节点。
- 我已经尝试了离开/加入具有分区节点的集群的各种排列方式。
我所有的 google-fu 都表明我的问题应该是上述问题之一,但事实似乎并非如此。我甚至为 vSAN 网络添加了静态路由,尽管我在 vSAN vmks 上设置了覆盖默认网关。没有骰子。
我知道这很奇怪,但如果有人能指出这个错误的其他原因,我将不胜感激。
对于那些偶然发现这个问题的人:我找到了解决方案。网络中有一个路由器错误地启用了 NAT。这意味着是的,所有 vSAN 节点都可以相互 ping 通(因此没有基本的连接警报),但由于机架 2 设备的 IP 地址与单播代理列表中的 IP 不匹配,这些消息显然被拒绝。这就是 vSAN 宣布网络分区事件的原因。
我发现这个问题的方法是这样的:我禁用了 vSAN 接口的默认网关,转而使用静态路由。完成后,ping 停止工作。为什么?因为没有为 NAT 的 IP 地址定义静态路由...