Een virtuele machine met versneld netwerken maken

In deze zelfstudie leert u hoe u een virtuele Linux-machine (VM) maakt met versneld netwerken. Zie Een Windows-VM maken met versneld netwerken voor het maken van een Windows-VM met versneld netwerken. 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 de latentie, jitter en CPU-gebruik worden verkleind voor gebruik met de meest veeleisende netwerkworkloads op ondersteunde VM-typen. In de volgende afbeelding ziet u de communicatie tussen twee VM's met en zonder versneld netwerken:

Vergelijking

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. Lees het artikel Hyper-V-netwerkvirtualisatie en virtuele switch voor meer informatie over virtuele switches.

Met versneld netwerken komt netwerkverkeer binnen bij de netwerkinterface (NIC) van de virtuele machine en wordt het vervolgens doorgestuurd naar de virtuele machine. Alle netwerkbeleidsregels die op de virtuele switch van toepassing zijn, worden nu ge-offload en toegepast op hardware. Door beleid toe te passen op hardware kan de NIC netwerkverkeer rechtstreeks doorsturen naar de virtuele machine, waardoor de host en de virtuele switch worden omzeild, terwijl alle beleid wordt behouden dat op de host wordt toegepast.

De voordelen van versneld netwerken zijn alleen van toepassing op de VM die is ingeschakeld. Voor het beste resultaat is het ideaal om deze functie in teschakelen op ten minste twee virtuele machines die zijn verbonden met hetzelfde virtuele Azure-netwerk (VNet). Wanneer u communiceert tussen VNets 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 verwijdert uit het gegevenspad, wordt de tijd die pakketten in de host besteden voor beleidsverwerking verwijderd en wordt het aantal pakketten verhoogd dat in de virtuele machine kan worden verwerkt.
  • Minder jitter: De verwerking van virtuele switchs is afhankelijk van de hoeveelheid beleid die moet worden toegepast en de werkbelasting van de CPU die de verwerking doet. Het offloaden van het afdwingen van beleid naar de hardware verwijdert die variabiliteit door pakketten rechtstreeks aan de VM te leveren, waardoor de communicatie van de host naar de VM en alle software-interrupts en contextswitches worden verwijderd.
  • Verlaagd 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 distributies worden out-of-the-box ondersteund vanuit de Azure Gallery:

  • Ubuntu 14.04 met de kernel linux-azure
  • Ubuntu 16.04 of hoger
  • SLES12 SP3 of hoger
  • RHEL 7.4 of hoger
  • CentOS 7.4 of hoger
  • CoreOS Linux
  • Debian 'Stretch' met backports-kernel, Debian " Gaan" of hoger
  • Oracle Linux 7.4 en hoger met Red Hat Compatible Kernel (RHCK)
  • Oracle Linux 7.5 en hoger met UEK-versie 5
  • FreeBSD 10.4, 11.1 & 12.0 of hoger

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, zorg er dan voor dat u over de vereiste stuurprogramma's voor het werken met Mellanox ConnectX-3 en ConnectX-4 Lx NIC's in Azure zorgt.

Regio's

Beschikbaar in alle openbare Azure-regio's en Azure Government Clouds.

Versneld netwerken inschakelen op een VM die wordt uitgevoerd

Voor een ondersteunde VM-grootte zonder versnelde 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.

Een linux-VM maken met versneld netwerken van Azure

Portal maken

Hoewel dit artikel stappen bevat voor het maken van een virtuele machine met versneld netwerken met behulp van de Azure CLI, kunt u ook een virtuele machine met versneld netwerken maken met behulp van de Azure Portal. Wanneer u een virtuele machine maakt in de portal, kiest u op de blade Een virtuele machine maken het tabblad Netwerken. Op dit tabblad is er een optie voor Versneld netwerken. Als u een ondersteund besturingssysteem en VM-grootte hebtgekozen, wordt deze optie automatisch ingevuld op 'Aan'. Zo niet, dan wordt de optie Uit ingevuld voor Versneld netwerken en wordt de gebruiker een reden geven waarom deze niet is ingeschakeld.

  • Opmerking: 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 de virtuele machine is gemaakt, kunt u bevestigen dat Versneld netwerken is ingeschakeld door de instructies te volgen in Bevestigen dat versneld netwerken is ingeschakeld.

CLI maken

Een virtueel netwerk maken

Installeer de nieuwste Versie van Azure CLI en meld u aan bij een Azure-account met az login. Vervang in de volgende voorbeelden voorbeeldparameternamen door uw eigen waarden. Voorbeeld van parameternamen zijn myResourceGroup, myNic en myVm.

Maak een resourcegroep maken met az group create. In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt op de locatie centralus:

az group create --name myResourceGroup --location centralus

Selecteer een ondersteunde Linux-regio die wordt vermeld in versneld Linux-netwerken.

Maak een virtueel netwerk met az network vnet create. In het volgende voorbeeld wordt een virtueel netwerk met de naam myVnet gemaakt met één subnet:

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

Een netwerkbeveiligingsgroep maken

Maak een netwerkbeveiligingsgroep met az network nsg create. In het volgende voorbeeld wordt een netwerkbeveiligingsgroep met de naam myNetworkSecurityGroup gemaakt:

az network nsg create \
    --resource-group myResourceGroup \
    --name myNetworkSecurityGroup

De netwerkbeveiligingsgroep bevat verschillende standaardregels, waarvan één alle binnenkomende toegang via internet uit schakelen. Open een poort om SSH-toegang tot de virtuele machine toe te staan met az network nsg rule create:

az network nsg rule create \
  --resource-group myResourceGroup \
  --nsg-name myNetworkSecurityGroup \
  --name Allow-SSH-Internet \
  --access Allow \
  --protocol Tcp \
  --direction Inbound \
  --priority 100 \
  --source-address-prefix Internet \
  --source-port-range "*" \
  --destination-address-prefix "*" \
  --destination-port-range 22

Een netwerkinterface met versneld netwerken maken

Maak een openbaar IP-adres met az network public-ip create. Een openbaar IP-adres is niet vereist als u niet van plan bent om via internet toegang te krijgen tot de virtuele machine, maar om de stappen in dit artikel uit te voeren, is dit vereist.

az network public-ip create \
    --name myPublicIp \
    --resource-group myResourceGroup

Maak een netwerkinterface met az network nic create met versnelde netwerken ingeschakeld. In het volgende voorbeeld wordt een netwerkinterface met de naam myNic gemaakt in het subnet mySubnet van het virtuele netwerk myVnet en wordt de netwerkbeveiligingsgroep myNetworkSecurityGroup aan de netwerkinterface koppelt:

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

Een VM maken en de NIC koppelen

Wanneer u de VM maakt, geeft u de NIC op die u hebt gemaakt met --nics . Selecteer een grootte en distributie die worden vermeld in Versneld netwerken van Linux.

Maak een VM met az vm create. In het volgende voorbeeld wordt een VM met de naam myVM gemaakt met de UbuntuLTS-installatie afbeelding en een grootte die ondersteuning biedt voor versneld netwerken (Standard_DS4_v2):

az vm create \
    --resource-group myResourceGroup \
    --name myVM \
    --image UbuntuLTS \
    --size Standard_DS4_v2 \
    --admin-username azureuser \
    --generate-ssh-keys \
    --nics myNic

Zie Linux VM-grootten voor een lijst met alle VM-grootten en -kenmerken.

Zodra de VM is gemaakt, wordt uitvoer geretourneerd die vergelijkbaar is met de volgende voorbeelduitvoer. Let op het openbare IP-adres. Dit adres wordt gebruikt voor toegang tot de VM in de volgende stappen.

{
  "fqdns": "",
  "id": "/subscriptions/<ID>/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"
}

Controleren of versneld netwerken is ingeschakeld

Gebruik de volgende opdracht om voor de VM een SSH-sessie te maken. Vervang door het openbare IP-adres dat is toegewezen aan de virtuele machine die u hebt gemaakt en vervang azureuser als u een andere waarde hebt gebruikt voor bij het maken <your-public-ip-address> van de virtuele --admin-username machine.

ssh azureuser@<your-public-ip-address>

Voer in de Bash-shell in uname -r en bevestig dat de kernelversie een van de volgende versies is, of hoger:

  • Ubuntu 16.04: 4.11.0-1013
  • SLES SP3: 4.4.92-6.18
  • RHEL: 3.10.0-693
  • CentOS: 3.10.0-693

Controleer met de opdracht of het Mellanox VF-apparaat is blootgesteld aan de lspci VM. De geretourneerde uitvoer is vergelijkbaar met de volgende uitvoer:

0000:00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (rev 03)
0000:00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 01)
0000:00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
0000:00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02)
0000:00:08.0 VGA compatible controller: Microsoft Corporation Hyper-V virtual VGA
0001:00:02.0 Ethernet controller: Mellanox Technologies MT27500/MT27520 Family [ConnectX-3/ConnectX-3 Pro Virtual Function]

Controleer op activiteit op de VF (virtuele functie) met de ethtool -S eth0 | grep vf_ opdracht . Als u uitvoer ontvangt die vergelijkbaar is met de volgende voorbeelduitvoer, is versneld netwerken ingeschakeld en werkt het.

vf_rx_packets: 992956
vf_rx_bytes: 2749784180
vf_tx_packets: 2656684
vf_tx_bytes: 1099443970
vf_tx_dropped: 0

Versneld netwerken is nu ingeschakeld voor uw VM.

Dynamische binding en intrekking van virtuele functie verwerken

Toepassingen moeten worden uitgevoerd via de synthetische NIC die wordt blootgesteld in de VM. Als de toepassing rechtstreeks via de VF-NIC wordt uitgevoerd, ontvangt deze niet alle pakketten die zijn bestemd voor de VM, omdat sommige pakketten via de synthetische interface worden weer geven. Als u een toepassing via de synthetische NIC uitvoeren, garandeert deze dat de toepassing alle pakketten die zijn bestemd voor de toepassing ontvangt. Het zorgt er ook voor dat de toepassing actief blijft, zelfs als de VF wordt ingetrokken wanneer de host wordt uitgevoerd. Toepassingen die zijn gebonden aan de synthetische NIC is een verplichte vereiste voor alle toepassingen die profiteren van versneld netwerken.

Versneld netwerken op bestaande VM's inschakelen

Als u een VM hebt gemaakt zonder versneld netwerken, is het mogelijk om deze functie in teschakelen op een bestaande VM. De VM moet versneld 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 VMSS moeten worden gestopt/de toewijzing ervan moet worden verbreed voordat versneld netwerken op een NIC wordt inschakelen

Afzonderlijke VM's & VM's in een beschikbaarheidsset

Stop eerst de VM of, als er een beschikbaarheidsset is, alle VM's in de set:

az vm deallocate \
    --resource-group myResourceGroup \
    --name myVM

Houd er rekening mee dat als uw VM afzonderlijk is gemaakt, zonder beschikbaarheidsset, u alleen de afzonderlijke VM hoeft te stoppen of de toewijzing ervan op te geven om versneld netwerken in te kunnenschakelen. Als uw VM is gemaakt met een beschikbaarheidsset, moeten alle VM's in de beschikbaarheidsset worden gestopt of de toewijzing ervan inschakelen voordat versneld netwerken op een van de NIC's wordt inschakelen.

Schakel na het stoppen versneld netwerken in op de NIC van uw VM:

az network nic update \
    --name myNic \
    --resource-group myResourceGroup \
    --accelerated-networking true

Start de VM opnieuw op of, indien in een beschikbaarheidsset, alle VM's in de set en controleer of Versneld netwerken is ingeschakeld:

az vm start --resource-group myResourceGroup \
    --name myVM

VMSS

VMSS is iets anders, maar volgt dezelfde werkstroom. Stop eerst de VM's:

az vmss deallocate \
    --name myvmss \
    --resource-group myrg

Zodra de VM's zijn gestopt, moet u de eigenschap Versneld netwerken bijwerken onder de netwerkinterface:

az vmss update --name myvmss \
    --resource-group myrg \
    --set virtualMachineProfile.networkProfile.networkInterfaceConfigurations[0].enableAcceleratedNetworking=true

Een VMSS 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 wijzigingen direct na het opnieuw opstarten door de VMSS worden opgehaald. Als u deze wilt instellen op automatisch, zodat de wijzigingen onmiddellijk worden opgehaald:

az vmss update \
    --name myvmss \
    --resource-group myrg \
    --set upgradePolicy.mode="automatic"

Start ten slotte de VMSS opnieuw op:

az vmss start \
    --name myvmss \
    --resource-group myrg

Nadat u de VF opnieuw hebt opgestart, wacht u tot de upgrades zijn voltooid, maar zodra deze is voltooid, wordt de VF in de VM weergegeven. (Zorg ervoor dat u een ondersteund besturingssysteem en een ondersteunde VM-grootte gebruikt.)

Het formaat van bestaande VM's met versneld netwerken

VM's met versneld netwerken ingeschakeld kunnen alleen worden gedimd tot VM's die ondersteuning bieden voor versneld netwerken.

Een VM met versneld netwerken ingeschakeld 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:

  • Stop de VM of wijs de toewijzing van de VM op of stop alle VM's in de set/VMSS als deze zich in een beschikbaarheidsset/VMSS of wijs de toewijzing ervan op.
  • Versneld netwerken moet worden uitgeschakeld op de NIC van de VM of in een beschikbaarheidsset/VMSS moeten alle VM's in de set/VMSS zijn uitgeschakeld.
  • Zodra versneld netwerken is uitgeschakeld, kan de VM/beschikbaarheidsset/VMSS worden verplaatst naar een nieuwe grootte die geen ondersteuning biedt voor versneld netwerken en opnieuw wordt opgestart.