VM服务器要用多张网卡,核心就三件事:先在物理交换机侧把端口准备好(做链路聚合或独立端口),再在虚拟化平台里建多个虚拟交换机或端口组把不同流量分开,最后给虚拟机添加多块虚拟网卡并配好路由和IP,让管理、业务、存储、备份各走各的路。听起来像三句话,实际落地时每一步都有坑,下面按真实运维场景拆开讲,从原理到命令一步步来。
为什么一台VM服务器值得配多张网卡
单网卡跑虚拟化,在测试环境没问题,一旦上生产就会撞墙,原因不复杂:
- 带宽被瓜分,一台物理机上跑十几台虚拟机,备份、迁移、业务访问全挤在一条千兆链路上,晚高峰谁也别想快。
- 故障没有冗余,网卡、网线、交换机端口任何一环挂掉,整台宿主机上的虚拟机集体失联。
- 流量互相干扰,vMotion迁移流量和业务流量混跑,迁移一开始业务就卡顿,排查起来还特别费劲。
行业共识认为,生产环境的虚拟化宿主机至少配置2块网卡做管理冗余,4块以上才能把业务与存储分离,这也是为什么主流服务器出厂配置常见4口千兆或2口万兆起步。
VMware虚拟机多网卡如何配置:从平台到系统的完整路径
这是问得最多的一类问题,分两个层面:宿主机(ESXi)侧怎么把物理网卡接进来,虚拟机侧怎么把虚拟网卡加进去。
宿主机侧:虚拟交换机与上行链路
ESXi的模型很简单,物理网卡叫上行链路(vmnic),接进虚拟交换机(vSwitch),再划分端口组(Port Group)给虚拟机用。
Web界面操作路径:主机 → 配置 → 网络 → 虚拟交换机 → 添加网络,选择”标准交换机”,勾选需要加入的物理网卡。
命令行更利索,SSH登录后:
- 添加物理网卡到交换机:
esxcli network vswitch standard uplink add --uplink-name=vmnic1 --vswitch-name=vSwitch0 - 设置故障切换顺序:
esxcli network vswitch standard policy failover set -v vSwitch0 -a vmnic0,vmnic1 -f portid - 查看当前绑定:
esxcli network vswitch standard uplink list -v vSwitch0
负载均衡策略有几种,选错等于白配:
- 基于源虚拟端口ID:默认策略,不需要交换机配合,适合大多数场景。
- 基于IP哈希:需要物理交换机配置LACP链路聚合,带宽利用率最高。
- 基于源MAC哈希:适合跨物理交换机的场景。
虚拟机侧:添加虚拟网卡
关机或热添加都可以。虚拟机 → 编辑设置 → 添加 → 网络适配器,选择对应端口组,网卡类型优先选VMXNET3,性能和中断处理都优于E1000。
虚拟机里再加一块网卡,系统层面要自己认,Linux下通常变成ens192、ens224这样的名字,用ip link确认;Windows下在”网络连接”里会多出一个本地连接,注意手动调整接口跃点,否则默认路由可能走错口。
多网卡最容易翻车的地方是路由冲突,两个网卡都配了默认网关,系统会随机挑一个出口,正确做法是只给一块网卡配网关,另一块配明细路由:
# Linux 添加明细路由 ip route add 10.20.0.0/16 via 192.168.10.1 dev ens224 # Windows 持久化路由 route add -p 10.20.0.0 mask 255.255.0.0 192.168.10.1
需要更精细的源地址分流时,Linux用ip rule配合多张路由表做策略路由,这是多网卡场景比较常用的进阶做法。
ESXi多网卡绑定和单网卡区别:到底该选哪种
很多人纠结绑不绑,先看对比:
| 维度 | 单网卡 | 多网卡绑定(LACP) | 多网卡分离(不绑定) |
|---|---|---|---|
| 带宽上限 | 单链路速率 | 多链路叠加 | 各走各的,按需求分配 |
| 故障切换 | 无 | 秒级切换 | 取决于策略,通常能切换 |
| 交换机配置 | 无需 | 必须配LACP | 无需,独立端口即可 |
| 流量隔离 | 做不到 | 做不到 | 可以按业务分离 |
| 适用场景 | 测试、边缘小业务 | 大流量单一业务 | 管理/业务/存储分离 |
说人话的结论:要带宽叠加就绑定,要流量隔离就分离,两者不矛盾,可以组合用,比如两块万兆做LACP跑业务,另外两块千兆单独跑管理和备份。
绑定方式上,vSphere标准交换机支持IP哈希+LACP,分布式交换机还支持LACP多通道,Hyper-V那边对应的是SET(Switch Embedded Teaming),Windows Server 2016之后内置,不再强制依赖厂商网卡驱动组队工具。
多网卡在真实场景里怎么分:三个典型做法
内网服务器双网卡分流场景
最普遍的需求:一块网卡面向内网用户访问,一块网卡专门接数据库或存储,做法是给两块网卡分属不同子网的端口组,虚拟机里配两块虚拟网卡,业务口配网关,数据口只加明细路由,这样内网用户访问业务口时,数据包不会绕到存储网段去,网络路径短、延迟低。
管理、业务、存储三网分离
生产环境的标准姿势,物理上至少6个口,逻辑上建三个vSwitch:
- 管理网:ESXi主机管理、vCenter通信,双口冗余。
- 业务网:虚拟机对外提供服务,万兆起步,可做LACP。
- 存储/迁移网:iSCSI或NFS存储流量、vMotion迁移流量,独立万兆口。
分离之后最大的好处是排障,vMotion把带宽跑满,业务侧毫无感知,监控曲线一目了然。
地域与成本视角
上海机房VMware多网卡部署这类项目里,真正花钱的不是”多配几块虚拟网卡”,虚拟网卡不要钱,成本在硬件和机位:
- 千兆多口网卡单价通常在百元级别,万兆双口卡在千元级别。
- 交换机端口和光模块是隐性成本,一个万兆光口加模块的费用往往超过网卡本身。
- 多网卡方案多少钱,取决于是否需要换交换机,如果现网交换机支持LACP和足够端口,增量投入很小;如果要新上万兆交换,那就是另一个量级。
据工信部相关统计,近年来企业数据中心万兆接入的普及速度明显加快,多网卡分离部署已经从”高配”变成”标配”,中小项目可以考虑混合方案:业务口上万兆,管理和备份复用千兆口,用VLAN隔离而非物理隔离,成本能压下来不少。
配置时最容易踩的五个坑
- 交换机没配LACP就选IP哈希,结果只有一个网卡在跑,另一个处于待命状态,带宽并没有叠加。
- 两块网卡都配默认网关,导致流量出口不可控,表现为”时快时慢”。
- VMXNET3网卡在老旧系统上没驱动,虚拟机装完系统认不到网卡,需要提前注入驱动。
- MTU不一致,存储网段开巨帧(9000),交换机和虚拟交换机没同步改,iSCSI性能反而下降。
- 端口组VLAN ID填错,虚拟机拿不到IP,排查半天以为是网卡问题。
Q&A:VM服务器多网卡常见疑问
虚拟机加多块网卡会影响性能吗?
会有开销,但可控,每块虚拟网卡都需要中断和内存资源,VMXNET3配合多队列能把这部分开销压得很低,生产环境里单台虚拟机配2到4块网卡很常见,真正影响性能的是流量是否合理分离,而不是网卡数量本身,虚拟网卡数量上限受虚拟硬件版本限制,主流版本单机支持到数十块,实际不会用到。
多网卡一定要做链路聚合吗?
不一定,链路聚合解决的是单条流量带宽上限和链路冗余,解决不了流量隔离,如果诉求是”管理和业务分开”,独立端口加不同vSwitch就够了,交换机侧什么都不用改,实施成本最低,只有单台虚拟机或单条业务流需要突破单口带宽时,才值得上LACP,并且要确认物理交换机支持802.3ad。
单网卡服务器升级到多网卡,需要停机吗?
物理加卡通常需要关机,但只要新网卡能被ESXi识别,后续的vSwitch、端口组、虚拟机网卡添加都可以在线完成,业务不中断,稳妥做法是先加卡、再建新vSwitch、最后逐台虚拟机切端口组,切完观察一轮再动下一批,据多数运维团队的实践,迁移期间保留原端口组不删,出问题能快速回切,这是成本最低的回滚手段。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/776068.html


