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. En utilisant gVNIC en tant qu'interface d'E/S moderne avec les VM Compute Engine, vous pouvez :

  • offrir de meilleures performances ;
  • améliorer la cohérence en réduisant les problèmes de voisinage bruyant ;
  • introduire de nouvelles fonctionnalités réseau, plus puissantes que celles 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 pouvoir fournir :

Avant de commencer

  • Si vous souhaitez utiliser les exemples de ligne de commande de ce guide, procédez comme suit :
    1. Installez la dernière version de la Google Cloud CLI ou appliquez la mise à jour correspondante.
    2. Définissez une région et une zone par défaut.
  • Si vous voulez utiliser les exemples d'API de ce guide, configurez l'accès aux API.
  • 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.

Tarification

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 publiques compatibles. Vous pouvez installer manuellement le pilote gVNIC sur :

  • des systèmes d'exploitation non compatibles ;
  • des systèmes d'exploitation qui ne disposent pas de la dernière version du pilote gVNIC

Pour connaître les systèmes d'exploitation compatibles, consultez l'onglet Interfaces compatibles 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

Créez une image personnalisée si vous souhaitez utiliser gVNIC sur un système d'exploitation qui n'est actuellement pas compatible avec gVNIC. Pour en savoir plus, consultez la section Créer une image personnalisée compatible avec gVNIC de ce document.

Pour les images 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.

Configurez et installez manuellement la dernière version du pilote gVNIC en procédant comme suit :

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 publique compatible avec gVNIC ou créez une image personnalisée avec un tag permettant d'utiliser gVNIC.
  2. Créez une VM à l'aide de l'image 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 personnalisée compatible avec gVNIC

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

gcloud

  1. Sélectionnez une image ou une famille d'images 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 sélectionnée à l'étape précédente, créez une image personnalisée et associez-lui le tag GVNIC. Pour créer l'image personnalisée, exécutez la commande gcloud compute images create. Par exemple, la commande suivante crée une image 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 : une image spécifique compatible avec gVNIC, par exemple rocky-linux-8-optimized-gcp-v20220719.

      Si vous souhaitez utiliser l'image 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 source ou la famille d'images.

    Exemple

    Pour créer une image Rocky Linux 8 pour Google Cloud à l'aide de la dernière image 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.

API

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

  2. À l'aide de la famille d'images ou d'images sélectionnées à l'étape précédente, créez une image et associez-lui le tag GVNIC. Pour créer l'image, 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 :

    • IMAGE_NAME : nom de l'image que vous souhaitez créer.
    • SOURCE_IMAGE_URI : URI de l'image ou de la famille d'images spécifique que vous souhaitez utiliser.

      Par exemple :

      • Image 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 publiques compatibles ou d'une image 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.

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

Pour créer une VM à l'aide d'une image 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 personnalisée

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

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 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 \
        --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.
    • IMAGE_NAME : image créée à l'étape précédente.
    • YOUR_IMAGE_PROJECT : nom du projet contenant l'image.

    Exemple

    Pour créer une VM Rocky Linux 8 dans la zone us-west1-b à l'aide d'une image 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 telles 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 la section sur l'option --network-interface.

  2. 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.

API

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

  • Pour le disque de démarrage, spécifiez l'image 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.
  • IMAGE_NAME : image créée à l'étape précédente.

Vérifier que gVNIC est activé

Linux

Sur votre instance de VM Linux, exécutez les commandes suivantes :

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: 4
   bus info: pci@0000:00:04.0
   logical name: eth0
   version: 00
   serial: 42:01:0a:8a:00:04
   width: 32 bits
   clock: 33MHz
   capabilities: msix bus_master cap_list ethernet physical
   configuration: broadcast=yes driver=gve driverversion=1.0.0 ip=10.138.0.4 latency=0 link=yes multicast=yes
   resources: irq:11 memory:c0102000-c0102fff memory:c0101000-c010103f memory:c0000000-c00fffff

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 à gVNIC, consultez la section Dépannage de la carte d'interface réseau virtuelle Google.

Étapes suivantes