Créer une machine virtuelle Linux avec mise en réseau accélérée à l’aide d’Azure CLI

Création de portail

Bien que cet article fournit des étapes pour créer une machine virtuelle avec mise en réseau accélérée à l’aide de l’interface CLI d’Azure, vous pouvez également Créer une machine virtuelle avec mise en réseau accélérée via le portail Azure. Lorsque vous créez une machine virtuelle dans le portail, dans le panneau Créer une machine virtuelle, choisissez l’onglet Mise en réseau. Cet onglet contient une option Performances réseau accélérées. Si vous avez choisi un système d’exploitation pris en charge et une taille de machine virtuelle, cette option est automatiquement définie sur « Activé ». Dans le cas contraire, l’option est définie sur « Désactivé » pour les performances réseau accélérées et l’utilisateur est informé de la raison pour laquelle elle ne peut pas être activée.
Vous pouvez également activer ou désactiver la mise en réseau accélérée via le portail après la création de la machine virtuelle en accédant à l’interface réseau et en cliquant sur le bouton en haut du panneau Vue d’ensemble.

Notes

Le paramètre Mise en réseau accélérée disponible dans le portail reflète l’état sélectionné par l’utilisateur. AccelNet permet de choisir « Désactivé » même si la taille de machine virtuelle nécessite AccelNet. Pour ces tailles de machine virtuelle requises par AccelNet, AccelNet est activé au moment de l’exécution, quel que soit le paramètre utilisateur affiché dans le portail.

Seuls les systèmes d’exploitation pris en charge peuvent être activés via le portail. Si vous utilisez une image personnalisée, et que votre image prend en charge la mise en réseau accélérée, créez votre machine virtuelle à l’aide de CLI ou de PowerShell.

Une fois la machine virtuelle créée, vous pouvez vérifier que la mise en réseau accélérée est activée en suivant les instructions de confirmation.

Création de CLI

Créez un réseau virtuel

Installez la dernière version d’Azure CLI et connectez-vous à un compte Azure avec az login. Dans les exemples suivants, remplacez les exemples de noms de paramètre par vos propres valeurs. Les noms de paramètre sont par exemple myResourceGroup, myNic et myVm.

Créez un groupe de ressources avec la commande az group create. L’exemple suivant crée un groupe de ressources nommé myResourceGroup à l’emplacement centralus :

az group create --name myResourceGroup --location centralus

Sélectionnez une région Linux prise en charge et répertoriée dans Mise en réseau accélérée Linux.

Créez un réseau virtuel avec la commande az network vnet create. L’exemple suivant crée un réseau virtuel nommé myVnet avec un sous-réseau :

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

Créer un groupe de sécurité réseau

Créez un groupe de sécurité réseau avec la commande az network nsg create. L’exemple suivant crée un groupe de sécurité réseau nommé myNetworkSecurityGroup :

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

Le groupe de sécurité réseau contient plusieurs règles par défaut, dont l’une désactive tous les accès entrants à partir d’Internet. Ouvrez un port pour autoriser l’accès SSH à la machine virtuelle avec 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

Créer une interface réseau avec mise en réseau accélérée

Créez une adresse IP publique avec la commande az network public-ip create. Une adresse IP publique n’est pas requise si vous n’envisagez pas d’accéder à la machine virtuelle à partir d’Internet. Toutefois, il est nécessaire d’effectuer les étapes décrites dans cet article.

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

Créez une interface réseau avec az network nic create, puis activez la mise en réseau accélérée. L’exemple suivant permet de créer une interface réseau nommée myNic dans le sous-réseau mySubnet du réseau virtuel myVnet et de lui associer le groupe de sécurité réseau myNetworkSecurityGroup :

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

Créer une machine virtuelle et attacher la carte réseau

Lorsque vous créez la machine virtuelle, spécifiez la carte réseau que vous avez générée avec --nics. Sélectionnez une taille et une distribution répertoriées dans Mise en réseau accélérée Linux.

Créez une machine virtuelle avec la commande az vm create. L’exemple suivant crée une machine virtuelle nommée myVM avec l’image UbuntuLTS et une taille qui prend en charge la mise en réseau accélérée (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

Pour obtenir la liste de toutes les tailles de machine virtuelle et leurs caractéristiques, consultez Tailles de machines virtuelles Linux.

Une fois que la machine virtuelle est créée, une sortie similaire à la sortie suivante est renvoyée. Veuillez noter publicIpAddress. Cette adresse sera utilisée pour accéder à la machine virtuelle dans les étapes suivantes.

{
  "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"
}

Confirmer l’activation de la mise en réseau accélérée

Utilisez la commande suivante pour créer une session SSH avec la machine virtuelle. Remplacez <your-public-ip-address> par l’adresse IP publique affectée à la machine virtuelle que vous avez créée, puis remplacez <your-public-ip-address> si vous avez utilisé une valeur différente pour --admin-username au moment de la création de la machine virtuelle.

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

À partir de l’interpréteur de commandes Bash, entrez uname -r, puis confirmez que la version du noyau est bien l’une des versions suivantes ou une version supérieure :

  • Ubuntu 16.04 : 4.11.0-1013
  • SLES SP3 : 4.4.92-6.18
  • RHEL : 3.10.0-693, 2.6.32-573*
  • CentOS : 3.10.0-693

Notes

D’autres versions du noyau peuvent être prises en charge. Pour obtenir la liste la plus récente, référencez les tables de compatibilité pour chaque distribution sur les machines virtuelles Linux et FreeBSD prises en charge pour Hyper-V et vérifiez que SR-IOV est pris en charge. Vous trouverez plus d’informations dans les notes de publication pour Linux Integration Services pour Hyper-V et Azure. * Les versions RHEL 6.7 à 6.10 sont prises en charge si la version 4.5 et ultérieure de Mellanox VF est installée avant Linux Integration Services 4.3 et version ultérieure.

Utilisez la commande lspci pour confirmer que l’appareil Mellanox VF est exposé à la machine virtuelle. Le résultat renvoyé ressemble à la sortie suivante :

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]

Utilisez la commande ethtool -S eth0 | grep vf_ pour rechercher l’activité sur VF (fonction virtuelle). Si vous recevez une sortie semblable à l’exemple suivant, la mise en réseau accélérée est donc activée et elle fonctionne.

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

La mise en réseau accélérée est maintenant activée pour votre machine virtuelle.

Gérer la liaison dynamique et la révocation de fonction virtuelle

Les applications doivent s’exécuter via la carte réseau synthétique qui est exposée dans la machine virtuelle. Si l’application s’exécute directement via la carte réseau de fonction virtuelle, elle ne reçoit pas tous les paquets destinés à la machine virtuelle, car certains paquets s’affichent via l’interface synthétique. Si vous exécutez une application via la carte réseau synthétique, ceci garantit que l’application reçoit tous les paquets qui lui sont destinés. Il est par ailleurs certain que l’application continuera à s’exécuter, même si la fonction virtuelle est révoquée pendant la maintenance de l’hôte. La liaison des applications à la carte réseau synthétique est une exigence obligatoire pour toutes les applications tirant parti de la mise en réseau accélérée.

Pour plus de détails sur les exigences de liaison d’application, voir Fonctionnement des performances réseau accélérées dans les machines virtuelles Linux et FreeBSD.

Activer la mise en réseau accélérée sur des machines virtuelles existantes

Si vous avez créé une machine virtuelle sans mise en réseau accélérée, vous pouvez activer cette fonctionnalité sur une machine virtuelle existante. La machine virtuelle doit prendre en charge la mise en réseau accélérée et remplir les prérequis suivants (ces prérequis ont déjà été décrits :

  • La machine virtuelle doit avoir une taille prise en charge pour la mise en réseau accélérée
  • La machine virtuelle doit être une image de la galerie Azure prise en charge (et une version de noyau prise en charge pour Linux)
  • Toutes les machines virtuelles membres d’un groupe à haute disponibilité ou d’un groupe de machines virtuelles identiques doivent être arrêtées ou libérées avant l’activation de la mise en réseau accélérée sur une carte réseau

Machines virtuelles individuelles et machines virtuelles d’un groupe à haute disponibilité

Tout d’abord, arrêtez/libérez la machine virtuelle individuelle ou, dans le cas d’un groupe à haute disponibilité, toutes les machines virtuelles du groupe :

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

Si votre machine virtuelle a été créée individuellement, sans groupe à haute disponibilité, vous devez arrêter ou libérer la machine virtuelle individuelle pour activer la mise en réseau accélérée. Si la machine virtuelle a été créée dans un groupe à haute disponibilité, vous devez arrêter ou libérer toutes les machines virtuelles membres de ce groupe avant d’activer la mise en réseau accélérée sur les cartes réseau.

Après avoir arrêté la machine virtuelle, activez la mise en réseau accélérée sur la carte réseau de la machine virtuelle :

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

Redémarrez la machine virtuelle ou, dans le cas d’un groupe à haute disponibilité, toutes les machines virtuelles du groupe, puis vérifiez que la mise en réseau accélérée est bien activée :

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

Groupe de machines virtuelles identiques (VMSS)

Un groupe de machines virtuelles identiques fonctionne un peu différemment, mais suit le même workflow. Tout d’abord, arrêtez les machines virtuelles :

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

Une fois que les machines virtuelles sont arrêtées, mettez à jour la propriété Accelerated Networking sur l’interface réseau :

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

Notes

Un groupe de machines virtuelles identiques présente des mises à niveau de machines virtuelles qui appliquent des mises à jour à l’aide de trois paramètres différents : automatique, propagée et manuel. Dans ces instructions, la stratégie est définie sur automatique afin que le groupe de machines virtuelles identiques récupère les mises à jour aussitôt après le redémarrage. Pour définir la stratégie sur automatique afin que les mises à jour soient immédiatement récupérées :

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

Enfin, redémarrez le groupe de machines virtuelles identiques :

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

Après le redémarrage, attendez que les mises à niveau se terminent. Vous voyez alors la carte VF apparaître sur la machine virtuelle. (Vérifiez que vous utilisez un système d’exploitation et une taille de machine virtuelle pris en charge.)

Redimensionnement des machines virtuelles existantes avec mise en réseau accélérée

Les machines virtuelles avec mise en réseau accélérée peuvent être redimensionnées uniquement en machines virtuelles qui prennent en charge la mise en réseau accélérée.

Une machine virtuelle avec mise en réseau accélérée ne peut pas être redimensionnée en une instance de machine virtuelle qui ne prend pas en charge la mise en réseau accélérée à l’aide de l’opération de redimensionnement. Pour redimensionner l’une de ces machines virtuelles, vous devez effectuer ces opérations :

  • Arrêtez/libérez la machine virtuelle ou, dans le cas d’un groupe à haute disponibilité ou d’un groupe de machines virtuelles identiques, arrêtez/libérez toutes les machines virtuelles du groupe.
  • Désactivez la mise en réseau accélérée sur la carte réseau de la machine virtuelle ou, dans le cas d’un groupe à haute disponibilité ou d’un groupe de machines virtuelles identiques, de toutes les machines virtuelles du groupe.
  • Une fois que la mise en réseau accélérée est désactivée, redimensionnez la machine virtuelle, ou toutes les machines virtuelles du groupe à haute disponibilité ou du groupe de machines virtuelles identiques, à une nouvelle taille qui ne prend pas en charge la mise en réseau accélérée, et redémarrez la ou les machines.

Étapes suivantes