我在 Hetzner 数据中心有两台 ESXi 主机,由于Hetzner 的子网分配政策我应该在每个 ESXi 服务器中都有一个路由器(用 CentOS 实现)来将子网 IP 路由到虚拟机。
现在我想将 ESXi A 主机虚拟机迁移到 ESXi B 主机我应该将我的虚拟机从主机 A 转移到主机 B,然后我必须要求数据中心工作人员将我的子网路由从 ESXi A 更改为 ESXi B,因此在转移过程中,我的虚拟机在移动到主机 B 后将变得无法访问,因为它们的 IP 地址路由到主机 A,转移完成后,数据中心工作人员会将路由更改为主机 B,这样我的虚拟机将再次可访问。
我认为我可以通过在主机 A 和主机 B 之间创建 2 级网络连接来解决问题,这样当我的虚拟机移动到主机 B 后,它们仍然可以看到主机 A 路由器,并且不会失去网络连接。
因此我决定使用“vSphere 分布式交换机”来提供二级网络连接(基于交换机)在此 ESXi 服务器之间。我创建了一个“vSphere 分布式交换机”,但主机 A 中的虚拟机无法看到主机 B 中的虚拟机,尽管所有虚拟机都是 VDS 的一部分。VDS 没有连接任何物理接口(可能是问题所在),因为我不确定如何将物理接口从 vSwitches 移动到 VDS 而不丢失与主机的连接。
答案1
仅通过将虚拟机连接到同一端口组,您无法实现不同主机上的虚拟机之间的连接。通过虚拟机管理程序管理端口或其他方式在主机之间传输流量并没有什么“神奇”之处。
如果虚拟机位于不同的主机上,则您的 VDS 需要在源主机和目标主机上都有上行链路。
我们已经将具有 VMkernel 端口的 vSwitch 的物理上行链路和 VMkernel 端口迁移到 VDS,并且它通常可以正常工作。也许知识库 1010614可以帮助您。
但是,您应该使用一台生产效率不高的机器来尝试。据我所知,您的“ESXi B”是测试此操作的理想选择。
编辑:如果出现问题,你可以通过 KVM 切换器或其他方式访问主机知识库 1008127可能会对你有帮助。
编辑2:我们通常有两个上行链路以实现冗余,并将一个上行链路从 vSwitch 迁移到 VDS,然后迁移到 vmkernel 接口,最后迁移第二个上行链路。只有一个上行链路很棘手……你能从 Hetzner 获得第三个 IP 地址一两天吗?你可以在 VDS 上创建一个新的 vmkernel 接口,启用“管理流量”,将你唯一的上行链路分配给 VDS,然后更改你的 DNS 配置。在你的 vCenter 将你的 ESXi 主机解析为新的 IP 地址后,它应该能够再次管理主机。如果要使用原始 IP,您可以删除旧的 vmkernel 接口,更改新 vmkernel 接口的 IP(VDS 上的接口),然后再次更改 DNS。
不过,我不确定这是否能解决您的问题。尝试在当前 vmkernel 接口所在的虚拟交换机上创建一个 VM 端口组,即具有上行链路的端口组。在两个主机上执行此操作,并在每台主机上创建一个连接到此端口组的 VM。如果两个 VM 无法相互通信,VDS 将无法为您提供帮助。