Использование Azure PowerShell для создания виртуальной машины с ускорением сети

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

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

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

Предварительные требования

  • Учетная запись Azure с активной подпиской. Вы можете создать учетную запись бесплатно.

  • Azure PowerShell 1.0.0 или более поздней версии. Чтобы определить текущую версию, выполните командлет Get-Module -ListAvailable Az. Если требуется установка или обновление, установите последнюю версию модуля Az из коллекции PowerShell.

  • В PowerShell войдите в учетную запись Azure с помощью команды Connect-AzAccount.

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

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

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

  1. Используйте Командлет New-AzResourceGroup , чтобы создать группу ресурсов, содержащую ресурсы.

    New-AzResourceGroup -Name "<myResourceGroup>" -Location "<myAzureRegion>"
    
  2. Используйте командлет New-AzVirtualNetworkSubnetConfig для создания конфигурации подсети.

    $subnet = New-AzVirtualNetworkSubnetConfig `
      -Name "<mySubnet>" `
      -AddressPrefix "<192.168.1.0/24>"
    
  3. Используйте Командлет New-AzVirtualNetwork для создания виртуальной сети с подсетью.

    $vnet = New-AzVirtualNetwork -ResourceGroupName "<myResourceGroup>" `
      -Location "<myAzureRegion>" `
      -Name "<myVnet>" `
      -AddressPrefix "<192.168.0.0/16>" `
      -Subnet $Subnet
    

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

  1. Группа безопасности сети (NSG) содержит несколько правил по умолчанию, одно из которых отключает весь входящий доступ из Интернета. Используйте Командлет New-AzNetworkSecurityRuleConfig , чтобы создать новое правило, позволяющее удаленно подключаться к виртуальной машине по протоколу удаленного рабочего стола (RDP).

    $rdp = New-AzNetworkSecurityRuleConfig `
      -Name "Allow-RDP-All" `
      -Description "Allow RDP" `
      -Access Allow `
      -Protocol Tcp `
      -Direction Inbound `
      -Priority 100 `
      -SourceAddressPrefix * `
      -SourcePortRange * `
      -DestinationAddressPrefix * `
      -DestinationPortRange 3389
    
  2. Используйте Командлет New-AzNetworkSecurityGroup , чтобы создать группу безопасности сети и назначить Allow-RDP-All правило группе безопасности сети.

    $nsg = New-AzNetworkSecurityGroup `
      -ResourceGroupName "<myResourceGroup>" `
      -Location "<myAzureRegion>" `
      -Name "<myNsg>" `
      -SecurityRules $rdp
    
  3. Используйте командлет Set-AzVirtualNetworkSubnetConfig , чтобы связать группу безопасности сети с подсетью. Правила NSG действуют для всех ресурсов, развернутых в подсети.

    Set-AzVirtualNetworkSubnetConfig `
      -VirtualNetwork $vnet `
      -Name "<mySubnet>" `
      -AddressPrefix "<192.168.1.0/24>" `
      -NetworkSecurityGroup $nsg
    

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

  1. Создайте общедоступный IP-адрес с помощью командлета New-AzPublicIpAddress. Виртуальной машине не требуется общедоступный IP-адрес, если вы не обращаетесь к ней из Интернета, но для выполнения действий, описанных в этой статье, вам нужен общедоступный IP-адрес.

    $publicIp = New-AzPublicIpAddress `
      -ResourceGroupName "<myResourceGroup>" `
      -Name "<myPublicIp>" `
      -Location "<myAzureRegion>" `
      -AllocationMethod Dynamic
    
  2. Используйте Командлет New-AzNetworkInterface для создания сетевого интерфейса (NIC) с включенным ускорением сети и назначения общедоступного IP-адреса сетевому адаптеру.

    $nic = New-AzNetworkInterface `
      -ResourceGroupName "<myResourceGroup>" `
      -Name "<myNic>" `
      -Location "<myAzureRegion>" `
      -SubnetId $vnet.Subnets[0].Id `
      -PublicIpAddressId $publicIp.Id `
      -EnableAcceleratedNetworking
    

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

  1. Используйте Get-Credential , чтобы задать имя пользователя и пароль для виртуальной машины и сохранить их в переменной $cred .

    $cred = Get-Credential
    
  2. Используйте Командлет New-AzVMConfig , чтобы определить виртуальную машину с размером виртуальной машины, поддерживающей ускорение сети, как указано в разделе Ускоренная сеть Windows. Список всех размеров и характеристик виртуальных машин Windows см. в статье Размеры виртуальных машин Windows.

    $vmConfig = New-AzVMConfig -VMName "<myVm>" -VMSize "Standard_DS4_v2"
    
  3. Используйте Set-AzVMOperatingSystem и Set-AzVMSourceImage для создания остальной части конфигурации виртуальной машины. В следующем примере создается виртуальная машина Windows Server 2019 Datacenter:

    $vmConfig = Set-AzVMOperatingSystem -VM $vmConfig `
      -Windows `
      -ComputerName "<myVM>" `
      -Credential $cred `
      -ProvisionVMAgent `
      -EnableAutoUpdate
    $vmConfig = Set-AzVMSourceImage -VM $vmConfig `
      -PublisherName "MicrosoftWindowsServer" `
      -Offer "WindowsServer" `
      -Skus "2019-Datacenter" `
      -Version "latest"
    
  4. Используйте командлет Add-AzVMNetworkInterface , чтобы подключить ранее созданный сетевой адаптер к виртуальной машине.

    $vmConfig = Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id
    
  5. Используйте Командлет New-AzVM , чтобы создать виртуальную машину с включенным ускорением сети.

    New-AzVM -VM $vmConfig -ResourceGroupName "<myResourceGroup>" -Location "<myAzureRegion>"
    

Убедитесь, что контроллер Ethernet установлен

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

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

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

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

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

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

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

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

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

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

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

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

Примечание

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

netsh int tcp set global rss = enabled

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

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

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

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

  1. Остановите или освободите виртуальную машину. В случае с группой доступности сделайте это со всеми виртуальными машинами в наборе:

    Stop-AzVM -ResourceGroup "<myResourceGroup>" -Name "<myVM>"
    

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

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

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

    $nic = Get-AzNetworkInterface -ResourceGroupName "<myResourceGroup>" -Name "<myNic>"
    
    $nic.EnableAcceleratedNetworking = $true
    
    $nic | Set-AzNetworkInterface
    
  3. Перезапустите виртуальную машину или все виртуальные машины в группе доступности и убедитесь, что включена ускоренная сеть.

    Start-AzVM -ResourceGroup "<myResourceGroup>" -Name "<myVM>"
    

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

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

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

    Stop-AzVmss -ResourceGroupName "<myResourceGroup>" -VMScaleSetName "<myScaleSet>"
    
  2. Обновите свойство Accelerated Networking в сетевом адаптере:

    $vmss = Get-AzVmss -ResourceGroupName "<myResourceGroup>" -VMScaleSetName "<myScaleSet>"
    
    $vmss.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations[0].EnableAcceleratedNetworking = $true
    
    Update-AzVmss 
      -ResourceGroupName "<myResourceGroup>" `
      -VMScaleSetName "<myScaleSet>" `
      -VirtualMachineScaleSet $vmss
    
  3. Масштабируемые наборы виртуальных машин имеет политику обновления, которая применяет обновления с помощью автоматических, последовательных или ручных параметров. Задайте для политики обновления значение автоматического, чтобы изменения сразу же были внесены.

    $vmss.UpgradePolicy.Mode = "Automatic"
    
    Update-AzVmss 
      -ResourceGroupName "<myResourceGroup>" `
      -VMScaleSetName "<myScaleSet>" `
      -VirtualMachineScaleSet $vmss
    
  4. Перезапустите масштабируемый набор.

    Start-AzVmss -ResourceGroupName "<myResourceGroup>" -VMScaleSetName "<myScaleSet>"
    

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

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

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

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

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

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

Примечание

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

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

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

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

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

Дальнейшие действия