Google Virtual NIC verwenden


Google Virtual NIC (gVNIC) ist eine virtuelle Netzwerkschnittstelle, die speziell für Compute Engine entwickelt wurde. gVNIC ist eine Alternative zum virtIO-basierten Ethernet-Treiber.

Als Netzwerkschnittstelle zur nächsten Generation, die VirtIO erfolgreich ist, ersetzt gVNIC VirtIO-Net als einzige unterstützte Netzwerkschnittstelle in Compute Engine für alle neuen Maschinentypen (Generation 3 und höher). Neuere Maschinenserien und Netzwerkfunktionen erfordern gVNIC anstelle von VirtIO. Die Verwendung von gVNIC als moderne E/A-Schnittstelle mit Compute Engine-VMs bietet folgende Vorteile:

  • Bietet eine bessere Leistung.
  • Verbessern Sie die Konsistenz, indem Sie Noisy-Neighbor-Probleme reduzieren.
  • Einführung neuer Netzwerkfunktionen, die über VirtIO hinausgehen

gVNIC wird auf allen Maschinenfamilien, Maschinentypen und Generierungen unterstützt und empfohlen.

gVNIC ist erforderlich, um die folgenden maximalen Bandbreitenraten zu erreichen:

Sie müssen gVNIC als Netzwerkschnittstelle für Confidential VM-Instanzen, Maschinen-VMs der dritten Generation oder höher und VMs verwenden, die auf der Arm-CPU-Plattform ausgeführt werden.

Vorbereitung

  • Wenn Sie gVNIC mit Windows Server 2022- oder Windows 11-VMs verwenden, aktualisieren Sie den gVNIC-Treiber auf die GooGet-Paketversion 1.0.0@45 oder höher, um den Netzwerkdurchsatz zu verbessern. Weitere Informationen finden Sie unter bekannte Probleme.
  • Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben. Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud-Dienste und APIs überprüft. Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei Compute Engine authentifizieren.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

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

      gcloud init
    2. Set a default region and zone.
    3. REST

      Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

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

        gcloud init

      Weitere Informationen finden Sie unter Für die Verwendung von REST authentifizieren in der Dokumentation zur Google Cloud-Authentifizierung.

Preise

Die aktuellen Preise für Netzwerke der Stufe 1 finden Sie auf der Seite der Preise für VM-Instanzen.

Eine Liste der zusätzlichen Methoden, Preisinformationen zu erhalten, finden Sie unter Compute Engine-Preise.

Betriebssystemunterstützung

In Compute Engine können Sie gVNIC für alle unterstützten öffentlichen Betriebssystem-Images verwenden. Sie können den gVNIC-Treiber in folgenden Fällen manuell installieren:

  • Das Betriebssystem-Image enthält nicht den gVNIC-Treiber.
  • Das Betriebssystem-Image enthält nicht die neueste gVNIC-Treiberversion

Informationen zu den unterstützten Betriebssystemen finden Sie auf dem Tab Unterstützte Schnittstellen für Betriebssysteme. Auf dem Tab Netzwerkfunktionen finden Sie Informationen zur Unterstützung von Netzwerkfunktionen.

Verwendung auf nicht unterstützten Betriebssystemen

Für Betriebssystem-Images, die gVNIC unterstützen, aber nicht die neueste Version des gVNIC-Treibers enthalten, können Sie die neueste Treiberversion von GitHub herunterladen.

Sie können die neueste Version des gVNIC-Treibers manuell auf Linux- oder Windows-VMs konfigurieren und installieren.

Nachdem Sie das Betriebssystem in Ihrer VM für die Verwendung von gVNIC aktualisiert haben, erstellen Sie ein benutzerdefiniertes Betriebssystem-Image basierend auf diesem Betriebssystem-Image. Sie können dann das benutzerdefinierte Betriebssystem-Image verwenden, um weitere VMs mit gVNIC unter diesem Betriebssystem zu erstellen. Weitere Informationen zum Erstellen von VMs mit einem benutzerdefinierten Betriebssystem-Image finden Sie auf dieser Seite unter Benutzerdefiniertes Betriebssystem-Image erstellen, das gVNIC unterstützt.

So konfigurieren und installieren Sie manuell die neueste Version des gVNIC-Treibers.

Beschränkungen

  • Large Receive Offload (LRO) wird nicht unterstützt. Generic Receive Offload (GRO) ist für VMs, die gVNIC verwenden, standardmäßig aktiviert.
  • Große Sendungsauslagerung Version 2 (LSOV2) wird auf Windows 11- oder Windows Server 2022-VMs nicht unterstützt. gVNIC-Treiberversionen 1.0.0@45 und spätere Versionen deaktivieren LSOV2. Informationen zum Prüfen und Aktualisieren des gVNIC-Treibers einer VM unter Microsoft Windows finden Sie unter bekannte Probleme.

Übersicht über die Verwendung von gVNIC mit Compute Engine-VMs

Führen Sie folgende Schritte aus, um eine VM mit gVNIC zu erstellen:

  1. Wählen Sie ein öffentliches Betriebssystem-Image aus, das gVNIC unterstützt, oder erstellen Sie ein benutzerdefiniertes Image, das für die Verwendung von gVNIC getaggt ist.
  2. Erstellen Sie eine VM mit dem öffentlichen oder benutzerdefinierten Betriebssystem-Image. Konfigurieren Sie während der VM-Erstellung die Netzwerkschnittstelle für die Verwendung von gVNIC.
  3. Prüfen, ob gVNIC aktiviert ist

Falls Probleme auftreten, lesen Sie den Abschnitt Fehlerbehebung bei Google Virtual NIC.

Benutzerdefiniertes Betriebssystem-Image erstellen, das gVNIC unterstützt

Sie können das Betriebssystem-Image entweder mit der Google Cloud CLI oder mit REST erstellen. Ausführliche Informationen und Best Practices zum Erstellen benutzerdefinierter Betriebssystem-Images finden Sie unter Benutzerdefinierte Betriebssystem-Images erstellen.

gcloud

  1. Wählen Sie ein Betriebssystem-Image oder eine Imagefamilie aus, die gVNIC unterstützt. Weitere Informationen finden Sie unter Details zu Betriebssystemen.

  2. Erstellen Sie mithilfe des im vorherigen Schritt ausgewählten Betriebssystem-Images oder der Image-Familie ein benutzerdefiniertes Betriebssystem-Image und taggen Sie es mit GVNIC. Verwenden Sie zum Erstellen des benutzerdefinierten Betriebssystem-Image den Befehl gcloud compute images create. Mit dem folgenden Befehl wird beispielsweise ein benutzerdefiniertes Betriebssystem-Image erstellt, das gVNIC unterstützt und auf einem bestimmten Betriebssystem-Image basiert.

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

    Ersetzen Sie dabei Folgendes:

    • IMAGE_NAME: Der Name des Images, das Sie erstellen möchten.
    • SOURCE_IMAGE: ein bestimmtes Betriebssystem-Image, das gVNIC unterstützt, z. B. rocky-linux-8-optimized-gcp-v20220719.

      Wenn Sie das neueste Betriebssystem-Image in einer Image-Familie verwenden möchten, ersetzen Sie das Flag --source-image durch das Flag --source-image-family und legen Sie dessen Wert auf eine Image-Familie fest, die gVNIC unterstützt. Beispiel: --source-image-family=rocky-linux-8-optimized-gcp.

    • SOURCE_IMAGE_PROJECT ist der Name des Projekts, das das Quell-Betriebssystem-Image oder die Image-Familie enthält.

    Beispiel

    Führen Sie den folgenden Befehl aus, um ein Rocky Linux 8-Image, optimiert für dGoogle Cloud-Betriebssystem-Image, mit dem neuesten Betriebssystem-Image aus der Compute Engine-Image-Familie rocky-linux-8-optimized-gcp zu erstellen:

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

    Weitere Informationen zur Verwendung von Image-Familien finden Sie unter Best Practices für Image-Familien.

REST

  1. Wählen Sie ein Betriebssystem-Imageoder eine Imagefamilie aus, die gVNIC unterstützt. Weitere Informationen finden Sie unter Details zu Betriebssystemen.

  2. Erstellen Sie mithilfe des im vorherigen Schritt ausgewählten Betriebssystem-Images oder der Image-Familie ein Betriebssystem-Image und taggen Sie es mit GVNIC. Erstellen Sie das Betriebssystem-Image mit der Methode images.insert.

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

    Ersetzen Sie dabei Folgendes:

    • PROJECT_ID: ID des Projekts, in dem das neue Image erstellt werden soll
    • IMAGE_NAME: Name für das benutzerdefinierte Image
    • SOURCE_IMAGE_URI: Der URI für das spezifische Betriebssystem-Image oder die Image-Familie, die Sie verwenden möchten.

      Beispiele:

      • Spezifisches Betriebssystem-Image: "sourceImage": "projects/rocky-linux-cloud/global/images/rocky-linux-8-optimized-gcp-v20220719"
      • Imagefamilie: "sourceImage": "projects/rocky-linux-cloud/global/images/family/rocky-linux-8-optimized-gcp"

      Wenn Sie eine Image-Familie angeben, erstellt Compute Engine eine VM aus dem neuesten nicht verworfenen Betriebssystem-Image in dieser Familie. Weitere Informationen zur Verwendung von Image-Familien finden Sie unter Best Practices für Image-Familien.

VM mit gVNIC-Unterstützung erstellen

Sie können eine VM mit einem der Unterstützten öffentlichen Betriebssystem-Images oder mit einem benutzerdefiniertes Betriebssystem-Image erstellen, das Sie mithilfe der Anleitung unter Benutzerdefiniertes Betriebssystem-Image erstellen, das gVNIC unterstützt, erstellt haben.

Optional können Sie DPDK auf der VM aktivieren, um eine schnellere Netzwerkpaketverarbeitung, eine niedrige Latenz und eine konsistente Leistung zu erreichen.

Bei VMs, die mehrere Netzwerkschnittstellen (NICs) unterstützen, können NICs verschiedener Typen an die VM angeschlossen werden, da die Schnittstellenunterstützung pro NIC konfiguriert wird. Diese Konfiguration wird zwar unterstützt, wir empfehlen sie jedoch nicht. Achten Sie bei VMs, die mehrere NICs unterstützen, darauf, beim Erstellen der VM für jede Netzwerkschnittstelle nic-type=GVNIC anzugeben.

VM mit einem öffentlichen Betriebssystem-Image erstellen

Folgen Sie der Anleitung unter VMs und Container mit hoher Bandbreitenkonfiguration erstellen, um eine VM mit einem öffentlichen Betriebssystem-Image zu erstellen, das gVNIC unterstützt.

VM mit dem benutzerdefinierten Betriebssystem-Image erstellen

Wenn Sie kein öffentliches Betriebssystem-Image verwenden, das gVNIC unterstützt, müssen Sie zuerst ein benutzerdefiniertes Betriebssystem-Image erstellen, das gVNIC unterstützt. Anschließend verwenden Sie dieses benutzerdefinierte Betriebssystem-Image, um eine VM mit der Google Cloud Console, der Google Cloud CLI oder REST zu erstellen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Instanz erstellen auf.

    Zur Seite „Instanz erstellen“

  2. Klicken Sie auf den Namen Ihrer VM-Instanz.

  3. Wählen Sie die Zone aus, in der die VM erstellt werden soll.

  4. Klicken Sie im Abschnitt Bootlaufwerk auf Ändern.

  5. Führen Sie im Bereich Bootlaufwerk auf dem Tab Benutzerdefinierte Images die folgenden Schritte aus:

    1. Wählen Sie das Quellprojekt aus, das das zuvor erstellte Betriebssystem-Image enthält.
    2. Wählen Sie das Bild aus dem Drop-down-Menü Bild aus.
    3. Klicken Sie auf Auswählen.
  6. Wenn Sie gVNIC als Netzwerkschnittstelle festlegen möchten, maximieren Sie den Abschnitt Erweiterte Optionen und gehen Sie dann so vor:

    1. Maximieren Sie den Bereich Netzwerk.
    2. Wählen Sie für Netzwerkkarte die Option gVNIC aus.
  7. Nehmen Sie bei Bedarf weitere VM-Anpassungen vor.

  8. Klicken Sie auf Erstellen, um die VM-Instanz zu erstellen.

gcloud

  1. Erstellen Sie die VM mit dem Befehl gcloud compute instances create. Geben Sie für das Bootlaufwerk das zuvor erstellte benutzerdefinierte Betriebssystem-Image an. Legen Sie für die Netzwerkschnittstelle den Wert des Flags nic-type auf GVNIC fest.

    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
    

    Ersetzen Sie dabei Folgendes:

    • VM_NAME ist der Name der neuen VM.
    • ZONE ist die Zone, in der die VM erstellt werden soll.
    • MACHINE_TYPE: der Maschinentyp, der beim Erstellen der VM-Instanz verwendet werden soll. Wenn Sie keinen Maschinentyp angeben, wird standardmäßig n1-standard-1 verwendet.
    • IMAGE_NAME ist das Betriebssystem-Image, das im vorherigen Schritt erstellt wurde.
    • YOUR_IMAGE_PROJECT ist der Name Ihres Projekts, das das Betriebssystem-Image enthält.
  2. Optional: Prüfen Sie, ob Compute Engine die VM erstellt und nicType auf GVNIC gesetzt hat.

    gcloud compute instances describe VM_NAME \
       --zone=ZONE
    

    Ersetzen Sie dabei Folgendes:

    • VM_NAME ist der Name der VM.
    • ZONE: die Zone, in der Sie die VM erstellt haben.

    Beispiel

    Führen Sie den folgenden Befehl aus, um eine Rocky Linux 8-VM mit dem Maschinentyp n1-standard-1 in Zone us-west1-b mit einem Betriebssystem-Image namens my-gvnic-rocky8 im Projekt my-project-12345 zu erstellen:

    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
    

    Wichtige Punkte

    Das Flag --network-interface hat Flags auf Unterebene wie die folgenden:

    • --address: VM eine IP-Adresse zuweisen
    • --network: Das Netzwerk, zu dem die Schnittstelle gehört
    • --network-tier: Die Netzwerkebene der Schnittstelle
    • --subnet: Das Subnetz, zu dem die Schnittstelle gehört. Wenn auch --network angegeben ist, muss das Subnetz Teil des angegebenen Netzwerks sein.
    • --private-network-ip: Geben Sie die RFC 1918-IP-Adresse an, die der VM zugewiesen werden soll.

    Eine vollständige Liste finden Sie unter Flag --network-interface.

REST

Erstellen Sie die VM mit der Methode instances.insert.

  • Geben Sie für das Bootlaufwerk das zuvor erstellte benutzerdefinierte Betriebssystem-Image an.
  • Legen Sie für die Netzwerkschnittstelle den Wert des Felds nicType auf GVNIC fest.
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
    }
  ]
}

Ersetzen Sie dabei Folgendes:

  • PROJECT_ID ist die ID des Projekts, in dem die VM erstellt werden soll.
  • ZONE ist die Zone, in der die VM erstellt werden soll.
  • VM_NAME ist der Name der neuen VM.
  • NETWORK: URL der Netzwerkressource für diese VM. Wenn weder das Netzwerk noch das Subnetzwerk angegeben ist, wird das Standardnetzwerk global/networks/default verwendet.
  • SUBNET_NAME ist der Name des Subnetzes. Das Netzwerk wird aus dem angegebenen Subnetz abgeleitet. Dieses Feld ist optional.
  • YOUR_IMAGE_PROJECT ist der Name Ihres Projekts, das das Betriebssystem-Image enthält.
  • IMAGE_NAME ist das Betriebssystem-Image, das im vorherigen Schritt erstellt wurde.

Prüfen, ob gVNIC aktiviert ist

Linux

Mit dem lshw-Tool können Sie detaillierte Informationen zur Hardwarekonfiguration der virtuellen Maschine extrahieren.

Öffnen Sie zum Installieren des lshw-Tools auf Ihrer Linux-VM-Instanz eine SSH-Verbindung zur VM und führen Sie dann den folgenden Befehl aus:

sudo apt-get install lshw -y

Führen Sie den folgenden Befehl aus, um festzustellen, ob die VM die gVNIC-Netzwerkschnittstelle verwendet:

sudo lshw -class network

Die Ausgabe sollte in etwa so aussehen:

*-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. Öffnen Sie auf Ihrer VM-Instanz unter Windows den Geräte-Manager.
  2. Unter "Netzwerkadapter" sollten Sie diesen Eintrag finden: "Google Ethernet Adapter"

Fehlerbehebung

Informationen zur Fehlerbehebung für gVNIC finden Sie unter Fehlerbehebung bei Google Virtual NIC.

Nächste Schritte