Поделиться через


Виртуальные машины Linux с сетевым адаптером Microsoft Azure

Узнайте, как использовать сетевой адаптер Microsoft Azure (MANA) для повышения производительности и доступности виртуальных машин Linux в Azure.

Для получения поддержки Windows см. Виртуальные машины Windows с сетевым адаптером Microsoft Azure.

Дополнительные сведения о MANA см. в обзоре сетевого адаптера Microsoft Azure.

Поддерживаемые образы Azure Marketplace

Несколько образов Linux из Azure Marketplace имеют встроенную поддержку драйвера Ethernet в MANA:

  • Ubuntu 22.04 LTS
  • Ubuntu 24.04 LTS
  • Red Hat Enterprise Linux 8.8
  • Red Hat Enterprise Linux 8.10
  • Red Hat Enterprise Linux 9.2
  • Red Hat Enterprise Linux 9.4
  • SUSE Linux Enterprise Server 15 SP4
  • Debian 12 "Bookworm"
  • Oracle Linux 8.0 UEK R7
  • Oracle Linux 9.0 UEK R7

Примечание.

Новые функции MANA находятся в активном процессе разработки, а поставщики дистрибутивов Linux сотрудничают с Корпорацией Майкрософт, чтобы обновить свои ядра с последующими изменениями. Частота обновлений зависит от поставщика дистрибутивов. Чем новее ваш дистрибутив и ядро, тем больше шансов, что у них будут последние обновления.

Проверка состояния поддержки MANA

Так как для набора компонентов MANA требуются компоненты оборудования узла и программного обеспечения виртуальной машины, необходимо выполнить следующие проверки, чтобы убедиться, что MANA работает правильно на виртуальной машине.

Проверка портала Azure

Убедитесь, что ускорение сети включено по крайней мере на одном из сетевых адаптеров:

  1. На странице портал Azure виртуальной машины выберите "Сеть" в меню слева.
  2. На странице параметров сети для сетевого интерфейса выберите ваш сетевой адаптер.
  3. На странице Обзор сетевого адаптера в разделе Основные сведения обратите внимание, установлено ли для Ускоренной сети значение Включено или Отключено.

Аппаратный контроль

При включении ускорения сети можно определить базовую сетевую карту 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), и маршрутизируемым интерфейсом для виртуальной сетевой карты (vNIC). Связанный enP* интерфейс представляет виртуальную функцию MANA (VF) и привязан к интерфейсу eth0 в данном случае. Вы можете получить количество пакетов и байтов виртуальной машины MANA с переключаемого 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

Следующие шаги