Utilizzo di Google Virtual NIC

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

Essendo l'interfaccia di rete di nuova generazione successiva a VirtIO, gVNIC sostituisce VirtIO-Net come unica interfaccia di rete supportata in Compute Engine per tutti i nuovi tipi di macchina (di 3ª generazione e successive). Le serie di macchine più recenti e le funzionalità di rete richiedono gVNIC anziché VirtIO. L'utilizzo di gVNIC come interfaccia I/O moderna con le VM Compute Engine offre i seguenti vantaggi:

  • Offre prestazioni migliori.
  • Migliora la coerenza riducendo i problemi di "noisy-neighbor".
  • Introduce nuove funzionalità di rete oltre a quelle supportate da VirtIO.

gVNIC è supportata e consigliata su tutte le famiglie, i tipi e le generazioni di macchine.

gVNIC è necessaria per raggiungere le seguenti velocità massime di larghezza di banda:

Devi utilizzare gVNIC come interfaccia di rete per le istanze di Confidential VM, le VM della serie di macchine di terza generazione o successive e le VM in esecuzione sulla piattaforma CPU Arm.

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 il throughput della rete. Per saperne di più vedi i problemi noti.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale la tua identità viene verificata per l'accesso a servizi e API di Trusted Cloud by S3NS . Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

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

    Console

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

    gcloud

    1. Install the Google Cloud CLI, and then sign in to the gcloud CLI with your federated identity. After signing in, initialize the Google Cloud CLI by running the following command:

      gcloud init
    2. Set a default region and zone.

    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.

      Install the Google Cloud CLI, and then sign in to the gcloud CLI with your federated identity. After signing in, initialize the Google Cloud CLI by running the following command:

      gcloud init

    Per saperne di più, consulta Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Trusted Cloud .

Prezzi

Per visualizzare i prezzi più recenti per la rete Tier_1, consulta la pagina dei prezzi delle istanze VM.

Per un elenco di 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 sistema operativo (OS) pubblica supportata. Puoi installare manualmente il driver gVNIC nei seguenti casi:

  • L'immagine sistema operativo non include il driver gVNIC
  • L'immagine sistema operativo non ha l'ultima versione del driver gVNIC

Per i sistemi operativi supportati, consulta la scheda Interfacce per un sistema operativo. Controlla anche la scheda Funzionalità di rete per verificarne il supporto.

Utilizzo su sistemi operativi non supportati

Per le immagini sistema operativo che supportano gVNIC, ma non includono l'ultima versione del driver gVNIC, puoi scaricarla da GitHub.

Puoi configurare e installare manualmente l'ultima versione del driver gVNIC su VM Linux o Windows.

Dopo aver aggiornato il sistema operativo nella VM in modo che utilizzi gVNIC, crea un'immagine sistema operativo personalizzata basata sull'immagine sistema operativo. Puoi quindi utilizzare l'immagine sistema operativo personalizzata per creare altre VM che utilizzano gVNIC sul sistema operativo. Per saperne di più sulla creazione di VM utilizzando un'immagine sistema operativo personalizzata, consulta Crea un'immagine sistema operativo personalizzata che supporta gVNIC in questa pagina.

Utilizza le seguenti procedure per configurare e installare manualmente l'ultima versione del driver gVNIC.

Esegui l'aggiornamento all'ultimo driver gVNIC per Windows

Una versione aggiornata del driver gVNIC per Windows offre migliori prestazioni di rete. Se installato su un'istanza di computing che utilizza una serie di macchine supportata di terza generazione o successiva, il driver fornisce i seguenti miglioramenti:

  • Fino a 200 Gbps di larghezza di banda di rete se installato su un'istanza Windows configurata per utilizzare il networking Tier_1 e gVNIC.
  • Supporto per i frame Jumbo, tranne su N4.

Per utilizzare la versione aggiornata del driver gVNIC, in una finestra di Powershell, esegui il comando googet per aggiornare il driver gVNIC. Il comando genera un elenco di tutti gli aggiornamenti disponibili. Inserisci y quando ti viene richiesto il driver gVNIC.

googet update

Dopo aver installato e configurato Windows in modo da usare la versione aggiornata del driver gVNIC, puoi configurare i frame Jumbo per ottenere un throughput ottimale. Per saperne di più, consulta Unità massima di trasmissione.

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 sistema operativo pubblica che supporti gVNIC o creane una personalizzata con tag per l'utilizzo di gVNIC.
  2. Crea una VM utilizzando l'immagine sistema operativo pubblica o personalizzata. Durante la creazione della VM, configura l'interfaccia di rete in modo che utilizzi gVNIC.
  3. Verifica che gVNIC sia abilitata.

Se riscontri problemi, consulta Risoluzione dei problemi relativi a Google Virtual NIC.

Crea un'immagine sistema operativo personalizzata che supporti gVNIC

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

gcloud

  1. Seleziona un'immagine sistema operativo o una famiglia di immagini che supporta gVNIC. Per saperne di più, consulta la documentazione del sistema operativo.

  2. Utilizzando l'immagine sistema operativo o la famiglia di immagini selezionata nel passaggio precedente, crea un'immagine sistema operativo personalizzata e aggiungi tag con GVNIC. Per creare l'immagine sistema operativo personalizzata, utilizza il comando gcloud compute images create. Ad esempio, il seguente comando crea un'immagine sistema operativo personalizzata che supporta gVNIC e si basa su un'immagine 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 sistema operativo specifica che supporta gVNIC, ad esempio: rocky-linux-8-optimized-gcp-v20220719

      Se vuoi utilizzare l'immagine sistema operativo più recente 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 supporta gVNIC. Ad esempio: --source-image-family=rocky-linux-8-optimized-gcp.

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

    Esempio

    Per creare un'immagine sistema operativo Rocky Linux 8 ottimizzata per Trusted Cloud by S3NS utilizzando l'immagine 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 saperne di più 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 saperne di più, consulta Dettagli del sistema operativo.

  2. Utilizzando l'immagine sistema operativo o la famiglia di immagini selezionata nel passaggio precedente, crea un'immagine sistema operativo personalizzata e aggiungi tag con GVNIC. Per creare l'immagine 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:

    • PROJECT_ID: l'ID del progetto in cui creare la nuova immagine
    • IMAGE_NAME: un nome per l'immagine personalizzata
    • SOURCE_IMAGE_URI: l'URI per l'immagine o la famiglia di immagini sistema operativo specifica che vuoi utilizzare

      Ad esempio:

      • Immagine sistema operativo specifica: "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'ultima immagine sistema operativo non deprecata all'interno di quella famiglia. Per sapere di più su quando utilizzare le famiglie di immagini, consulta le best practice per le famiglie di immagini.

Creare una VM con il supporto di gVNIC

Puoi creare una VM utilizzando una delle immagini sistema operativo pubbliche supportate o utilizzando un'immagine sistema operativo personalizzata che hai creato seguendo la procedura descritta in Crea un'immagine sistema operativo personalizzata che supporta gVNIC.

(Facoltativo) Puoi abilitare DPDK sulla VM per un'elaborazione più rapida dei pacchetti di rete, una latenza ridotta e prestazioni coerenti.

Per le VM che supportano più interfacce di rete (NIC), puoi avere NIC di diversi tipi collegate alla VM perché il supporto dell'interfaccia è configurato per ciascuna NIC. Sebbene questa opzione sia supportata, non è quella consigliata. Per le VM che supportano più NIC, assicurati di specificare nic-type=GVNIC per ogni interfaccia di rete al momento della creazione della VM.

Crea una VM utilizzando un'immagine sistema operativo pubblica

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

Crea una VM utilizzando un'immagine sistema operativo personalizzata

Se non utilizzi un'immagine sistema operativo pubblica che supporta gVNIC, devi prima crearne una personalizzata che la supporti. Poi utilizza l'immagine sistema operativo personalizzata per creare una VM utilizzando la consoleTrusted Cloud , Google Cloud CLI o REST.

Console

  1. Nella console Trusted Cloud , vai alla pagina Crea un'istanza.

    Vai a Crea un'istanza

  2. Inserisci il Nome dell'istanza VM.

  3. Seleziona la Zona in cui creare la VM.

  4. Nella sezione Disco di avvio, fai clic su Cambia.

  5. Nel riquadro Disco di avvio, nella scheda Immagini personalizzate, completa quanto segue:

    1. Scegli il Progetto di origine che contiene l'immagine sistema operativo che hai creato in precedenza.
    2. Seleziona l'immagine dal menu a discesa Immagine.
    3. Fai clic su Seleziona.
  6. Per impostare gVNIC come interfaccia di rete, espandi la sezione Opzioni avanzate e segui questi passaggi:

    1. Espandi la sezione Networking.
    2. In Scheda di interfaccia di rete, seleziona gVNIC.
  7. Apporta ulteriori personalizzazioni della VM, in base alle necessità.

  8. Fai clic sul pulsante Crea per creare l'istanza VM.

gcloud

  1. Crea la VM utilizzando il comando gcloud compute instances create. Per il disco di avvio, specifica l'immagine sistema operativo personalizzata creata in precedenza. Per l'interfaccia di rete, imposta il valore del flag nic-typesu 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
    

    Sostituisci quanto segue:

    • VM_NAME: il nome della nuova VM.
    • ZONE: la zona in cui creare la VM.
    • MACHINE_TYPE: il tipo di macchina da utilizzare per la creazione dell'istanza VM. Se non specifichi un tipo di macchina, il valore predefinito è n1-standard-1.
    • IMAGE_NAME: l'immagine sistema operativo creata nel passaggio precedente.
    • YOUR_IMAGE_PROJECT: il nome del progetto che contiene l'immagine sistema operativo
  2. (Facoltativo) Verifica che Compute Engine abbia 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 con un tipo di macchina n1-standard-1 nella zona us-west1-b utilizzando un'immagine sistema operativo denominata my-gvnic-rocky8 nel progetto my-project-12345, esegui il seguente 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 sistema operativo personalizzata creata 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: il 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 sistema operativo
  • IMAGE_NAME: l'immagine sistema operativo creata nel passaggio precedente.

Verificare che gVNIC sia abilitata

Linux

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

Per installare lo strumento lshw nell'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. Nell'istanza VM Windows, apri Gestione dispositivi.
  2. In Adattatori di rete, dovresti vedere: "Google Ethernet Adapter"

Risoluzione dei problemi

Per risolvere i problemi relativi a gVNIC, consulta Risoluzione dei problemi relativi a Google Virtual NIC.

Passaggi successivi