Создание виртуальной машины Windows или Linux с ускорением сети с помощью Azure CLI

Внимание

Эта статья ссылается на CentOS, дистрибутив Linux, который является состоянием "Конец жизни" (EOL). Обратите внимание на использование и план соответствующим образом. Дополнительные сведения см. в руководстве centOS End Of Life.

В этой статье описывается, как создать виртуальную машину Linux или Windows с поддержкой ускорения сети (AccelNet) с помощью интерфейса командной строки Azure CLI. В этой статье также рассматривается включение и управление ускорением сети на существующих виртуальных машинах.

Вы также можете создать виртуальную машину с поддержкой ускорения сети с помощью портал Azure. Дополнительные сведения об использовании портал Azure для управления ускоренной сетью на виртуальных машинах см. в статье "Управление ускоренной сетью" на портале.

Сведения об использовании Azure PowerShell для создания виртуальной машины Windows с поддержкой ускорения сети см. в статье "Использование Azure PowerShell для создания виртуальной машины Linux с ускорением сети".

Необходимые компоненты

Создание виртуальной машины с ускорением сети

В следующих примерах можно заменить примеры параметров, таких как <myResourceGroup>, <myNic>и <myVm> собственными значениями.

Создание виртуальной сети

  1. Используйте az group create для создания группы ресурсов для хранения ресурсов. Не забудьте выбрать поддерживаемый регион Windows или Linux, как указано в оси Windows и Linux Accelerated Networking.

    az group create --name <myResourceGroup> --location <myAzureRegion>
    
  2. Используйте az network vnet create для создания виртуальной сети с одной подсетью в группе ресурсов:

    az network vnet create \
      --resource-group <myResourceGroup> \
      --name <myVnet> \
      --address-prefix 192.168.0.0/16 \
      --subnet-name <mySubnet> \
      --subnet-prefix 192.168.1.0/24
    

Создание группы безопасности сети

  1. Используйте az network nsg create для создания группы безопасности сети (NSG).

    az network nsg create \
      --resource-group <myResourceGroup> \
      --name <myNsg>
    
  2. Группа безопасности сети содержит несколько правил по умолчанию, один из которых отключает весь входящий доступ из Интернета. Используйте az network nsg rule create , чтобы открыть порт, чтобы разрешить доступ к виртуальной машине протокола удаленного рабочего стола (RDP) или безопасной оболочки (SSH).

    az network nsg rule create \
      --resource-group <myResourceGroup> \
      --nsg-name <myNsg> \
      --name Allow-RDP-Internet \
      --access Allow \
      --protocol Tcp \
      --direction Inbound \
      --priority 100 \
      --source-address-prefix Internet \
      --source-port-range "*" \
      --destination-address-prefix "*" \
      --destination-port-range 3389
    

Создание сетевого интерфейса с функцией ускорения сети

  1. Используйте az network public-ip create для создания общедоступного IP-адреса. Виртуальная машина не нуждается в общедоступном IP-адресе, если вы не обращаетесь к нему из Интернета, но вам потребуется общедоступный IP-адрес, чтобы выполнить действия, описанные в этой статье.

    az network public-ip create \
      --name <myPublicIp> \
      --resource-group <myResourceGroup>
    
  2. Используйте az network nic create , чтобы создать сетевой интерфейс (NIC) с поддержкой ускорения сети. В следующем примере создается сетевая карта в подсети виртуальной сети и связывается NSG с сетевой картой.

    az network nic create \
     --resource-group <myResourceGroup> \
      --name <myNic> \
      --vnet-name <myVnet> \
      --subnet <mySubnet> \
      --accelerated-networking true \
      --public-ip-address <myPublicIp> \
      --network-security-group <myNsg>
    

Создание виртуальной машины и подключение сетевого адаптера

Используйте az vm create для создания виртуальной машины и используйте --nics параметр для подключения созданной сетевой карты. Обязательно выберите размер и распространение виртуальной машины, перечисленные в оси Windows и Linux Accelerated Networking. Список всех размеров и характеристик виртуальных машин см. в разделе "Размеры" для виртуальных машин в Azure.

В следующем примере создается виртуальная машина Центра обработки данных Windows Server 2019 с размером, поддерживающим ускорение сети, Standard_DS4_v2.

az vm create \
  --resource-group <myResourceGroup> \
  --name <myVm> \
  --image Win2019Datacenter \
  --size Standard_DS4_v2 \
  --admin-username <myAdminUser> \
  --admin-password <myAdminPassword> \
  --nics <myNic>

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

{
  "fqdns": "",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVm",
  "location": "centralus",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "192.168.0.4",
  "publicIpAddress": "40.68.254.142",
  "resourceGroup": "myResourceGroup"
}

Подтверждение активации ускоренной сети

После создания виртуальной машины в Azure подключитесь к ней и проверьте, установлен ли контроллер Ethernet в Windows.

  1. В портал Azure найдите и выберите виртуальные машины.

  2. На странице "Виртуальные машины" выберите новую виртуальную машину.

  3. На странице обзора виртуальной машины нажмите кнопку "Подключиться".

  4. На экране "Подключиться" выберите "Собственный RDP".

  5. На экране собственного RDP выберите "Скачать RDP-файл".

  6. Откройте скачанный RDP-файл, а затем войдите с помощью учетных данных, введенных при создании виртуальной машины.

  7. На удаленной виртуальной машине щелкните правой кнопкой мыши "Пуск" и выберите диспетчер устройств.

  8. В окне Диспетчер устройств разверните узел Сетевые адаптеры.

  9. Убедитесь, что появится адаптер Mellanox ConnectX-4 Lx Virtual Ethernet, как показано на следующем рисунке:

    Mellanox ConnectX-3 Virtual Function Ethernet Adapter, новый сетевой адаптер для ускорения сети, Диспетчер устройств

    Наличие адаптера подтверждает, что для виртуальной машины включена ускоренная сеть.

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

    PS C:\ > Get-NetAdapter | Where-Object InterfaceDescription –like "*Mellanox*Virtual*" | Get-NetAdapterStatistics
    
    Name                             ReceivedBytes ReceivedUnicastPackets       SentBytes SentUnicastPackets
    ----                             ------------- ----------------------       --------- ------------------
    Ethernet 2                           492447549                 347643         7468446              34991
    
    

Примечание.

Если адаптер Mellanox не запускается, откройте командную строку администратора на удаленной виртуальной машине и введите следующую команду:

netsh int tcp set global rss = enabled

Обработка динамической привязки и отзыв виртуальной функции

Привязка к искусственному сетевому адаптеру, который предоставляется на виртуальной машине, является обязательным требованием для всех приложений, использующих ускорение сети. Если приложение выполняется непосредственно через сетевой адаптер VF, он не получает все пакеты, предназначенные для виртуальной машины, так как некоторые пакеты отображаются по искусственному интерфейсу.

Необходимо запустить приложение по искусственному сетевому адаптеру, чтобы гарантировать, что приложение получает все пакеты, предназначенные для него. Привязка к искусственному сетевому адаптеру также гарантирует, что приложение работает, даже если VF отозван во время обслуживания узла.

Дополнительные сведения о требованиях к привязке приложений см. в статье "Ускорение работы сети" в виртуальных машинах Linux и FreeBSD.

Чтобы убедиться, что настраиваемый образ или приложения правильно поддерживают динамическую привязку и отзыв виртуальных функций, функциональные возможности можно проверить на любом сервере Windows Hyper-V. Используйте локальный Windows Server под управлением Hyper-V в следующей конфигурации:

  • Убедитесь, что у вас есть физический сетевой адаптер, поддерживающий SR-IOV.
  • Внешний виртуальный коммутатор создается поверх этого адаптера SR-IOV с флажок "Включить виртуализацию одно корневых операций ввода-вывода (SR-IOV)".
  • Виртуальная машина под управлением образа операционной системы или приложения создается или развертывается.
  • Сетевые адаптеры для этой виртуальной машины в разделе "Аппаратное ускорение" выбраны "Включить SR-IOV".

Убедившись, что виртуальная машина и приложение используют сетевой адаптер с помощью SR-IOV, можно изменить приведенные ниже примеры команд, чтобы отключить или отключить SR-IOV или включить эту функцию, чтобы отменить и добавить виртуальную функцию, которая будет имитировать то, что происходит во время обслуживания узла Azure:

# Get the virtual network adapter to test
$vmNic = Get-VMNetworkAdapter -VMName "myvm" | where {$_.MacAddress -eq "001122334455"}

# Enable SR-IOV on a virtual network adapter
Set-VMNetworkAdapter $vmNic -IovWeight 100 -IovQueuePairsRequested 1

# Disable SR-IOV on a virtual network adapter
Set-VMNetworkAdapter $vmNic -IovWeight 0

Управление ускорением сети на существующих виртуальных машинах

Можно включить ускорение сети на существующей виртуальной машине. Виртуальная машина должна соответствовать следующим требованиям для поддержки ускорения сети:

  • Поддерживаемый размер для ускорения сети.

  • Поддерживаемая версия образа и ядра Azure Marketplace для Linux.

  • Остановлено или освобождено до включения ускорения сети на любом сетевом адаптере. Это требование применяется ко всем отдельным виртуальным машинам или виртуальным машинам в группе доступности или Масштабируемые наборы виртуальных машин Azure.

Включение ускорения сети на отдельных виртуальных машинах или виртуальных машинах в группах доступности

  1. Сначала остановите виртуальную машину или все виртуальные машины в группе доступности.

    az vm deallocate \
      --resource-group <myResourceGroup> \
      --name <myVm>
    

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

  2. После остановки виртуальной машины включите ускоренную сеть в сетевом адаптере виртуальной машины.

    az network nic update \
      --name <myNic> \
      --resource-group <myResourceGroup> \
      --accelerated-networking true
    
  3. Перезапустите виртуальную машину или все виртуальные машины в группе доступности и убедитесь, что включена ускоренная сеть.

    az vm start --resource-group <myResourceGroup> \
      --name <myVm>
    

Включение ускоренной сети в Масштабируемые наборы виртуальных машин

Azure Масштабируемые наборы виртуальных машин немного отличается, но следует одному рабочему процессу.

  1. Сначала остановите виртуальные машины:

    az vmss deallocate \
      --name <myVmss> \
      --resource-group <myResourceGroup>
    
  2. После остановки виртуальных машин обновите свойство ускорения сети в сетевом интерфейсе.

    az vmss update --name <myVmss> \
      --resource-group <myResourceGroup> \
      --set virtualMachineProfile.networkProfile.networkInterfaceConfigurations[0].enableAcceleratedNetworking=true
    
  3. Масштабируемые наборы виртуальных машин имеет политику обновления, которая применяет обновления с помощью автоматических, прокатных или ручных параметров. Следующие инструкции задают политику автоматически, поэтому Масштабируемые наборы виртуальных машин сразу после перезапуска выбирает изменения.

    az vmss update \
      --name <myVmss> \
      --resource-group <myResourceGroup> \
      --set upgradePolicy.mode="automatic"
    
  4. Наконец, перезапустите Масштабируемые наборы виртуальных машин.

    az vmss start \
      --name <myVmss> \
      --resource-group <myResourceGroup>
    

После перезапуска и завершения обновления виртуальная машина появится на виртуальных машинах, использующих поддерживаемую ОС и размер виртуальной машины.

Изменение размера существующих виртуальных машин с помощью ускорения сети

Вы можете изменить размер виртуальных машин с поддержкой ускорения сети только на размеры, которые также поддерживают ускорение сети. Невозможно изменить размер виртуальной машины с ускорением сети на экземпляр виртуальной машины, который не поддерживает ускорение сети с помощью операции изменения размера. Вместо этого используйте следующий процесс для изменения размера этих виртуальных машин:

  1. Остановите виртуальную машину или все виртуальные машины в группе доступности или Масштабируемые наборы виртуальных машин.

  2. Отключите ускоренную сеть на сетевом адаптере виртуальной машины или все виртуальные машины в группе доступности или Масштабируемые наборы виртуальных машин.

  3. Переместите виртуальную машину или виртуальные машины в новый размер, который не поддерживает ускорение сети и перезапустите их.

Управление ускоренной сетью с помощью портала

При создании виртуальной машины в портал Azure установите флажок "Включить ускоренную сеть" на вкладке "Сеть" на экране "Создание виртуальной машины".

Если виртуальная машина использует поддерживаемую операционную систему и размер виртуальной машины для ускорения сети, установите флажок "Включить ускорение сети" на вкладке "Сеть" экрана "Создание виртуальной машины". Если ускорение сети не поддерживается, флажок не выбран, а сообщение объясняет причину.

Примечание.

  • Вы можете включить ускоренную сеть во время создания виртуальной машины портала только для поддерживаемых операционных систем Azure Marketplace. Чтобы создать и включить ускоренную сеть для виртуальной машины с пользовательским образом ОС, необходимо использовать Azure CLI или PowerShell.

  • Параметр ускорения сети на портале отображает выбранное пользователем состояние. Ускорение сети позволяет выбрать "Отключено" на портале, даже если размер виртуальной машины требует ускорения сети. Размеры виртуальных машин, требующие ускорения сети, позволяют ускорить сеть во время выполнения независимо от параметра пользователя на портале.

Чтобы включить или отключить ускоренную сеть для существующей виртуальной машины с помощью портал Azure:

  1. На странице портал Azure виртуальной машины выберите "Сеть" в меню слева.

  2. На странице "Сеть" выберите сетевой интерфейс.

  3. В верхней части страницы обзора сетевого адаптера выберите "Изменить ускоренную сеть".

  4. Выберите "Автоматический", "Включено" или "Отключено", а затем нажмите кнопку "Сохранить".

Чтобы проверить, включена ли ускорение сети для существующей виртуальной машины:

  1. На странице портала виртуальной машины выберите "Сеть " в меню слева.

  2. На странице "Сеть" выберите сетевой интерфейс.

  3. На странице обзора сетевого интерфейса в разделе Essentials обратите внимание, задано ли для ускорения сети значение "Включено" или "Отключено".

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