Utilizzo di Google Virtual NIC

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

In qualità di interfaccia di rete di nuova generazione che ha successo con VirtIO, gVNIC sostituisce VirtIO-Net come unica interfaccia di rete supportata in Compute Engine per tutti i nuovi tipi di macchina (dalla terza generazione in poi). Le più recenti serie di macchine le funzionalità di networking richiedono gVNIC anziché VirtIO. Utilizzo di gVNIC della moderna interfaccia di I/O con le VM di Compute Engine offre i seguenti vantaggi:

  • Fornisce prestazioni migliori.
  • Migliora la coerenza riducendo i problemi rumorosi nei vicini.
  • Introduce nuove funzionalità di rete oltre a quelle di VirtIO.

gVNIC è supportato e consigliato in tutte le famiglie di macchine, tipi di macchine e generazioni.

Per raggiungere le seguenti velocità di larghezza di banda massime è necessario il gVNIC:

Devi utilizzare gVNIC come interfaccia di rete per Confidential VM di Compute Engine, VM di serie di macchine di terza generazione o successive e VM in esecuzione Piattaforma CPU arm.

Prima di iniziare

  • Se utilizzi gVNIC con le VM Windows Server 2022 o Windows 11, aggiorna driver gVNIC al pacchetto GooGet versione 1.0.0@45 o successiva per migliorare per la velocità effettiva di rete. Per ulteriori informazioni, vedi problemi noti.
  • Se non l'hai già fatto, configura l'autenticazione. Autenticazione è Il processo di verifica dell'identità per l'accesso ai servizi e alle API di Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione Compute Engine come segue.

    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. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

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

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

        Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

        gcloud init

      Per ulteriori informazioni, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

Prezzi

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

Per un elenco di metodi aggiuntivi utilizzabili per trovare informazioni sui prezzi, consulta i prezzi di Compute Engine.

Supporto del sistema operativo

In Compute Engine, puoi scegliere di utilizzare gVNIC su qualsiasi immagini dei sistemi operativi pubblici (OS) supportate. Puoi installa manualmente il driver gVNIC nei seguenti casi:

  • L'immagine del sistema operativo non include il driver gVNIC
  • L'immagine del sistema operativo non dispone della versione più recente del driver gVNIC

Per i sistemi operativi supportati, consulta la scheda Interfacce per 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 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 sistema operativo personalizzata in base a quel sistema operativo dell'immagine. Puoi quindi utilizzare l'immagine sistema operativo personalizzata per creare VM aggiuntive 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 supporti gVNIC su questo .

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

Limitazioni

  • Offload di grandi dimensioni (LRO) non è supportato. L'offload di ricezione generico (GRO) è abilitato per impostazione predefinita per le VM che usano gVNIC.
  • Offload invio grande, versione 2 (LSOV2) non è supportato sulle VM Windows 11 o Windows Server 2022. driver gVNIC 1.0.0@45 e successive disabilitano LSOV2. Per informazioni su come controllare e aggiornare il driver gVNIC della VM su Microsoft Windows, consulta problemi noti.

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 pubblico che supporta gVNIC o crea un'immagine sistema operativo 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, configurare l'interfaccia di rete per l'utilizzo di gVNIC.
  3. Verifica che gVNIC sia attivato.

In caso di problemi, consulta Risoluzione dei problemi relativi al NIC virtuale di Google.

Crea un'immagine sistema operativo personalizzata che supporti gVNIC

Puoi creare l'immagine sistema operativo utilizzando Google Cloud CLI oppure REST. Per dettagli informazioni e best practice per la creazione di immagini di sistema operativo personalizzate, consulta Crea immagini sistema operativo personalizzate.

gcloud

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

  2. Utilizzando l'immagine sistema operativo o la famiglia di immagini selezionate nel passaggio precedente, crea un'immagine sistema operativo personalizzata e tagga questa immagine sistema operativo con GVNIC. Per creare il cluster un'immagine sistema operativo personalizzata, utilizza Comando gcloud compute images create. Ad esempio, il comando seguente crea un'immagine sistema operativo personalizzata che supporta gVNIC e che 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 di sistema operativo più recente in un Famiglia di immagini, sostituisci Flag --source-image con il flag --source-image-family impostato il suo valore a 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 del sistema operativo di origine

    Esempio

    Per creare un'immagine Rocky Linux 8 Optimized for Google Cloud OS utilizzando l'ultima immagine del sistema operativo da Compute Engine rocky-linux-8-optimized-gcp famiglia di immagini, 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, vedi Best practice per la famiglia di immagini.

REST

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

  2. Utilizzando l'immagine sistema operativo o la famiglia di immagini selezionate nel passaggio precedente, crea un'immagine sistema operativo e tagga questa immagine del sistema operativo con GVNIC. Per creare l'immagine sistema operativo, utilizza la 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 della specifica L'immagine o la famiglia di immagini del sistema operativo 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'immagine sistema operativo non deprecata più recente di quella famiglia. Per per ulteriori informazioni su quando utilizzare le famiglie di immagini, consulta Best practice per la famiglia di immagini.

Crea una VM con supporto gVNIC

Puoi creare una VM utilizzando uno dei immagini del sistema operativo pubblico supportate oppure utilizzando un'immagine sistema operativo personalizzata creata seguendo i passaggi Crea un'immagine sistema operativo personalizzata che supporti gVNIC.

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

Per le VM che supportano più interfacce di rete (NIC), puoi avere NIC di diversi tipi di connessione alla VM, perché il supporto dell'interfaccia è configurato NIC. Anche se questa funzionalità è supportata, ti sconsigliamo di questa configurazione. Per le VM che supportano più NIC, assicurati di specificare nic-type=GVNIC per ogni interfaccia di rete durante la creazione della VM.

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 alla pagina Creazione di VM e container con configurazione a larghezza di banda elevata.

Crea una VM utilizzando un'immagine sistema operativo personalizzata

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

Console

  1. Nella console Google 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 le seguenti operazioni:

    1. Scegli il progetto di origine che contiene l'immagine del sistema operativo che 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 ed eseguire le seguenti operazioni:

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

  8. Fai clic su Crea per creare l'istanza VM.

gcloud

  1. Crea la VM utilizzando 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 \
        --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: tipo di macchina da utilizzare quando la creazione dell'istanza VM. Se non specifichi un tipo di macchina, Il valore predefinito è n1-standard-1.
    • IMAGE_NAME: l'immagine del sistema operativo creata in al passaggio precedente.
    • YOUR_IMAGE_PROJECT: il nome del progetto che contiene l'immagine del sistema operativo.
  2. (Facoltativo) Verifica che Compute Engine abbia creato la VM e che nicType impostata 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 una macchina n1-standard-1 digita la zona us-west1-b utilizzando un'immagine sistema operativo denominata my-gvnic-rocky8 presente 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 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, vedi Flag --network-interface.

REST

Crea la VM utilizzando 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 da creare della VM.
  • ZONE: la zona in cui creare la VM.
  • VM_NAME: il nome della nuova VM.
  • NETWORK: l'URL della risorsa di rete per su questa VM. Se non viene specificata né la rete né la subnet, Viene utilizzata la rete predefinita global/networks/default.
  • SUBNET_NAME: nome della subnet. La rete viene dedotto dalla subnet specificata. Questo campo è facoltativo.
  • YOUR_IMAGE_PROJECT: il nome del progetto che contiene l'immagine del sistema operativo.
  • IMAGE_NAME: l'immagine del sistema operativo creata in al passaggio precedente.

Verifica che gVNIC sia abilitato

Linux

Puoi utilizzare lo strumento lshw per estrarre informazioni dettagliate sull'elemento 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 seguente 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. In Schede di rete, dovresti vedere: "Google Ethernet Adapter"

Risoluzione dei problemi

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

Passaggi successivi