Обзор ускорения сети
Внимание
Эта статья ссылается на CentOS, дистрибутив Linux, который является состоянием "Конец жизни" (EOL). Обратите внимание на использование и план соответствующим образом. Дополнительные сведения см. в руководстве centOS End Of Life.
В этой статье описываются преимущества, ограничения и поддерживаемые конфигурации ускоренной сети. Ускорение сети обеспечивает виртуализацию одно корневых операций ввода-вывода (SR-IOV) на поддерживаемых типах виртуальных машин, что значительно повышает производительность сети. Этот высокопроизводительный путь к данным проходит узел, что снижает задержку, jitter и загрузку ЦП для наиболее требовательных сетевых рабочих нагрузок.
Примечание.
Дополнительные сведения о предварительной версии сетевого адаптера Microsoft Azure (MANA) см. в документации по Azure MANA
На следующей схеме показано, как две виртуальные машины взаимодействуют с и без ускорения сети.
Без ускорения сети все сетевые трафикы в виртуальной машине проходят через узел и виртуальный коммутатор. Виртуальный коммутатор обеспечивает все принудительное применение политик к сетевому трафику. Политики включают группы безопасности сети, списки управления доступом, изоляцию и другие виртуализированные службы сети.
Благодаря ускоренной сети сетевой трафик, поступающий в сетевой интерфейс виртуальной машины, перенаправляется непосредственно на виртуальную машину. Ускорение сети разгружает все сетевые политики, которые применяет виртуальный коммутатор, а также применяет их на аппаратном уровне. Поскольку политика применяется в аппаратном обеспечении, NIC может перенаправлять сетевой трафик непосредственно на виртуальную машину. Сетевой интерфейс обходит узел и виртуальный коммутатор, при этом сохраняя все политики, примененные на узле.
Льготы
Ускорение сети дает следующие преимущества:
Низкая задержка и более высокая задержка пакетов в секунду. Устранение виртуального коммутатора из пути передачи данных сокращает время, затрачиваемое пакетами на обработку политик на узле. Кроме того, увеличивается количество пакетов, которые может обработать виртуальная машина.
Уменьшение дрожания. Время обработки с помощью виртуальных коммутаторов зависит от числа политик, которые необходимо применить, и рабочей нагрузки ЦП, выполняющего обработку. Разгрузка применения политики к аппаратному обеспечению устраняет эту вариативность путем доставки пакетов непосредственно на ВМ. Разгрузка также устраняет взаимодействие между узлами и виртуальными машинами, все программные прерывания и переключения контекста.
Уменьшение нагрузки на ЦП. Обход виртуального коммутатора на узле приводит к меньшему использованию ЦП для обработки сетевого трафика.
Пределы и ограничения
Преимущества ускоренной сети применяются только к виртуальной машине, которая включает ее.
Для получения наилучших результатов включите ускоренную сеть по крайней мере на двух виртуальных машинах в одной виртуальной сети Azure. Эта функция оказывает минимальное влияние на задержку при обмене данными между виртуальными сетями или подключении к локальной среде.
Вы не можете включить ускоренную сеть на работающей виртуальной машине. Вы можете включить ускорение сети на поддерживаемой виртуальной машине только в том случае, если виртуальная машина остановлена и освобождена.
Вы не можете развертывать виртуальные машины (классические) с помощью ускоренной сети с помощью Azure Resource Manager.
Платформа Azure не обновляет драйверы сетевого адаптера Mellanox на виртуальной машине. Для виртуальных машин под управлением Linux и FreeBSD клиентам рекомендуется оставаться в курсе последних обновлений ядра, предлагаемых дистрибутивом. Для виртуальных машин под управлением Windows клиенты должны применять обновленные драйверы на странице поддержки Nvidia, если все проблемы позже возникают с драйвером, доставленным с изображением Marketplace или примененным к пользовательскому образу.
Поддерживаемые регионы
Ускоренная сеть доступна во всех глобальных регионах Azure и в облаке Azure для государственных организаций.
Поддерживаемые операционные системы
Следующие версии Windows поддерживают ускоренную сеть:
- Windows Server 2022
- Windows Server 2019 Standard или Datacenter
- Windows Server 2016 Standard или Datacenter
- Windows Server 2012 R2 Standard или Datacenter
- Windows 10 версии 21H2 или более поздней версии, включая многосессию Windows 10 Корпоративная
- Windows 11, включая многосессию Windows 11 Корпоративная
Следующие дистрибутивы Linux и FreeBSD из Azure Marketplace поддерживают ускорение сети из поля:
- Ubuntu 14.04 с ядром linux-azure
- Ubuntu 16.04 или более поздней версии
- SLES12 с пакетом обновления 3 или более поздней версии
- RHEL 7.4 или более поздней версии
- CentOS 7.4 или более поздней версии
- CoreOS Linux
- Debian "Stretch" с бэкпортированным ядром
- Debian "Бюстер" или более поздней версии
- Oracle Linux 7.4 или более поздней версии с ядром, совместимым с Red Hat (RHCK)
- Oracle Linux 7.5 или более поздней версии с UEK версии 5
- FreeBSD 10.4, 11.1, 12.0 или более поздней версии
Поддерживаемые экземпляры виртуальных машин
Большинство общих и оптимизированных для вычислений размеров экземпляров виртуальных машин с двумя или более виртуальными ЦП поддерживают ускорение сети. В экземплярах, поддерживающих гиперпоточность, экземпляры виртуальных машин с четырьмя или более виртуальными ЦП поддерживают ускорение сети.
Чтобы проверить, поддерживает ли размер виртуальной машины ускоренную сеть, см. статью "Размеры виртуальных машин" в Azure.
Вы можете напрямую запросить список номеров SKU виртуальных машин, поддерживающих ускорение сети, с помощью команды Azure CLI az vm list-skus :
az vm list-skus \
--location westus \
--all true \
--resource-type virtualMachines \
--query '[].{size:size, name:name, acceleratedNetworkingEnabled: capabilities[?name==`AcceleratedNetworkingEnabled`].value | [0]}' \
--output table
Примечание.
Хотя размеры NC и NV отображаются в выходных данных команды, эти размеры не поддерживают ускорение сети. Включение ускорения сети на виртуальных машинах NC или NV не влияет.
Пользовательские образы ВМ
Если вы используете пользовательский образ, поддерживающий ускорение сети, убедитесь, что выполнены следующие требования.
Поддержка устройств и драйверов
Любой пользовательский образ, поддерживающий ускоренную сеть, должен включать драйверы, обеспечивающие виртуализацию единого корневого ввода-вывода для сетевых карт (сетевого адаптера), которые используются на платформах Azure. Этот список оборудования включает NVIDIA ConnectX-3, ConnectX-4 Lx, ConnectX-5 и сетевой адаптер Microsoft Azure (MANA).
Динамическая привязка и отзыв виртуальной функции
Для ускорения сети требуется, чтобы образы гостевой ОС правильно обрабатывали удаленную или добавленную динамически виртуальную функцию. Такие сценарии, как обслуживание узла или динамическая миграция, приводят к динамическому отзыву виртуальной функции и восстановлению после события обслуживания. Кроме того, приложения должны гарантировать, что они привязываются к искусственному устройству, а не виртуальной функции, чтобы поддерживать сетевое подключение во время этих событий.
Дополнительные сведения о требованиях к привязке приложений см. в статье "Ускорение работы сети" в виртуальных машинах Linux и FreeBSD.
Настройка неуправляемых драйверов
Для ускорения сети требуются конфигурации сети, которые помечают драйверы NVIDIA как неуправляемые устройства. Образы с cloud-init версии 19.4 или более поздней имеют правильно настроенную сеть для поддержки ускорения сети во время подготовки. Настоятельно рекомендуется не запускать конкурирующие программное обеспечение сетевого интерфейса (например, ifupdown и networkd) на пользовательских образах, а также не запускать dhcpclient непосредственно на нескольких интерфейсах.
В следующем примере показан раскрывающийся список конфигурации для NetworkManager
RHEL или CentOS:
sudo cat <<EOF > /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules
# Accelerated Networking on Azure exposes a new SRIOV interface to the VM.
# This interface is transparentlybonded to the synthetic interface,
# so NetworkManager should just ignore any SRIOV interfaces.
SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION!="remove", ENV{NM_UNMANAGED}="1"
EOF
Сетевой трафик использует путь к данным ускорения сети
Для драйверов NVIDIA: убедитесь, что пакеты передаются через интерфейс VF.
Для драйвера MANA: убедитесь, что трафик проходит через MANA