Виртуальные машины Linux с сетевым адаптером Microsoft Azure
Узнайте, как использовать сетевой адаптер Microsoft Azure (MANA) для повышения производительности и доступности виртуальных машин Linux в Azure.
Сведения о поддержке Windows см . на виртуальных машинах Windows с сетевым адаптером Microsoft Azure.
Дополнительные сведения о MANA см. в обзоре сетевого адаптера Microsoft Azure.
Внимание
В настоящее время MANA находится в предварительной версии. Юридические условия, применимые к функциям Azure, которые находятся в бета-версии, предварительной версии или в противном случае еще не выпущены в общедоступную версию, см . в дополнительных условиях использования для предварительных версий Microsoft Azure.
Поддерживаемые образы Azure Marketplace
Несколько образов Linux из Azure Marketplace имеют встроенную поддержку драйвера Ethernet в MANA:
- Ubuntu 20.04 LTS
- Ubuntu 22.04 LTS
- Red Hat Enterprise Linux 8.8
- Red Hat Enterprise Linux 9.2
- SUSE Linux Enterprise Server 15 SP4
- Debian 12 "Bookworm"
- Oracle Linux 9.0
Примечание.
Ни один из текущих дистрибутивов Linux в Azure Marketplace не находится в ядре версии 6.2 или более поздней версии, который требуется для RDMA/InfiniBand и пакета средств разработки плоскости данных (DPDK). Если вы используете существующий образ Linux из Azure Marketplace, необходимо обновить ядро.
Проверка состояния поддержки MANA
Так как для набора компонентов MANA требуются компоненты оборудования узла и программного обеспечения виртуальной машины, необходимо выполнить следующие проверки, чтобы убедиться, что MANA работает правильно на виртуальной машине.
проверка портал Azure
Убедитесь, что ускорение сети включено по крайней мере на одном из сетевых адаптеров:
- На странице портал Azure виртуальной машины выберите "Сеть" в меню слева.
- На странице параметров сети выберите сетевой интерфейс.
- В области обзора сетевого адаптера в разделе "Основные сведения" обратите внимание, задано ли для ускорения сети значение "Включено" или "Отключено".
Аппаратный контроль
При включении ускорения сети можно определить базовую сетевую карту MANA как устройство PCI на виртуальной машине:
$ lspci
7870:00:00.0 Ethernet controller: Microsoft Corporation Device 00ba
Проверка версии ядра
Убедитесь, что на виртуальной машине установлен драйвер MANA Ethernet:
$ 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
Обновите ядро .
Драйверы Ethernet для MANA включены в ядро версии 5.15 и более поздних версий. Ядро версии 6.2 включает поддержку Linux для таких функций, как InfiniBand/RDMA и DPDK. Для более ранних или вилированных версий ядра (5.15 и 6.1) требуется поддержка резервного копирования.
Чтобы обновить ядро Linux виртуальной машины, ознакомьтесь с документацией по конкретному дистрибутиву.
Убедитесь, что трафик проходит через MANA
Каждая виртуальная сетевая карта (vNIC), настроенная для виртуальной машины, с поддержкой ускорения сети, приводит к двум сетевым интерфейсам в виртуальной машине. В следующем примере показано 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) и интерфейсом для routable для виртуальной сетевой карты. Связанный enP*
интерфейс представляет виртуальную функцию MANA (VF) и привязан к интерфейсу eth0
в данном случае. Вы можете получить количество пакетов и байтов виртуальной машины MANA из routable ethN
интерфейса:
$ 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
Следующие шаги
- TCP/IP performance tuning for Azure VMs (Настройка производительности TCP/IP для виртуальных машин Azure)
- Группы размещения близкого взаимодействия
- Мониторинг виртуальных сетей Azure