我正在构建一个分布在 2 个机架上的 6 节点集群(最终将配置为具有单独见证的延伸集群)。一切都是 ESXi 8.0U1。每个机架位于不同的 L3 子网中。我设置了机架 1 并配置了一个 vSAN 集群,该集群中有 3 个节点,部署了一些测试虚拟机,一切运行正常。当我开始从机架 2 添加节点时,我遇到了以下 3 个问题:
- SAN 集群分区
- vMotion:基本(单播)连接检查
- vMotion:MTU 检查
我暂时搁置 vSAN 群集分区错误,因为 vMotion 错误应该很容易解决。如果我通过 SSH 连接到机架 1 中的节点,我可以对机架 1 中的所有 vMotion 接口执行 vmkping 操作(使用 -S vMotion),但无法对机架 2 中的节点的 vMotion 接口执行 ping 操作。操作失败并显示以下错误:
sendto() 失败(网络不可达)
我已确认为 vMotion 接口配置了默认网关,并且正确无误。此外,如果我使用相同的 vMotion 分布式端口组向两个机架中的每个节点添加新的 VMK 适配器,这些端口组的 IP 位于同一子网中,并配置了相同的网关(但使用默认 IP 堆栈!),我可以在两个机架中的节点之间进行 ping 操作。
看起来好像 vMotion 接口的路由逻辑存在一些问题,但除了配置默认网关之外,我不确定这里还有什么需要配置。
我关注这个 vMotion 错误,因为我想知道它是否与 vSAN 分区是同一个根源问题。
有人能给我指出一些调试方向吗?
为了清楚起见:
机架 1:
- 管理子网:10.73.8.0/25(GW:10.73.8.126)
- vMotion 子网:10.73.10.0/25(GW:10.73.10.126)
- vSAN 子网:10.73.11.0/25(GW:10.73.11.126)
机架 2:
- 管理子网:10.73.8.128/25(GW:10.73.8.254)
- vMotion 子网:10.73.10.128/25(GW:10.73.10.254)
- vSAN 子网:10.73.11.128/25(GW:10.73.11.254)
答案:我终于为遇到这个问题的人找到了答案。除了在 VMK 适配器本身上设置网关外,还必须在 vMotion TCP/IP 堆栈上设置网关……
我也用答案更新了原始问题:
诀窍在于,除了在 vMotion VMK 适配器上设置 vMotion TCP/IP 堆栈之外,还必须为其配置默认网关……