Créer des instances qui utilisent l'interface de réseau virtuel Compute Engine

L'interface de réseau virtuel Compute Engine, également appelée gVNIC, est spécialement conçue pour Compute Engine. Elle fournit un réseau de distribution plus efficace, afin d'envoyer du trafic depuis et vers vos instances de VM. Auparavant, les instances de machine virtuelle (VM) exécutées sur Compute Engine utilisaient une interface de réseau virtuel basée sur la spécification virtIO.

L'interface de réseau virtuel Compute Engine est requise pour les bandes passantes réseau élevées (vitesses atteignant 50 à 100 Gbit/s, par exemple) pouvant être utilisées pour des charges de travail distribuées sur des instances associées à des GPU.

Pour créer des instances de VM qui utilisent l'interface de réseau virtuel Compute Engine, vous pouvez effectuer l'une des opérations suivantes :

Avant de commencer

Limites

L'interface de réseau virtuel Compute Engine n'est pas compatible avec les instances de VM qui utilisent des types de machines à mémoire optimisée.

Systèmes d'exploitation compatibles

Les images suivantes appartiennent au projet d'image gvnic-vm-image-prod et sont configurées pour utiliser l'interface de réseau virtuel Compute Engine :

  • Debian : debian-9-gvnic
  • Windows
    • Windows Server 2019 : windows-2019-gvnic
    • Windows Server 2016 : windows-2016-gvnic
    • Windows Server 2012 R2 : windows-2012-r2-gvnic
    • Windows Server 2008 R2 : windows-2008-r2-gvnic

Vous pouvez utiliser n'importe laquelle de ces images pour créer une instance de VM qui, par défaut, utilise l'interface de réseau virtuel Compute Engine.

Créer une instance de VM à l'aide d'images préconfigurées

Pour créer une instance de VM à l'aide d'une image du projet d'image gvnic-vm-image-prod, suivez les étapes de la section créer une instance de VM et fournissez le projet et la famille de l'image.

Debian

Pour créer une instance Debian, exécutez la commande suivante :

gcloud beta compute instances create instance-name \
      --image-project=gvnic-vm-image-prod \
      --image-family=debian-9-gvnic

Remplacez instance-name par le nom de votre instance.

Windows

  • Pour créer une instance Windows 2019, exécutez la commande suivante :

    gcloud beta compute instances create instance-name \
            --image-project=gvnic-vm-image-prod \
            --image-family=windows-2019-gvnic
    
  • Pour créer une instance Windows 2016, exécutez la commande suivante :

    gcloud beta compute instances create instance-name \
              --image-project=gvnic-vm-image-prod \
              --image-family=windows-2016-gvnic
    
  • Pour créer une instance Windows 2012-r2, exécutez la commande suivante :

    gcloud beta compute instances create instance-name \
              --image-project=gvnic-vm-image-prod \
              --image-family=windows-2012-r2-gvnic
    
  • Pour créer une instance Windows 2008-r2, exécutez la commande suivante :

    gcloud beta compute instances create instance-name \
            --image-project=gvnic-vm-image-prod \
            --image-family=windows-2008-r2-gvnic
    

    Remplacez instance-name par le nom de votre instance.

Installer manuellement le pilote du réseau virtuel Compute Engine

Pour créer une instance de VM à partir d'une image sur laquelle le pilote du réseau virtuel Compute Engine n'est pas installé, procédez comme suit :

  1. Installez le pilote du réseau virtuel Compute Engine sur l'image.
  2. Utilisez l'image sur laquelle le pilote du réseau virtuel Compute Engine est maintenant installé pour créer une instance de VM.

Linux

Pour pouvoir installer le pilote du réseau virtuel Compute Engine, vous devez installer les versions les plus récentes du pilote et de l'en-tête du noyau de votre système d'exploitation. Une instance qui utilise une interface de réseau virtuel Compute Engine sans pilote de noyau n'aura pas de connectivité réseau interne ni externe, SSH et RDP inclus.

Pour créer et installer le pilote du noyau à partir de la source, vous devez disposer d'un noyau compatible avec les en-têtes installés. Le pilote du réseau virtuel Compute Engine est compatible avec les noyaux de distribution principaux pour les versions 3.10 et ultérieures.

  1. Installez ou mettez à jour le noyau et les en-têtes vers la version 3.10 ou ultérieure. Pour terminer cette étape, consultez la documentation de votre système d'exploitation. Pour obtenir des packages de codes sources et de pilotes sur GitHub, consultez GoogleCloudPlatform/compute-virtual-ethernet-linux.

  2. Utilisez votre image pour créer et démarrer une instance de VM.

  3. Sur cette instance de VM, chargez le pilote du noyau. Pour charger le pilote, exécutez la commande suivante :

    modprobe gve

    Cette commande charge le pilote jusqu'à ce que vous redémarriez le système ou que vous supprimiez le pilote avec la commande rmmod.

  4. (Facultatif) Pour vous assurer que le pilote se charge automatiquement au démarrage du système, exécutez l'une des commandes suivantes :

    • Pour les systèmes d'exploitation qui utilisent systemd, exécutez la commande suivante :

      echo gve > /etc/modules-load.d/gve.conf
    • Pour les systèmes Debian, exécutez la commande suivante :

      echo gve >> /etc/modules
  5. Arrêtez l'instance de VM.

  6. Créez une image à partir du disque associé à l'instance de VM que vous venez d'arrêter.

    gcloud beta compute images create image-name\
            --source-disk disk-name \
            --guest-os-features=GVNIC
    

    Remplacez l'élément suivant :

    • image-name correspond au nom de l'image que vous souhaitez créer. Le pilote du réseau virtuel Compute Engine est installé sur cette image.
    • disk-name correspond au nom du disque de démarrage de l'instance de VM que vous venez d'arrêter.
  7. Utilisez l'image sur laquelle le pilote du réseau virtuel Compute Engine est installé pour créer et démarrer une instance de VM.

Windows

  1. Utilisez votre image pour créer et démarrer une instance de VM.

  2. Installez GooGet sur cette instance de VM. Pour installer GooGet, consultez Télécharger et installer GooGet.

  3. Installez le pilote gVNIC. Pour installer le pilote, exécutez la commande suivante dans une invite PowerShell élevée :

    googet install google-compute-engine-driver-gvnic
  4. Arrêtez l'instance de VM.

  5. Créez une image à partir du disque associé à l'instance de VM que vous venez d'arrêter.

    gcloud beta compute images create image-name\
            --source-disk disk-name \
            --guest-os-features=GVNIC
    

    Remplacez l'élément suivant :

    • image-name correspond au nom de l'image que vous souhaitez créer. Le pilote du réseau virtuel Compute Engine est désormais installé sur cette image.
    • disk-name correspond au nom du disque de démarrage de l'instance de VM que vous venez d'arrêter.
  6. Utilisez l'image sur laquelle le pilote du réseau virtuel Compute Engine est installé pour créer et démarrer une instance de VM.

Vérifier que l'interface de réseau virtuel Compute Engine est activée

Linux

Méthode 1

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

    sudo apt-get install pciutils
    lspci
    

    La sortie doit ressembler à ceci :

    00:04.0 Ethernet controller: Google, XXX. Device 0042

Méthode 2

  1. Suivez les instructions de votre système d'exploitation pour télécharger l'utilitaire de mise en réseau ethtool.

  2. Exécutez la commande suivante :

    sudo ethtool -i network-interface

    Remplacez network-interface par le nom de votre interface réseau. Exemple :eth0

    La sortie doit ressembler à ceci :

    driver: gve
    version: 1.0.0
    firmware-version:
    expansion-rom-version:
    bus-info: 0000:00:04.0
    supports-statistics: yes
    supports-test: no
    supports-eeprom-access: no
    supports-register-dump: no
    supports-priv-flags: no

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

L'instance de VM n'a pas démarré

  • Cause : le pilote du réseau virtuel Compute Engine n'est pas activé sur l'image.

  • Diagnostic : Vérifiez que l'interface de réseau virtuel Compute Engine est activée sur l'image. Pour ce faire, exécutez la commande suivante :

    gcloud beta compute images describe image-name

    Remplacez image-name par le nom de l'image.

    Le résultat de la commande doit indiquer "GVNIC" sous guestOsFeatures.

  • Résolution : Vérifiez que vous utilisez une image compatible ou que vous avez correctement configuré le pilote gVNIC sur votre image personnalisée.

L'instance de VM a démarré, mais n'est pas accessible via le réseau

  • Cause : Le pilote du réseau virtuel Compute Engine n'a pas été installé et chargé.

  • Diagnostic : Pour vous assurer que le pilote a été installé et chargé, procédez comme suit :

    Linux

    1. Vérifiez que le pilote est installé.

      modinfo gve

      La sortie doit ressembler à ceci :

      filename:       /lib/modules/4.15.0-1036-gcp/updates/dkms/gve.ko
      version:        1.0.0
      license:        Dual MIT/GPL
      description:    gVNIC Driver
      author:         Google, XXX.
      srcversion:     5FEFB9DD945EB2DEC94EE09
      alias:          pci:v00001AE0d00000042sv*sd*bc*sc*i*
      depends:
      retpoline:      Y
      name:           gve
      vermagic:       4.15.0-1036-gcp SMP mod_unload
      
    2. Vérifiez que le pilote est chargé.

      lsmod | grep gve

      La sortie doit ressembler à ceci :

      gve                    49152  0

    Windows

    1. Connectez-vous à l'instance via SAC.
    2. Connectez-vous à l'aide de votre nom d'utilisateur et de votre mot de passe.
    3. À partir de l'invite de commande, exécutez la commande suivante :

      dism /online /get-drivers | findstr gvnic
    4. Examinez les résultats.

      • Si le pilote est installé, vous devriez voir le texte Original File Name : gvnic.inf dans le résultat.
      • Si le pilote n'est pas installé, aucun message n'est renvoyé.
  • Résolution : Si le pilote du réseau virtuel Compute Engine n'est pas disponible, vérifiez que vous utilisez une image compatible ou que vous avez correctement configuré le pilote du réseau virtuel Compute Engine sur votre image personnalisée.

Étapes suivantes