Utiliser la carte d'interface réseau virtuelle Google


La carte d'interface réseau virtuelle Google (gVNIC) est une interface de réseau virtuel spécialement conçue pour Compute Engine. gVNIC est une alternative au pilote Ethernet basé sur virtIO.

En tant qu'interface réseau de nouvelle génération qui prend la suite de VirtIO, gVNIC remplace VirtIO-Net comme seule interface réseau compatible avec Compute Engine pour tous les nouveaux types de machines (génération 3 et générations ultérieures). Les nouvelles séries de machines et fonctionnalités réseau doivent utiliser gVNIC au lieu de VirtIO. L'utilisation de gVNIC en tant qu'interface d'E/S moderne avec les VM Compute Engine offre les avantages suivants:

  • Offre de meilleures performances.
  • Améliore la cohérence en réduisant les problèmes de voisinage bruyant.
  • Introduit de nouvelles fonctionnalités réseau, plus puissantes que celles que de VirtIO.

gVNIC est compatible et recommandé avec toutes les familles de machines, tous les types de machines et toutes les générations.

gVNIC est requis pour atteindre les débits de bande passante maximaux suivants:

Vous devez utiliser gVNIC comme interface réseau pour les instances Confidential VM, les VM appartenant à la série de machines de troisième génération ou ultérieure et les VM s'exécutant sur la plate-forme de processeur Arm.

Avant de commencer

  • Si vous utilisez gVNIC avec des VM Windows Server 2022 ou Windows 11, mettez à jour le pilote gVNIC vers le package GooGet version 1.0.0@45 ou ultérieure pour améliorer le débit réseau. Pour en savoir plus, consultez la section Problèmes connus.
  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    Console

    Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Définissez une région et une zone par défaut.

    REST

    Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

      Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init

Tarifs

Pour connaître les derniers tarifs de la mise en réseau Tier_1, reportez-vous à la page Tarifs des instances de VM.

Pour obtenir la liste des méthodes supplémentaires permettant de trouver des informations sur les tarifs, consultez la section Tarifs de Compute Engine.

Systèmes d'exploitation compatibles

Sur Compute Engine, vous pouvez choisir d'utiliser gVNIC sur toutes les images de système d'exploitation (OS) publiques compatibles. Vous pouvez installer manuellement le pilote gVNIC dans les cas suivants:

  • L'image de l'OS n'inclut pas le pilote gVNIC
  • L'image de l'OS ne dispose pas de la dernière version du pilote gVNIC

Pour connaître les systèmes d'exploitation compatibles, consultez l'onglet Interfaces du système d'exploitation souhaité. Consultez également l'onglet Fonctionnalités de mise en réseau pour connaître la compatibilité des fonctionnalités de mise en réseau.

Utiliser sur des systèmes d'exploitation non compatibles

Pour les images d'OS compatibles avec gVNIC, mais qui n'incluent pas la dernière version du pilote gVNIC, vous pouvez télécharger la dernière version du pilote à partir de GitHub.

Vous pouvez configurer et installer manuellement la dernière version du pilote gVNIC sur les VM Linux ou Windows.

Après avoir mis à jour le système d'exploitation sur votre VM pour utiliser gVNIC, créez une image d'OS personnalisée basée sur cette image d'OS. Vous pouvez ensuite utiliser l'image d'OS personnalisée pour créer des VM supplémentaires utilisant gVNIC sur ce système d'exploitation. Pour en savoir plus sur la création de VM à l'aide d'une image d'OS personnalisée, consultez la section Créer une image d'OS personnalisée compatible avec gVNIC sur cette page.

Procédez comme suit pour configurer et installer manuellement la dernière version du pilote gVNIC.

Limites

Présentation de l'utilisation de gVNIC avec des VM Compute Engine

Pour créer une VM qui utilise gVNIC, procédez comme suit :

  1. Choisissez une image d'OS publique compatible avec gVNIC ou créez une image d'OS personnalisée avec un tag permettant d'utiliser gVNIC.
  2. Créez une VM à l'aide de l'image d'OS publique ou personnalisée. Lors de la création de la VM, configurez l'interface réseau de sorte qu'elle utilise gVNIC.
  3. Vérifiez que gVNIC est activé.

Si vous rencontrez des problèmes, consultez la section Dépannage de la carte d'interface réseau virtuelle Google.

Créer une image d'OS personnalisée compatible avec gVNIC

Vous pouvez créer l'image d'OS à l'aide de la Google Cloud CLI ou de REST. Pour obtenir des informations détaillées et des bonnes pratiques sur la création d'images d'OS personnalisées, consultez la page Créer des images d'OS personnalisées.

gcloud

  1. Sélectionnez une image ou une famille d'images d'OS compatibles avec gVNIC. Pour en savoir plus, consultez la page Détails des systèmes d'exploitation.

  2. À l'aide de l'image ou de la famille d'images d'OS sélectionnée à l'étape précédente, créez une image d'OS personnalisée et associez-lui le tag GVNIC. Pour créer l'image d'OS personnalisée, exécutez la commande gcloud compute images create. Par exemple, la commande suivante crée une image d'OS personnalisée compatible avec gVNIC et basée sur une image d'OS spécifique.

    gcloud compute images create IMAGE_NAME \
        --source-image=SOURCE_IMAGE \
        --source-image-project=SOURCE_IMAGE_PROJECT \
        --guest-os-features=GVNIC
    

    Remplacez les éléments suivants :

    • IMAGE_NAME : nom de l'image que vous souhaitez créer.
    • SOURCE_IMAGE : image d'OS spécifique compatible avec gVNIC, par exemple rocky-linux-8-optimized-gcp-v20220719.

      Si vous souhaitez utiliser l'image d'OS la plus récente dans une famille d'images, remplacez l'option --source-image par l'option --source-image-family et définissez sa valeur sur une famille d'images compatible avec gVNIC. Par exemple, --source-image-family=rocky-linux-8-optimized-gcp.

    • SOURCE_IMAGE_PROJECT : nom du projet contenant l'image ou la famille d'images d'OS source.

    Exemple

    Pour créer une image d'OS Rocky Linux 8 pour Google Cloud à l'aide de la dernière image d'OS de la famille d'images rocky-linux-8-optimized-gcp Compute Engine, exécutez la commande suivante :

    gcloud compute images create IMAGE_NAME \
        --source-image-family=rocky-linux-8-optimized-gcp \
        --source-image-project=rocky-linux-cloud \
        --guest-os-features=GVNIC
    

    Pour en savoir plus sur l'utilisation des familles d'images, consultez la page Bonnes pratiques concernant les familles d'images.

REST

  1. Sélectionnez une image ou une famille d'images d'OS compatible avec gVNIC. Pour en savoir plus, consultez la section Détails du système d'exploitation.

  2. À l'aide de l'image ou de la famille d'images d'OS sélectionnée à l'étape précédente, créez une image d'OS et associez-lui le tag GVNIC. Pour créer l'image d'OS, utilisez la méthode images.insert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images
    {
      "name":"IMAGE_NAME",
      "sourceImage":"SOURCE_IMAGE_URI",
      "guestOsFeatures":[
        {
          "type":"GVNIC"
        }
      ]
    }
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet dans lequel créer l'image.
    • IMAGE_NAME: nom de l'image personnalisée.
    • SOURCE_IMAGE_URI  : URI de l'image ou de la famille d'images d'OS spécifique que vous souhaitez utiliser.

      Exemple :

      • Image d'OS spécifique : "sourceImage": "projects/rocky-linux-cloud/global/images/rocky-linux-8-optimized-gcp-v20220719"
      • Famille d'images : "sourceImage": "projects/rocky-linux-cloud/global/images/family/rocky-linux-8-optimized-gcp"

      Lorsque vous spécifiez une famille d'images, Compute Engine crée une VM à partir de l'image de l'OS non obsolète la plus récente dans cette famille. Pour en savoir plus sur l'utilisation des familles d'images, consultez la page Bonnes pratiques concernant les familles d'images.

Créer une VM compatible avec gVNIC

Vous pouvez créer une VM à l'aide de l'une des images d'OS publiques compatibles ou d'une image d'OS personnalisée créée à l'aide de la procédure décrite dans la section Créer une image personnalisée compatible avec gVNIC.

Vous pouvez également activer DPDK sur la VM pour un traitement plus rapide des paquets sur le réseau, une faible latence et des performances constantes.

Pour les VM compatibles avec plusieurs interfaces réseau, vous pouvez associer à la VM des cartes d'interface réseau de différents types, car la compatibilité avec les interfaces est configurée par carte d'interface réseau. Bien que cette configuration soit compatible, nous vous déconseillons d'utiliser cette configuration. Pour les VM compatibles avec plusieurs cartes d'interface réseau, veillez à spécifier nic-type=GVNIC pour chaque interface réseau lors de la création de la VM.

Créer une VM à l'aide d'une image d'OS publique

Pour créer une VM à l'aide d'une image d'OS publique compatible avec gVNIC, suivez les instructions de la section Créer des VM et des conteneurs avec une configuration de bande passante élevée.

Créer une VM à l'aide d'une image d'OS personnalisée

Si vous n'utilisez pas d'image d'OS publique compatible avec gVNIC, vous devez d'abord créer une image d'OS personnalisée compatible avec gVNIC. Vous pouvez ensuite utiliser cette image d'OS personnalisée pour créer une VM à l'aide de la console Google Cloud, de Google Cloud CLI ou de REST.

Console

  1. Accédez à la page Créer une instance dans Google Cloud Console.

    Accéder à la page Créer une instance

  2. Cliquez sur le Nom de votre instance de VM.

  3. Sélectionnez la Zone dans laquelle créer votre VM.

  4. Dans la section Disque de démarrage, cliquez sur Modifier.

  5. Dans le panneau Disque de démarrage, accédez à l'onglet Images personnalisées, puis procédez comme suit:

    1. Choisissez le Projet source contenant l'image de l'OS que vous avez créée précédemment.
    2. Sélectionnez l'image dans la liste déroulante Image.
    3. Cliquez sur Sélectionner.
  6. Pour définir gVNIC en tant qu'interface réseau, développez la section Options avancées, puis procédez comme suit:

    1. Développez la section Mise en réseau.
    2. Pour Carte d'interface réseau, sélectionnez gVNIC.
  7. Effectuez des personnalisations supplémentaires de la VM si nécessaire.

  8. Cliquez sur Créer pour créer l'instance de VM.

gcloud

  1. Créez la VM à l'aide de la commande gcloud compute instances create. Pour le disque de démarrage, spécifiez l'image d'OS personnalisée que vous avez créée précédemment. Pour l'interface réseau, définissez la valeur de l'option nic-type sur GVNIC.

    gcloud compute instances create VM_NAME \
        --zone=ZONE \
        --machine-type=MACHINE_TYPE \
        --image=IMAGE_NAME \
        --image-project=YOUR_IMAGE_PROJECT \
        --network-interface=nic-type=GVNIC
    

    Remplacez les éléments suivants :

    • VM_NAME : nom de la nouvelle VM.
    • ZONE : zone dans laquelle créer la VM.
    • MACHINE_TYPE: type de machine à utiliser lors de la création de l'instance de VM. Si vous ne spécifiez pas de type de machine, la valeur par défaut est n1-standard-1.
    • IMAGE_NAME : image d'OS créée à l'étape précédente.
    • YOUR_IMAGE_PROJECT : nom du projet contenant l'image d'OS.
  2. Facultatif : Vérifiez que Compute Engine a créé la VM et que la valeur de nicType est définie sur GVNIC.

    gcloud compute instances describe VM_NAME \
       --zone=ZONE
    

    Remplacez les éléments suivants :

    • VM_NAME : Nom de la VM.
    • ZONE : zone dans laquelle vous avez créé la VM.

    Exemple

    Pour créer une VM Rocky Linux 8 avec un type de machine n1-standard-1 dans la zone us-west1-b à l'aide d'une image d'OS nommée my-gvnic-rocky8 qui se trouve dans le projet my-project-12345, exécutez la commande suivante:

    gcloud compute instances create my-rocky-linux-vm \
        --zone=us-west1-b \
        --image=my-gvnic-rocky8 \
        --image-project=my-project-12345 \
        --network-interface=nic-type=GVNIC
    

    Éléments à prendre en compte

    L'option --network-interface comporte des sous-options tels que :

    • --address : attribue une adresse IP à la VM
    • --network : réseau auquel l'interface sera associée
    • --network-tier : niveau de réseau de l'interface
    • --subnet : sous-réseau auquel l'interface sera associée Si --network est également spécifié, le sous-réseau doit faire partie du réseau spécifié.
    • --private-network-ip : spécifie l'adresse IP RFC 1918 à attribuer à la VM.

    Pour obtenir la liste complète, consultez l'option --network-interface.

REST

Créez la VM à l'aide de la méthode instances.insert.

  • Pour le disque de démarrage, spécifiez l'image d'OS personnalisée que vous avez créée précédemment.
  • Pour l'interface réseau, définissez la valeur du champ nicType sur GVNIC.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "name":"VM_NAME",
  "networkInterfaces":[
    {
      "network":"NETWORK",
      "nicType":"GVNIC",
      "subnet":"SUBNET_NAME"
    }
  ],
  "disks":[
    {
      "initializeParams":{
        "sourceImage":"projects/YOUR_IMAGE_PROJECT/global/images/IMAGE_NAME"
      },
      "boot":true
    }
  ]
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel créer la VM.
  • ZONE : zone dans laquelle créer la VM.
  • VM_NAME : nom de la nouvelle VM.
  • NETWORK : URL de la ressource réseau pour cette VM. Si ni le réseau, ni le sous-réseau ne sont spécifiés, le réseau global/networks/default par défaut est utilisé.
  • SUBNET_NAME : nom du sous-réseau. Le réseau est déduit du sous-réseau spécifié. Ce champ est facultatif.
  • YOUR_IMAGE_PROJECT : nom du projet contenant l'image d'OS.
  • IMAGE_NAME : image d'OS créée à l'étape précédente.

Vérifier que gVNIC est activé

Linux

Vous pouvez utiliser l'outil lshw pour extraire des informations détaillées sur la configuration matérielle de la machine virtuelle.

Pour installer l'outil lshw sur votre instance de VM Linux, ouvrez une connexion SSH à la VM, puis exécutez la commande suivante :

sudo apt-get install lshw -y

Pour déterminer si la VM utilise l'interface réseau gVNIC, exécutez la commande suivante :

sudo lshw -class network

Le résultat se présente comme suit :

*-network
   description: Ethernet interface
   product: Compute Engine Virtual Ethernet [gVNIC]
   vendor: Google, Inc.
   physical id: 3
   bus info: pci@0000:00:03.0
   logical name: ens3
   version: 00
   serial: 42:01:0a:80:00:6f
   width: 32 bits
   clock: 33MHz
   capabilities: msix bus_master cap_list ethernet physical
   configuration: autonegotiation=off broadcast=yes driver=gve driverversion=1.0.0
    duplex=full ip=10.128.0.111 latency=0 link=yes multicast=yes port=twisted pair
   resources: irq:11 memory:c0203000-c0203fff memory:c0200000-c02000ff memory:c0100000-c01fffff

Windows

  1. Dans votre instance de VM Windows, ouvrez le gestionnaire d'appareils.
  2. Sous "Carte réseau", vous devriez voir : "Google Ethernet Adapter"

Dépannage

Pour résoudre les problèmes liés à la gVNIC, consultez la section Dépannage de la carte d'interface réseau virtuelle Google.

Étapes suivantes