Een Windows-VM met versneld netwerken maken met behulp van Azure PowerShell

In deze zelfstudie leert u hoe u een virtuele Windows machine (VM) kunt maken met versneld netwerken.

Notitie

Zie Create a Linux VM with accelerated networking(Een virtuele Linux-machine met versneld netwerken maken) als u versneld netwerken wilt gebruiken met een virtuele Linux-machine.

Met Versnelde netwerken wordt I/O-virtualisatie met één hoofdmap (SR-IOV) mogelijk voor een VM, waarmee de netwerkprestaties van de VM aanzienlijk worden verbeterd. Dit pad met hoge prestaties omzeilt de host van het gegevenspad, waardoor latentie, jitter en CPU-gebruik worden verminderd voor de meest veeleisende netwerkworkloads op ondersteunde VM-typen. In het volgende diagram ziet u hoe twee VM's communiceren met en zonder versneld netwerken:

Communicatie tussen virtuele Azure-machines met en zonder versneld netwerken

Zonder versneld netwerken moet al het netwerkverkeer naar en van de virtuele machine de host en de virtuele switch doorlopen. De virtuele switch biedt alle beleids afdwinging, zoals netwerkbeveiligingsgroepen, toegangsbeheerlijsten, isolatie en andere gevirtualiseerde netwerkservices voor netwerkverkeer.

Notitie

Zie voor meer informatie over virtuele switches Hyper-V Virtual Switch.

Met versneld netwerken komt netwerkverkeer binnen bij de netwerkinterface (NIC) van de VM en wordt het vervolgens doorgestuurd naar de VM. Alle netwerkbeleidsregels die op de virtuele switch van toepassing zijn, worden nu ge-offload en toegepast op hardware. Omdat beleid wordt toegepast op hardware, kan de NIC netwerkverkeer rechtstreeks doorsturen naar de VM. De NIC omzeilt de host en de virtuele switch, terwijl alle beleid wordt toegepast op de host onderhouden.

De voordelen van versneld netwerken zijn alleen van toepassing op de VM die is ingeschakeld. Voor het beste resultaat kunt u deze functie inschakelen op ten minste twee virtuele machines die zijn verbonden met hetzelfde virtuele Azure-netwerk. Wanneer u communiceert tussen virtuele netwerken of on-premises verbinding maakt, heeft deze functie minimale gevolgen voor de algehele latentie.

Voordelen

  • Lagere latentie/hogere pakketten per seconde (pps) : Als u de virtuele switch uit het gegevenspad verwijdert, worden de tijdpakketten in de host voor beleidsverwerking verwijderd. Het verhoogt ook het aantal pakketten dat in de VM kan worden verwerkt.

  • Minder jitter: de verwerking van virtuele switchs is afhankelijk van de hoeveelheid beleid die moet worden toegepast. Het is ook afhankelijk van de workload van de CPU die de verwerking doet. Door het afdwingen van het beleid naar de hardware te offloaden, wordt die variabiliteit verwijderd door pakketten rechtstreeks aan de VM te leveren. Offloading verwijdert ook de communicatie tussen de host en de VM, alle software-interrupts en alle contextswitches.

  • Minder CPU-gebruik: het omzeilen van de virtuele switch in de host leidt tot minder CPU-gebruik voor het verwerken van netwerkverkeer.

Ondersteunde besturingssystemen

De volgende versies van Windows worden ondersteund:

  • Windows Server 2019 Standard/Datacenter
  • Windows Server 2016 Standard/Datacenter
  • Windows Server 2012 R2 Standard/Datacenter

Beperkingen

Ondersteunde VM-exemplaren

Versneld netwerken wordt ondersteund voor de meeste algemene en voor rekenkracht geoptimaliseerde exemplaargrootten met 2 of meer vCCPUs. Op exemplaren die hyperthreading ondersteunen, wordt versneld netwerken ondersteund op VM-exemplaren met 4 of meer vCCSU's.

Ondersteuning voor versneld netwerken vindt u in de documentatie over de grootte van afzonderlijke virtuele machines.

Aangepaste installatiekopieën

Als u een aangepaste afbeelding gebruikt en uw afbeelding versneld netwerken ondersteunt, moet u ervoor zorgen dat u de vereiste stuurprogramma's hebt die werken met Mellanox ConnectX-3 en ConnectX-4 Lx NIC's in Azure.

Regio's

Versneld netwerken is beschikbaar in alle Azure-regio's wereldwijd en Azure Government Cloud.

Versneld netwerken inschakelen op een virtuele VM die wordt uitgevoerd

Voor een ondersteunde VM-grootte zonder versneld netwerken kan de functie alleen worden ingeschakeld wanneer deze wordt gestopt en de toewijzing ervan wordt teruggezet.

Implementatie via Azure Resource Manager

Virtuele machines (klassiek) kunnen niet worden geïmplementeerd met versneld netwerken.

VM maken met behulp van de portal

Hoewel dit artikel stappen bevat voor het maken van een virtuele machine met versneld netwerken met behulp van Azure PowerShell, kunt u ook de Azure Portal gebruiken om een virtuele machine te maken die versneld netwerken mogelijk maakt. Wanneer u een virtuele machine in de portal maakt, kiest u op de pagina Een virtuele machine maken het tabblad Netwerken. Dit tabblad heeft een optie voor Versneld netwerken. Als u een ondersteund besturingssysteem en VM-grootte hebtgekozen, wordt deze optie automatisch ingesteld op Aan. Anders wordt de optie ingesteld op Uit en geeft Azure de reden weer waarom deze niet kan worden ingeschakeld.

Notitie

Alleen ondersteunde besturingssystemen kunnen worden ingeschakeld via de portal. Als u een aangepaste afbeelding gebruikt en uw afbeelding ondersteuning biedt voor versneld netwerken, maakt u uw VM met cli of PowerShell.

Nadat u de VM hebt maken, kunt u controleren of versneld netwerken is ingeschakeld. Volg deze instructies:

  1. Ga naar de Azure Portal om uw VM's te beheren. Zoek en selecteer virtuele machines.

  2. Kies uw nieuwe virtuele machine in de lijst met virtuele machines.

  3. Kies Netwerken in de menubalk van de VM.

In de netwerkinterfacegegevens, naast het label Versneld netwerken, wordt in de portal uitgeschakeld of ingeschakeld weergegeven voor de status van versneld netwerken.

VM maken met Behulp van PowerShell

Voordat u doorgaat, installeert Azure PowerShell versie 1.0.0 of hoger. Voer uit om de momenteel geïnstalleerde versie te Get-Module -ListAvailable Az vinden. Als u de az-module wilt installeren of upgraden, installeert u de nieuwste versie van de Az-module PowerShell Gallery. Meld u in een PowerShell-sessie aan bij een Azure-account met Verbinding maken-AzAccount.

Vervang in de volgende voorbeelden voorbeeldparameternamen door uw eigen waarden. Voorbeeld van parameternamen zijn myResourceGroup, myNic en myVM.

Een virtueel netwerk maken

  1. Maak een resourcegroep met behulp van de opdracht New-AzResourceGroup. Met de volgende opdracht maakt u een resourcegroep met de naam myResourceGroup op de locatie centralus:

    New-AzResourceGroup -Name "myResourceGroup" -Location "centralus"
    
  2. Maak een subnetconfiguratie met New-AzVirtualNetworkSubnetConfig. Met de volgende opdracht maakt u een subnet met de naam mySubnet:

    $subnet = New-AzVirtualNetworkSubnetConfig `
        -Name "mySubnet" `
        -AddressPrefix "192.168.1.0/24"
    
  3. Maak een virtueel netwerk met New-AzVirtualNetworkmet het subnet mySubnet.

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

Een netwerkbeveiligingsgroep maken

  1. Maak een netwerkbeveiligingsgroepsregel met New-AzNetworkSecurityRuleConfig.

    $rdp = New-AzNetworkSecurityRuleConfig `
        -Name 'Allow-RDP-All' `
        -Description 'Allow RDP' `
        -Access Allow `
        -Protocol Tcp `
        -Direction Inbound `
        -Priority 100 `
        -SourceAddressPrefix * `
        -SourcePortRange * `
        -DestinationAddressPrefix * `
        -DestinationPortRange 3389
    
  2. Maak een netwerkbeveiligingsgroep met New-AzNetworkSecurityGroup en wijs er de beveiligingsregel Allow-RDP-All aan toe. Afgezien van de regel Allow-RDP-All bevat de netwerkbeveiligingsgroep verschillende standaardregels. Met één standaardregel wordt alle binnenkomende toegang via internet uitgeschakeld. Zodra deze is gemaakt, wordt de regel Allow-RDP-All toegewezen aan de netwerkbeveiligingsgroep, zodat u op afstand verbinding kunt maken met de VM.

    $nsg = New-AzNetworkSecurityGroup `
        -ResourceGroupName myResourceGroup `
        -Location centralus `
        -Name "myNsg" `
        -SecurityRules $rdp
    
  3. Koppel de netwerkbeveiligingsgroep aan het subnet mySubnet met Set-AzVirtualNetworkSubnetConfig. De regel in de netwerkbeveiligingsgroep is van kracht voor alle resources die in het subnet zijn geïmplementeerd.

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

Een netwerkinterface met versneld netwerken maken

  1. Maak een openbaar IP-adres met New-AzPublicIpAddress. Een openbaar IP-adres is niet nodig als u niet van plan bent om via internet toegang te krijgen tot de VM. Het is echter vereist om de stappen in dit artikel uit te voeren.

    $publicIp = New-AzPublicIpAddress `
        -ResourceGroupName myResourceGroup `
        -Name 'myPublicIp' `
        -location centralus `
        -AllocationMethod Dynamic
    
  2. Maak een netwerkinterface met New-AzNetworkInterface met ingeschakelde versneld netwerken en wijs het openbare IP-adres toe aan de netwerkinterface. In het volgende voorbeeld wordt een netwerkinterface met de naam myNic gemaakt in het subnet mySubnet van het virtuele netwerk myVnet en wordt het openbare IP-adres myPublicIp aan het netwerk toegewezen:

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

Een VM maken en de netwerkinterface koppelen

  1. Stel uw VM-referenties in op de $cred variabele met behulp van Get-Credential, waarmee u wordt gevraagd om u aan te melden:

    $cred = Get-Credential
    
  2. Definieer uw VM met New-AzVMConfig. Met de volgende opdracht definieert u een VM met de naam myVM met een VM-grootte die ondersteuning biedt voor versneld netwerken (Standard_DS4_v2):

    $vmConfig = New-AzVMConfig -VMName "myVm" -VMSize "Standard_DS4_v2"
    

    Zie VM-grootten Windows een lijst met alle VM-grootten en -kenmerken.

  3. Maak de rest van uw VM-configuratie met Set-AzVMOperatingSystem en Set-AzVMSourceImage. Met de volgende opdracht wordt een virtuele Windows Server 2016 gemaakt:

    $vmConfig = Set-AzVMOperatingSystem -VM $vmConfig `
        -Windows `
        -ComputerName "myVM" `
        -Credential $cred `
        -ProvisionVMAgent `
        -EnableAutoUpdate
    $vmConfig = Set-AzVMSourceImage -VM $vmConfig `
        -PublisherName "MicrosoftWindowsServer" `
        -Offer "WindowsServer" `
        -Skus "2016-Datacenter" `
        -Version "latest"
    
  4. Koppel de netwerkinterface die u eerder hebt gemaakt met Add-AzVMNetworkInterface:

    $vmConfig = Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id
    
  5. Maak uw VM met New-AzVM.

    New-AzVM -VM $vmConfig -ResourceGroupName "myResourceGroup" -Location "centralus"
    

Controleer of de Ethernet-controller is geïnstalleerd in de Windows VM

Zodra u de VM in Azure hebt maken, maakt u verbinding met de VM en bevestigt u dat de Ethernet-controller is geïnstalleerd in Windows.

  1. Ga naar de Azure Portal om uw VM's te beheren. Zoek en selecteer virtuele machines.

  2. Kies uw nieuwe virtuele machine in de lijst met virtuele machines.

  3. Als op de overzichtspagina van de VM de Status van de VM wordt vermeld als Maken, wacht u totdat Azure klaar is met het maken van de VM. De Status wordt gewijzigd in Wordt uitgevoerd nadat het maken van de VM is voltooid.

  4. Selecteer in de overzichtswerkbalk van de virtuele Verbinding maken > RDP-bestand > downloaden.

  5. Open het RDP-bestand en meld u aan bij de VM met de referenties die u hebt ingevoerd in de sectie Een VM maken en voeg de netwerkinterface toe. Als u nog nooit verbinding hebt gemaakt met een Windows-VM in Azure, Verbinding maken met de virtuele machine.

  6. Nadat de extern bureaublad-sessie voor uw VM wordt weergegeven, klikt u met de rechtermuisknop op de Windows Startknop en kiest u Apparaatbeheer.

  7. Vouw in Apparaatbeheer het knooppunt Netwerkadapters uit.

  8. Controleer of de Mellanox ConnectX-3 Virtual Function Ethernet Adapter wordt weergegeven, zoals wordt weergegeven in de volgende afbeelding:

    Mellanox ConnectX-3 Virtual Function Ethernet Adapter, nieuwe netwerkadapter voor versneld netwerken, Apparaatbeheer

Versneld netwerken is nu ingeschakeld voor uw VM.

Notitie

Als de Mellanox-adapter niet kan worden geopend, opent u een beheerdersprompt in de sessie met extern bureaublad en voert u de volgende opdracht in:

netsh int tcp set global rss = enabled

Versneld netwerken inschakelen op bestaande VM's

Als u een VM hebt gemaakt zonder versneld netwerken, kunt u deze functie inschakelen op een bestaande VM. De VM moet versnelde netwerken ondersteunen door te voldoen aan de volgende vereisten, die hierboven ook worden beschreven:

  • De VM moet een ondersteunde grootte hebben voor versneld netwerken.
  • De VM moet een ondersteunde Azure Gallery-afbeelding (en kernelversie voor Linux) zijn.
  • Alle VM's in een beschikbaarheidsset of virtuele-machineschaalset moeten worden gestopt of de toewijzing ervan moet worden ingehouden voordat u versneld netwerken op een NIC inschakelen.

Afzonderlijke VM's en VM's in een beschikbaarheidsset

  1. Stop of wijs de toewijzing van de VM af, of, als er een beschikbaarheidsset is, alle VM's in de set:

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

    Notitie

    Wanneer u een VM afzonderlijk maakt, zonder beschikbaarheidsset, hoeft u alleen de afzonderlijke VM te stoppen of de toewijzing ervan op te geven om versneld netwerken mogelijk te maken. Als uw VM is gemaakt met een beschikbaarheidsset, moet u alle VM's in de beschikbaarheidsset stoppen of de toewijzing ervan in de beschikbaarheidsset inschakelen voordat u versneld netwerken inschakelen op een van de NIC's, zodat de VM's in een cluster eindigen dat ondersteuning biedt voor versneld netwerken. De vereiste voor stoppen of de toewijzing ervan is niet nodig als u versneld netwerken uit schakelen, omdat clusters die ondersteuning bieden voor versneld netwerken ook prima werken met NIC's die geen gebruik maken van versneld netwerken.

  2. Versneld netwerken inschakelen op de NIC van uw VM:

    $nic = Get-AzNetworkInterface -ResourceGroupName "myResourceGroup" `
        -Name "myNic"
    
    $nic.EnableAcceleratedNetworking = $true
    
    $nic | Set-AzNetworkInterface
    
  3. Start de VM opnieuw op of, indien in een beschikbaarheidsset, alle VM's in de set en controleer of versneld netwerken is ingeschakeld:

    Start-AzVM -ResourceGroup "myResourceGroup" `
        -Name "myVM"
    

Schaalset voor virtuele machines

Een virtuele-machineschaalset is iets anders, maar volgt dezelfde werkstroom.

  1. Stop de VM's:

    Stop-AzVmss -ResourceGroupName "myResourceGroup" `
        -VMScaleSetName "myScaleSet"
    
  2. Werk de eigenschap versneld netwerken bij onder de netwerkinterface:

    $vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" `
        -VMScaleSetName "myScaleSet"
    
    $vmss.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations[0].EnableAcceleratedNetworking = $true
    
    Update-AzVmss -ResourceGroupName "myResourceGroup" `
        -VMScaleSetName "myScaleSet" `
        -VirtualMachineScaleSet $vmss
    
  3. Stel de toegepaste updates in op automatisch, zodat de wijzigingen onmiddellijk worden doorgevoerd:

    $vmss.UpgradePolicy.Mode = "Automatic"
    
    Update-AzVmss -ResourceGroupName "myResourceGroup" `
        -VMScaleSetName "myScaleSet" `
        -VirtualMachineScaleSet $vmss
    

    Notitie

    Een schaalset heeft VM-upgrades die updates toepassen met behulp van drie verschillende instellingen: automatisch, rolling en handmatig. In deze instructies wordt het beleid ingesteld op automatisch, zodat de schaalset de wijzigingen direct na het opnieuw opstarten oppiegt.

  4. Start de schaalset opnieuw op:

    Start-AzVmss -ResourceGroupName "myResourceGroup" `
        -VMScaleSetName "myScaleSet"
    

Nadat u opnieuw hebt opgestart, wacht u tot de upgrades zijn voltooien. Nadat de upgrades zijn uitgevoerd, wordt de virtuele functie (VF) in de virtuele machine weergegeven. Zorg ervoor dat u een ondersteund besturingssysteem en een ondersteunde VM-grootte gebruikt.

Het formaat van bestaande VM's met versneld netwerken

Als voor een VM versneld netwerken zijn ingeschakeld, kunt u de VM alleen de ize ervan naar een VM die versnelde netwerken ondersteunt.

Een VM met versneld netwerken kan niet worden gesizeed naar een VM-exemplaar dat geen ondersteuning biedt voor versneld netwerken met behulp van de bewerking voor het opnieuw iseren. In plaats daarvan kunt u het ize van een van deze VM's als volgende gebruiken:

  1. Stop of wijs de toewijzing van de VM af. Voor een beschikbaarheidsset of schaalset moet u alle VM's in de beschikbaarheidsset of schaalset stoppen of de toewijzing ervan in de schaalset op de schalen.

  2. Schakel versneld netwerken op de NIC van de VM uit. Schakel voor een beschikbaarheidsset of schaalset versneld netwerken uit op de NIC's van alle VM's in de beschikbaarheidsset of schaalset.

  3. Nadat u versneld netwerken hebt uitgeschakeld, verplaatst u de VM, beschikbaarheidsset of schaalset naar een nieuwe grootte die geen ondersteuning biedt voor versneld netwerken en start u deze opnieuw.