3. vMotion网络规划与设计

vMotion 的迁移流量并不走虚拟机的业务端口组,而是走 ESXi 主机自身的 VMkernel 接口。理解这一点是网络规划的前提:虚拟机网卡(vNIC)承载的是 Guest OS 的业务报文,而 vMotion 迁移的是虚拟机的内存页、设备状态和配置信息,这些数据由 VMkernel 直接封装发送。因此,规划 vMotion 网络本质上是在规划“主机级”的网络资源,而不是虚拟机级。

一、VMkernel 网络:vMotion 的承载接口

在标准交换机(vSS)或分布式交换机(vDS)上,VMkernel 端口是一个带有 IP 地址的主机接口,它可以被赋予多种服务能力:管理、vMotion、Provisioning、vSAN、NFS 等。规划时最关键的一条原则是服务分离——不要让 vMotion 与管理流量共用同一个 VMkernel 接口。原因很直接:管理流量对延迟敏感且流量小,vMotion 流量突发性极强,一旦迁移启动,几十 GB 的内存数据会在短时间内灌满链路,与管理流量互相争抢会导致 vCenter 失联、任务超时。

推荐做法是为 vMotion 单独创建一个 VMkernel 适配器,例如 vmk1,与管理用的 vmk0 分离。在 vDS 环境下,还可以通过端口组绑定团队策略,让 vMotion 流量走独立的物理上行链路。IP 规划上,vMotion 网络通常使用独立的子网,例如管理网 192.168.10.0/24,vMotion 网 192.168.20.0/24,两者通过三层路由或完全隔离,避免广播域混用。

二、迁移网络带宽:算清楚再动手

带宽规划不能凭感觉。一个可用的估算方法是:迁移时间 ≈ 虚拟机内存使用量 ÷ 有效带宽。假设一台虚拟机分配了 64 GB 内存,实际活跃内存约 40 GB,vMotion 在 10 GbE 链路上理论有效吞吐约 8~9 Gbps(约 1 GB/s),则单次迁移大约需要 40 秒左右。若换成 1 GbE,有效吞吐约 110 MB/s,同样数据量需要约 6 分钟。这个差距在批量迁移场景下会被放大数倍。

因此,生产环境建议 vMotion 网络至少使用 10 GbE,25 GbE 更佳。同时要注意:vMotion 流量与业务流量共享物理链路时,必须通过 NIOC(Network I/O Control)或流量整形设置份额与上限。例如在 vDS 上为 vMotion 流量设置 50% 的份额上限,防止迁移把业务带宽吃光。

三、MTU:一致性与端到端

启用 Jumbo Frame(MTU 9000)可以降低 CPU 开销、提升大包传输效率,对 vMotion 这类大流量场景有实际收益。但 MTU 的关键不是“设大”,而是端到端一致:源主机 VMkernel、目标主机 VMkernel、中间所有物理交换机端口、路由器接口,以及 vDS 上行链路,都必须支持并配置相同的 MTU。任何一跳仍是 1500,就会导致大包被丢弃或分片,表现为迁移速度骤降甚至失败。

验证方法是在源主机上用 vmkping 发送不分片的大包:

vmkping -s 8972 -d 192.168.20.12
# -s 指定数据部分大小,-d 禁止分片
# 若返回 "Packet needs to be fragmented but DF set",说明路径 MTU 不足

只有该命令稳定返回成功,才说明 9000 MTU 路径真正打通。

四、多网卡绑定与流量隔离

多网卡绑定(NIC Teaming)在 vMotion 场景下有两种典型用法。第一种是冗余:将两块物理网卡绑定到同一个 vSwitch,使用“Route based on originating virtual port”或“IP Hash”策略,提供链路故障切换。第二种是多路径并发:在 vSphere 6.5 及以上版本,可以为单个 VMkernel 接口配置多个 TCP/IP 堆栈或使用多网卡 vMotion,让迁移流量同时走多条上行链路,显著提升吞吐。

流量隔离则通过 VLAN 和端口组实现。建议为 vMotion 划分独立 VLAN,例如 VLAN 200,并在物理交换机上将该 VLAN 的流量与业务 VLAN 做 QoS 区分。这样即使物理链路共享,逻辑上也能保证迁移流量不会干扰业务。

源 ESXi 主机 vSwitch / vDS 端口组:vMotion-PG VMkernel vmk1 192.168.20.11 / MTU 9000 VMkernel vmk0(管理) 192.168.10.11 / MTU 1500 物理网卡 vmnic0 / vmnic1 10 GbE 绑定(IP Hash) 虚拟机 VM-A 内存 64 GB / 活跃 40 GB 目标 ESXi 主机 vSwitch / vDS 端口组:vMotion-PG VMkernel vmk1 192.168.20.12 / MTU 9000 VMkernel vmk0(管理) 192.168.10.12 / MTU 1500 物理网卡 vmnic0 / vmnic1 10 GbE 绑定(IP Hash) 虚拟机 VM-A(迁移后) 内存 64 GB / 活跃 40 GB 物理网络 / VLAN 200 交换机端口 MTU 9000 端到端一致 QoS / NIOC 份额限制 vMotion 上限 50% 带宽:10 GbE × 2 绑定 迁移流量 迁移流量 关键检查点: ① vMotion 独立 VMkernel(vmk1) ② 端到端 MTU 9000 一致 ③ 多网卡绑定 + NIOC 限流 估算:40 GB 活跃内存 ÷ 1 GB/s ≈ 40 s(10 GbE 示例)

五、规划检查清单

把上述要点落到可执行的检查项,建议在迁移前逐条确认:

  • VMkernel 分离:vMotion 使用独立 vmk 接口,与管理、vSAN、NFS 不共用。
  • IP 与子网:vMotion 子网独立规划,源/目标主机同子网或三层可达。
  • 带宽评估:按“活跃内存 ÷ 有效带宽”估算单次迁移时间,批量迁移需乘以并发数。
  • MTU 一致性:源、目标、交换机、路由器全部 9000,并用 vmkping -s 8972 -d 验证。
  • NIC Teaming:至少双上行绑定,策略与物理交换机一致(IP Hash 需交换机配置 LACP/EtherChannel)。
  • 流量隔离:独立 VLAN + NIOC 份额/上限,防止迁移冲击业务。
如果环境暂时只有 1 GbE,建议把 vMotion 迁移安排在业务低峰期,并限制并发迁移数量(默认每主机 8 个,可调低至 2~4),避免带宽被瞬间打满。

最后强调一个容易被忽略的点:vMotion 网络规划不是一次性工作。当主机数量增加、虚拟机内存规格变大、或引入 vDS 与 NIOC 后,原有的 VMkernel 布局和带宽假设都可能失效。建议把 vMotion 网络纳入变更管理,每次扩容或网络改造后重新验证 MTU 路径与迁移吞吐,确保迁移能力始终跟得上业务规模。