Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
了解如何使用 Azure 网络适配器(MANA)提高 Azure 中 Linux virtual machines(VM)的性能和可用性。
有关 Windows 支持,请参阅 Windows VM 与 Azure 网络适配器。
有关 MANA 的详细信息,请参阅 Azure 网络适配器概述。
支持的 Azure Marketplace 镜像
Azure Marketplace 中的多个 Linux 映像内置了对 MANA 中以太网驱动程序的支持。
操作系统支持详细信息列在 Azure 加速网络概述。
注意事项
较新的 MANA 功能正在积极开发中,Linux 分发供应商与 Microsoft 合作,通过上游更改更新其内核。 更新节奏因分发供应商而异。 你的系统分发版本和内核版本越新,就越可能包含最新的更新。
检查 MANA 支持的状态
由于 MANA 功能集需要主机硬件和 VM 软件组件,因此必须执行以下检查以确保 MANA 在 VM 上正常工作。
Azure portal检查
确保在至少一个 NIC 上启用了加速网络:
- 在 VM 的Azure portal页上,从左侧菜单中选择Networking。
- 在“网络设置”页面中,在“网络接口”中选择你的 NIC。
- 在“NIC 概述”窗格的“概要”下,查看“加速网络”是设置为“已启用”还是“已禁用”。
硬件检查
启用加速网络后,可以将基础 MANA NIC 识别为虚拟机中的 PCI 设备:
$ lspci
7870:00:00.0 Ethernet controller: Microsoft Corporation Device 00ba
如果看到另一个以太网控制器设备,说明不使用 MANA。 在 后续步骤 中,还应确认 MANA 接口已正确初始化和绑定。
内核版本检查
验证你的 VM 是否已安装 MANA 以太网驱动程序:
$ grep /mana*.ko /lib/modules/$(uname -r)/modules.builtin || find /lib/modules/$(uname -r)/kernel -name mana*.ko*
kernel/drivers/net/ethernet/microsoft/mana/mana.ko
更新内核
内核 5.15 及更高版中包含 MANA 以太网驱动程序。 内核 6.2 版本包含对 InfiniBand/RDMA 和 DPDK 等功能的 Linux 支持。 更低的或分支内核版本(5.15 和 6.1)需要向后移植支持。 操作系统支持详细信息列在 Azure 加速网络概述。
若要更新 VM 的 Linux 内核,请查看你的特定发行版的相关文档。
验证流量流经 MANA
为启用了加速网络的 VM 每配置一个虚拟 NIC (vNIC),都将在 VM 中生成两个网络接口。 以下示例演示了单 NIC 配置中的 eth0 和 enP30832p0s0:
$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:22:48:71:c2:8c brd ff:ff:ff:ff:ff:ff
alias Network Device
3: enP30832p0s0: <BROADCAST,MULTICAST,CHILD,UP,LOWER_UP> mtu 1500 qdisc mq master eth0 state UP mode DEFAULT group default qlen 1000
link/ether 00:22:48:71:c2:8c brd ff:ff:ff:ff:ff:ff
altname enP30832s1296119428
eth0 接口是由网络虚拟服务客户端 (NetVSC) 驱动程序提供服务的主要端口,也是 vNIC 的可路由接口。 关联的 enP* 接口表示 MANA 虚拟函数 (VF),在本例中,它绑定到 eth0 接口。 你可以从可路由的 ethN 接口获取 MANA VF 的数据包和字节计数:
$ ethtool -S eth0 | grep -E "^[ \t]+vf"
vf_rx_packets: 226418
vf_rx_bytes: 99557501
vf_tx_packets: 300422
vf_tx_bytes: 76231291
vf_tx_dropped: 0
如果与 VF 关联的值为 0 或未递增,则不会使用虚拟函数。