如何直通ESXi物理网卡提升虚拟机性能?

在VMware ESXi中,可通过PCIe直通功能将物理网卡直接分配给指定虚拟机,使虚拟机独占该硬件设备,显著提升网络性能和兼容性。

在 ESXi 中为虚拟机分配物理网卡(PCIe 直通)详细指南

应用场景:

如何直通ESXi物理网卡提升虚拟机性能?

在 VMware ESXi 虚拟化环境中,大多数虚拟机通过虚拟交换机 (vSwitchDistributed Switch) 共享物理网卡 (pNIC) 的网络带宽,但在某些特定需求下,将整块物理网卡完全、直接地交给一个虚拟机独占使用是更优选择,这就是 PCIe 设备直通(Passthrough) 技术,适用于:

  1. 高性能网络需求: 虚拟机需要接近物理机的网络吞吐量(如低延迟交易系统、高性能计算节点、网络数据包分析/防火墙虚拟机)。
  2. 专用硬件功能: 虚拟机需要使用物理网卡特有的硬件功能(如特定 SR-IOV 实现、硬件加速卸载、专用加密引擎)。
  3. 隔离与安全: 要求虚拟机网络流量完全绕过 ESXi Hypervisor 层,实现物理级别的隔离。
  4. 兼容性问题: 某些特殊网卡在 ESXi 驱动下表现不佳,但目标虚拟机操作系统有原生驱动支持。

重要前提与限制:

  • 硬件支持:
    • CPU: 必须支持 Intel VT-d 或 AMD-Vi (IOMMU) 技术,在服务器的 BIOS/UEFI 中 必须启用 此功能。
    • 主板/芯片组: 主板必须支持 VT-d/AMD-Vi,并且相关的 PCIe 插槽需要配置在支持直通的 IOMMU 组中。
    • 网卡: 目标物理网卡本身及其固件需要支持直通功能,大多数主流服务器级网卡(如 Intel X520/X710, Mellanox ConnectX 系列)都支持。并非所有板载或 PCIe 网卡都支持。
  • ESXi 要求: 运行 ESXi 6.x 或更高版本的物理主机。
  • 独占性: 一旦启用直通,该物理网卡将完全脱离 ESXi 主机的控制,ESXi 管理界面 (vmk0) 和其他虚拟机都不能再使用这块网卡,它只能被分配给一个虚拟机
  • 虚拟机操作系统: 虚拟机内的操作系统必须安装适用于该物理网卡的驱动程序,ESXi 虚拟化层不再提供驱动程序支持。
  • 中断映射 (Interrupt Remapping): 强烈建议在 BIOS/UEFI 中启用此功能(通常和 VT-d/AMD-Vi 在同一设置区域),它对稳定性至关重要,尤其是在多 CPU 系统中。
  • 热插拔: 在虚拟机运行状态下添加/移除直通设备通常需要特殊支持,并非所有设备和 VM OS 都支持,建议在 VM 关机状态下操作。
  • vMotion: 默认情况下,启用了直通设备的虚拟机不支持 vMotion (迁移),需要启用 Enhanced vMotion Compatibility (EVC) 模式,并且源和目标主机必须具有完全相同的直通设备硬件型号和兼容的 IOMMU 配置,即使满足条件,涉及直通设备的 vMotion 也可能有额外限制或复杂性

详细操作步骤:

第一步:验证硬件支持与启用 BIOS/UEFI 设置

如何直通ESXi物理网卡提升虚拟机性能?

  1. 重启 ESXi 物理服务器。
  2. 进入 BIOS/UEFI 设置界面 (通常按 Delete, F2, F10 或特定服务器功能键)。
  3. 找到与 CPU 虚拟化技术 (Intel VT-x / AMD-V) 和 I/O 虚拟化 (Intel VT-d / AMD-ViIOMMU) 相关的选项。
  4. 务必同时启用 VT-x/AMD-VVT-d/AMD-Vi (IOMMU)
  5. 查找与 Interrupt Remapping 相关的选项并将其启用
  6. 保存 BIOS/UEFI 设置并重启服务器进入 ESXi。

第二步:在 ESXi 主机上启用 PCIe 设备直通

  1. 登录 ESXi Host Client: 在浏览器中访问 ESXi 主机的管理 IP 地址 (如 https://your-esxi-host-ip/)。
  2. 导航到硬件设置:
    • 点击左侧导航栏中的 主机
    • 点击顶部选项卡 管理
    • 在“硬件”部分下,选择 PCI 设备
  3. 查看可直通设备列表: 你将看到 ESXi 检测到的所有 PCIe 设备列表,注意“供应商”、“设备名称”、“设备 ID” 以及最重要的 直通 列状态。
  4. 筛选并找到目标物理网卡:
    • 根据供应商 (如 Intel Corporation, Mellanox Technologies) 和设备名 (如 Ethernet Controller X710) 识别你要直通的网卡。
    • 注意设备的 设备 ID (格式如 0000:xx:yy.z),这有助于精确定位,通常物理网卡会显示为 Network controller 类型。
  5. 切换直通状态:
    • 找到目标物理网卡对应的行。
    • 点击 直通 列下的切换开关(通常是 “已禁用” 状态)。
    • 将其切换为 已启用
    • 重要提示: 启用直通后,该设备立即脱离 ESXi 控制,如果这块网卡当前正被 ESXi 管理接口 (vmk0) 或任何虚拟交换机使用,网络连接会立即中断! 请确保:
      • 这块网卡没有被配置为任何 vmkernel 适配器 (如管理、vMotion、存储网络) 的上行链路。
      • 这块网卡没有绑定到任何虚拟交换机 (vSwitchDistributed Switch)。
      • 强烈建议使用 ESXi 主机的其他物理网卡(未启用直通的)来承载管理网络,以避免启用直通时失去连接,或者通过本地控制台 (iDRAC, iLO, KVM) 操作。
  6. 确认更改: 系统可能会弹出警告提示你启用直通的风险(网络中断等),确认后更改生效。
  7. 重启 ESXi 主机 (必需): 启用或禁用 PCI 设备直通后,必须重启 ESXi 主机才能使更改完全生效,在 PCI 设备 页面顶部通常会有提示,点击提示中的 重新引导 按钮或在 操作 > 电源 菜单中选择 重新引导不要跳过此步。

第三步:将直通的物理网卡添加到虚拟机

  1. 确保目标虚拟机已关闭电源。
  2. 在 ESXi Host Client 中编辑虚拟机设置:
    • 在左侧导航栏点击 虚拟机
    • 从列表中选择目标虚拟机。
    • 点击 操作 > 编辑设置
  3. 添加新硬件:
    • 在虚拟机设置窗口底部,点击 添加其他设备 下拉按钮。
    • 选择 PCI 设备
  4. 选择要添加的直通网卡:
    • 在新增的 PCI 设备 硬件项下,会有一个下拉菜单。
    • 点击下拉菜单,你会看到所有已启用直通且当前未被其他虚拟机占用的 PCI 设备列表
    • 从中选择你之前启用了直通的目标物理网卡(通过供应商、设备名或设备 ID 确认)。
  5. 配置设备选项 (可选但推荐):
    • 预留所有客户机内存 (锁定): 强烈建议勾选此项! 这确保虚拟机有足够且锁定的物理内存供直通设备使用,对于性能和稳定性非常重要,尤其是使用 SR-IOV 或需要大量 DMA 的卡时,但这会增加虚拟机启动所需的内存预留量。
    • 延迟敏感度: 如果虚拟机对低延迟有极致要求(如高频交易),可以尝试设置为 ,但需评估对主机资源的影响。
  6. 保存更改: 点击 保存 按钮完成虚拟机设置的修改。

第四步:在虚拟机操作系统中安装驱动并配置网络

  1. 启动虚拟机。
  2. 登录虚拟机操作系统。
  3. 识别新硬件:
    • Windows: 通常会自动弹出“发现新硬件”向导,或可以在“设备管理器”中看到带有黄色感叹号的未知设备或直接显示网卡型号。
    • Linux: 使用 lspci 命令查看新添加的 PCI 设备,应该能看到对应的网卡(如 Ethernet controller: Intel Corporation Ethernet Controller X710 ...),使用 dmesg | grep -i ethip link show 查看新出现的网络接口 (如 ens160, enp0s16 或传统的 ethX)。
  4. 安装制造商提供的驱动程序:
    • 必须从网卡制造商(如 Intel, Mellanox, Broadcom)官网下载适用于你虚拟机操作系统的最新版驱动程序
    • 不要尝试使用 VMware Tools 提供的 vmxnet3 或其他虚拟网卡驱动。
    • 按照制造商提供的说明安装驱动。
  5. 配置网络:
    • 像在物理服务器上一样,在虚拟机操作系统中为新识别到的物理网络接口配置 IP 地址、子网掩码、网关、DNS 等网络参数(通过图形界面或命令行如 ifconfig/ip, netplan, nmtui)。
  6. 测试网络连通性: 使用 ping, traceroute 等工具测试虚拟机通过直通物理网卡与外界的网络连接是否正常。

关键注意事项与最佳实践:

如何直通ESXi物理网卡提升虚拟机性能?

  1. 规划先行: 仔细规划哪块物理网卡用于直通。绝对不能将承载 ESXi 管理网络 (vmk0) 的网卡直通给虚拟机,否则会失去主机连接!确保至少有一块独立网卡专门用于 ESXi 管理。
  2. 备份: 在对 ESXi 主机 BIOS 或配置进行重大更改(尤其是启用直通)之前,做好 ESXi 主机配置的备份。
  3. 稳定性: 确保 BIOS/UEFI 中的 VT-d/AMD-ViInterrupt Remapping 已正确启用,使用服务器供应商推荐的网卡和固件版本。
  4. 内存预留: 务必为使用直通设备的虚拟机勾选 预留所有客户机内存 (锁定)
  5. 隔离组 (IOMMU Group): 有时一块 PCIe 网卡可能与其他设备(如 USB 控制器)在同一个 IOMMU 组中,启用直通时,整个组都会被直通,需要确认是否允许这样,高级用户可能需要调整 BIOS 设置或使用 ACS 覆盖(ESXi/Hardware 支持)来分割组。
  6. vMotion 限制: 清晰认识到直通设备对 vMotion 的限制,如果业务需要迁移,要么避免使用直通,要么确保严格的硬件一致性并配置 EVC。
  7. 监控: 在虚拟机操作系统中使用原生工具监控直通网卡的状态、性能指标和错误计数。
  8. 固件更新: 更新物理网卡固件时,需要关闭使用它的虚拟机,并在 ESXi 主机上临时禁用该网卡的直通(需要重启 ESXi),然后进行固件刷新,完成后重新启用直通并重启 ESXi。

通过 PCIe 直通将物理网卡直接分配给 ESXi 中的虚拟机,能够为特定工作负载提供卓越的网络性能和硬件级隔离,这一过程需要严格的硬件兼容性检查(CPU VT-d/AMD-Vi、BIOS 设置、网卡支持)、谨慎的操作步骤(启用直通后必须重启 ESXi 主机、预留虚拟机内存)以及对限制条件(如 vMotion、管理网卡隔离)的深刻理解,成功实施后,虚拟机将能如同物理服务器一样直接控制并使用该物理网络接口卡。

参考资料与引用来源:

  • VMware官方文档:Configuring PCI Devices for Passthrough
    https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.hostclient.doc/GUID-3B2C938F-0F61-4919-A6A0-14744B0F8C3D.html
  • VMware知识库文章 (KB):Requirements for using DirectPath I/O passthrough on an ESXi/ESX host (1003)
    https://kb.vmware.com/s/article/1003
  • VMware知识库文章 (KB):Enabling Passthrough on a PCI device and assigning it to a virtual machine (1021341)
    https://kb.vmware.com/s/article/1021341
  • Intel VT-d 技术概述
    https://www.intel.com/content/www/us/en/architecture-and-technology/virtualization/vt-directed-io-spec.html
  • AMD I/O Virtualization Technology (AMD-Vi)
    https://www.amd.com/en/support/io-virtualization

(注意:实际操作中,请务必查阅你所使用的具体 ESXi 版本、服务器硬件和网卡型号对应的最新官方文档)

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/16948.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年6月9日 15:32
下一篇 2025年6月9日 15:39

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN