Utilizzo di Google Virtual NIC

Il NIC virtuale (gVNIC) di Google è un'interfaccia di rete virtuale progettata appositamente per Compute Engine. gVNIC è un'alternativa al driver Ethernet basato su virtIO.

Essendo l'interfaccia di rete di nuova generazione che segue VirtIO, gVNIC sostituisce VirtIO-Net come unica interfaccia di rete supportata in Compute Engine per tutti i nuovi tipi di macchine (dalla terza generazione in poi). Le funzionalità di networking e delle serie di macchine più recenti richiedono gVNIC anziché VirtIO. Utilizzare gVNIC come moderna interfaccia di I/O con le VM di Compute Engine ci consente di:

  • Offri un rendimento migliore.
  • Migliora la coerenza riducendo i problemi dei vicini rumorosi.
  • Presenta nuove funzionalità di rete oltre a quelle di VirtIO.

gVNIC è supportato e consigliato su tutte le famiglie di macchine, tutti i tipi di macchine e tutte le generazioni.

Il protocollo gVNIC è necessario per supportare:

Prima di iniziare

  • Se utilizzi gVNIC con VM Windows Server 2022 o Windows 11, aggiorna il driver gVNIC alla versione del pacchetto GooGet 1.0.0@45 o successiva per migliorare la velocità effettiva di rete. Per ulteriori informazioni, consulta i problemi noti.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.

    Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:

    gcloud

    1. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init
    2. Imposta una regione e una zona predefinite.

    REST

    Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.

      Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init

Prezzi

Per vedere i prezzi più recenti per il networking Tier_1, consulta la pagina dei prezzi delle istanze VM.

Per un elenco dei metodi aggiuntivi che possono essere utilizzati per trovare informazioni sui prezzi, consulta Prezzi di Compute Engine.

Supporto del sistema operativo

In Compute Engine, puoi scegliere di utilizzare gVNIC su qualsiasi immagine di sistema operativo pubblico (OS) supportata. Puoi installare manualmente il driver gVNIC su:

  • Sistemi operativi non supportati
  • Sistemi operativi che non dispongono della versione più recente del driver gVNIC

Per i sistemi operativi supportati, consulta la scheda Interfacce supportate relative a un sistema operativo. Controlla anche la scheda Funzionalità di networking per il supporto delle funzionalità di networking.

Utilizzo su sistemi operativi non supportati

Per le immagini del sistema operativo che supportano gVNIC ma non includono la versione più recente del driver gVNIC, puoi scaricare la versione più recente del driver da GitHub.

Puoi configurare e installare manualmente la versione più recente del driver gVNIC sulle VM Linux o Windows.

Dopo aver aggiornato il sistema operativo nella VM per utilizzare gVNIC, crea un'immagine del sistema operativo personalizzata basata sull'immagine del sistema operativo. Puoi quindi utilizzare l'immagine personalizzata del sistema operativo per creare VM aggiuntive che utilizzano gVNIC su quel sistema operativo. Per saperne di più sulla creazione di VM utilizzando un'immagine del sistema operativo personalizzata, consulta Creare un'immagine del sistema operativo personalizzata che supporti gVNIC in questa pagina.

Utilizza le seguenti procedure per configurare e installare manualmente la versione più recente del driver gVNIC:

Limitazioni

Panoramica dell'utilizzo di gVNIC con le VM di Compute Engine

Per creare una VM che utilizza gVNIC, completa i seguenti passaggi:

  1. Scegli un'immagine pubblica del sistema operativo che supporti gVNIC oppure crea un'immagine personalizzata del sistema operativo con tag per l'utilizzo di gVNIC.
  2. Crea una VM utilizzando l'immagine del sistema operativo pubblica o personalizzata. Durante la creazione della VM, configura l'interfaccia di rete per l'uso di gVNIC.
  3. Verifica che gVNIC sia attivo.

In caso di problemi, consulta la sezione Risoluzione dei problemi del NIC virtuale di Google.

Crea un'immagine personalizzata del sistema operativo che supporti gVNIC

Puoi creare l'immagine del sistema operativo utilizzando Google Cloud CLI o REST. Per informazioni dettagliate e best practice per la creazione di immagini sistema operativo personalizzate, consulta Creare immagini di sistema operativo personalizzate.

gcloud

  1. Seleziona un'immagine o una famiglia di immagini sistema operativo che supporti gVNIC. Per maggiori informazioni, consulta Dettagli del sistema operativo.

  2. Utilizzando l'immagine o la famiglia di immagini del sistema operativo selezionata nel passaggio precedente, crea un'immagine del sistema operativo personalizzata e tagga questa immagine del sistema operativo con GVNIC. Per creare l'immagine personalizzata del sistema operativo, utilizza il comando gcloud compute images create. Ad esempio, il comando seguente crea un'immagine personalizzata del sistema operativo che supporta gVNIC e si basa su un'immagine di sistema operativo specifica.

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

    Sostituisci quanto segue:

    • IMAGE_NAME: il nome dell'immagine che vuoi creare.
    • SOURCE_IMAGE: un'immagine specifica del sistema operativo che supporta gVNIC, ad esempio: rocky-linux-8-optimized-gcp-v20220719.

      Se vuoi utilizzare l'immagine più recente del sistema operativo in una famiglia di immagini, sostituisci il flag --source-image con il flag --source-image-family e imposta il relativo valore su una famiglia di immagini che supporti gVNIC. Ad esempio: --source-image-family=rocky-linux-8-optimized-gcp.

    • SOURCE_IMAGE_PROJECT: il nome del progetto che contiene l'immagine del sistema operativo di origine o la famiglia di immagini.

    Esempio

    Per creare un'immagine del sistema operativo Rocky Linux 8 ottimizzato per Google Cloud utilizzando l'immagine del sistema operativo più recente della famiglia di immagini rocky-linux-8-optimized-gcp di Compute Engine, esegui questo comando:

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

    Per ulteriori informazioni su quando utilizzare le famiglie di immagini, consulta Best practice per le famiglie di immagini.

REST

  1. Seleziona un'immagine o una famiglia di immagini sistema operativo che supporti gVNIC. Per ulteriori informazioni, consulta Dettagli del sistema operativo.

  2. Utilizzando l'immagine o la famiglia di immagini del sistema operativo selezionata nel passaggio precedente, crea un'immagine del sistema operativo e tagga questa immagine del sistema operativo con GVNIC. Per creare l'immagine del sistema operativo, utilizza il metodo images.insert.

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

    Sostituisci quanto segue:

    • IMAGE_NAME: il nome dell'immagine del sistema operativo che vuoi creare.
    • SOURCE_IMAGE_URI: l'URI della specifica immagine del sistema operativo o della famiglia di immagini che vuoi utilizzare.

      Ad esempio:

      • Immagine specifica del sistema operativo: "sourceImage": "projects/rocky-linux-cloud/global/images/rocky-linux-8-optimized-gcp-v20220719"
      • Famiglia di immagini: "sourceImage": "projects/rocky-linux-cloud/global/images/family/rocky-linux-8-optimized-gcp".

      Quando specifichi una famiglia di immagini, Compute Engine crea una VM dall'immagine del sistema operativo più recente non deprecata in quella famiglia. Per ulteriori informazioni su quando utilizzare le famiglie di immagini, consulta le best practice per le famiglie di immagini.

Crea una VM con supporto gVNIC

Puoi creare una VM utilizzando una delle immagini del sistema operativo pubbliche supportate o utilizzando un'immagine del sistema operativo personalizzata creata seguendo i passaggi descritti in Creare un'immagine del sistema operativo personalizzata che supporti gVNIC.

Facoltativamente, puoi abilitare DPDK sulla VM per un'elaborazione più rapida dei pacchetti di rete, una bassa latenza e prestazioni coerenti.

Crea una VM utilizzando un'immagine del sistema operativo pubblica

Per creare una VM utilizzando un'immagine del sistema operativo pubblica che supporta gVNIC, segui le istruzioni riportate in Creazione di VM e container con configurazione di larghezza di banda elevata.

Creazione di una VM utilizzando un'immagine del sistema operativo personalizzata

Se non utilizzi un'immagine del sistema operativo pubblica che supporta gVNIC, devi prima creare un'immagine personalizzata del sistema operativo che supporti gVNIC. Puoi quindi utilizzare l'immagine personalizzata del sistema operativo per creare una VM mediante Google Cloud CLI o REST.

gcloud

  1. Crea la VM utilizzando il comando gcloud compute instances create. Per il disco di avvio, specifica l'immagine personalizzata del sistema operativo che hai creato in precedenza. Per l'interfaccia di rete, imposta il valore del flag nic-type su GVNIC.

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

    Sostituisci quanto segue:

    • VM_NAME: il nome della nuova VM.
    • ZONE: la zona in cui creare la VM.
    • IMAGE_NAME: l'immagine del sistema operativo creata nel passaggio precedente.
    • YOUR_IMAGE_PROJECT: il nome del progetto che contiene l'immagine del sistema operativo.
  2. (Facoltativo) Verifica che Compute Engine ha creato la VM e che nicType sia impostato su GVNIC.

    gcloud compute instances describe VM_NAME \
       --zone=ZONE
    

    Sostituisci quanto segue:

    • VM_NAME: il nome della VM.
    • ZONE: la zona in cui hai creato la VM.

    Esempio

    Per creare una VM Rocky Linux 8 nella zona us-west1-b utilizzando un'immagine del sistema operativo denominata my-gvnic-rocky8 nel progetto my-project-12345, esegui questo comando:

    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
    

    Aspetti da considerare

    Il flag --network-interface ha flag di livello secondario come i seguenti:

    • --address: assegna un indirizzo IP alla VM
    • --network: la rete di cui farà parte l'interfaccia.
    • --network-tier: il livello di rete dell'interfaccia
    • --subnet: la subnet di cui farà parte l'interfaccia. Se è specificato anche --network, la subnet deve far parte della rete specificata.
    • --private-network-ip: specifica l'IP RFC 1918 da assegnare alla VM.

    Per un elenco completo, consulta il flag --network-interface.

REST

Crea la VM utilizzando il metodo instances.insert.

  • Per il disco di avvio, specifica l'immagine personalizzata del sistema operativo che hai creato in precedenza.
  • Per l'interfaccia di rete, imposta il valore del campo nicType su 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
    }
  ]
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui creare la VM.
  • ZONE: la zona in cui creare la VM.
  • VM_NAME: il nome della nuova VM.
  • NETWORK: l'URL della risorsa di rete per questa VM. Se non vengono specificate né la rete né la subnet, viene utilizzata la rete predefinita global/networks/default.
  • SUBNET_NAME: nome della subnet. La rete viene dedotta dalla subnet specificata. Questo è un campo facoltativo.
  • YOUR_IMAGE_PROJECT: il nome del progetto che contiene l'immagine del sistema operativo.
  • IMAGE_NAME: l'immagine del sistema operativo creata nel passaggio precedente.

Verifica dell'attivazione di gVNIC

Linux

Puoi utilizzare lo strumento lshw per estrarre informazioni dettagliate sulla configurazione hardware della macchina virtuale.

Per installare lo strumento lshw sulla tua istanza VM Linux, apri una connessione SSH alla VM ed esegui questo comando:

sudo apt-get install lshw -y

Per determinare se la VM utilizza l'interfaccia di rete gVNIC, esegui questo comando:

sudo lshw -class network

L'output è simile al seguente:

*-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. Apri Gestione dispositivi sull'istanza VM Windows.
  2. Nella sezione Schede di rete, dovresti vedere: "Google Ethernet Adapter"

Risoluzione dei problemi

Per risolvere i problemi relativi a gVNIC, consulta Risoluzione dei problemi relativi al NIC virtuale di Google.

Passaggi successivi