Utilizzo dell'interfaccia di rete IDPF


Le istanze bare metal disponibili con serie di macchine come C3 e X4 utilizzano Infrastructure Data Plane Function (IDPF), che è un dispositivo di funzione del piano dati di rete PCIe standardizzato e multi-vendor. L'IDPF è un dispositivo fisico. Il driver IDPF è incluso nel kernel delle immagini del sistema operativo (OS) Linux.

Prima di iniziare

  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi Google Cloud. 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:

    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

      Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.

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

        gcloud init

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

Funzionalità supportate con IDPF

Analogamente a gVNIC, le seguenti funzionalità sono supportate con IDPF:

Limitazioni dell'interfaccia di rete IDPF

Quando utilizzi l'interfaccia di rete IDPF, tieni presente le seguenti limitazioni:

  • Per l'istanza è supportata una sola NIC. Non puoi creare un'istanza compute con più NIC.
  • IDPF supporta solo l'allocazione della coda predefinita con 16 code di ricezione e trasmissione (RX/TX) per NIC.
  • Se utilizzi DPDK con un'istanza bare metal, DPDK sostituisce IDPF come driver per la NIC fisica. L'applicazione DPDK deve inoltrare i pacchetti al kernel, ad esempio tramite un'interfaccia TAP.

Panoramica dell'utilizzo di IDPF con le istanze bare metal

Per creare un'istanza bare metal che utilizza IDPF, completa i seguenti passaggi:

  1. Scegli un'immagine del sistema operativo pubblica che supporti IDPF o crea un'immagine del sistema operativo personalizzata con tag per l'utilizzo di IDPF.
  2. Crea un'istanza bare metal utilizzando l'immagine del sistema operativo pubblica o personalizzata. Durante la creazione dell'istanza, configura l'interfaccia di rete in modo che utilizzi IDPF.
  3. Verifica che IDPF sia abilitato.

Supporto del sistema operativo

Su Compute Engine, IDPF è disponibile con un numero limitato di immagini di sistema operativo pubblico supportate.

Per informazioni sui sistemi operativi supportati con IDPF, consulta la scheda Interfacce per un sistema operativo.

Utilizzo su sistemi operativi non supportati

Per le immagini del sistema operativo che non supportano IDPF, rivolgiti al distributore del sistema operativo per sapere come includere il driver IDPF.

Dopo aver ottenuto un'immagine del sistema operativo che include IDPF, importa un disco virtuale avviabile che contiene il sistema operativo personalizzato. Puoi quindi utilizzare l'immagine del sistema operativo personalizzato per creare istanze bare metal che utilizzano IDPF su quel sistema operativo. Per saperne di più sulla creazione di un'immagine del sistema operativo personalizzata da utilizzare con le istanze bare metal, consulta Creare un'immagine del sistema operativo personalizzata che supporta IDPF in questa pagina.

Crea un'immagine del sistema operativo personalizzata che supporti IDPF

Se per la tua istanza Bare Metal hai bisogno di un'immagine o di una versione del sistema operativo diversa da quelle fornite da Google Cloud, puoi creare l'immagine del sistema operativo utilizzando Google Cloud CLI o REST. Per informazioni dettagliate e best practice per la creazione di immagini del sistema operativo personalizzate, vedi Creare immagini del sistema operativo personalizzate.

gcloud

Quando crei l'immagine personalizzata da un'immagine fornita da Google Cloud o da un'immagine del sistema operativo importata, devi taggare l'immagine del sistema operativo con IDPF. Utilizza il comando gcloud compute images create come mostrato nell'esempio seguente:

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

Sostituisci quanto segue:

  • IMAGE_NAME: un nome per l'immagine personalizzata.
  • SOURCE_IMAGE: un'immagine del sistema operativo specifica che supporta IDPF, ad esempio sles-15-sp4-sap-v20240208-x86-64.

    Se vuoi utilizzare l'immagine del 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 IDPF, ad esempio: --source-image-family=sles-15-sp4-sap.

  • 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 del sistema operativo SUSE Linux Enterprise Server (SLES) utilizzando l'immagine del sistema operativo più recente della famiglia di immagini sles-15-sp5-sap Compute Engine, esegui il seguente comando:

    gcloud compute images create my-sles15sp5-metal-os \
      --source-image-family=sles-15-sp5-sap \
      --source-image-project=suse-sap-cloud \
      --guest-os-features=IDPF
    

    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 del sistema operativo che supporta IDPF. Per saperne di più, consulta Dettagli del sistema operativo.

  2. Utilizzando l'immagine del sistema operativo o la famiglia di immagini selezionata nel passaggio precedente, crea un'immagine del sistema operativo e taggala con IDPF. 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":"IDPF"
       }
     ]
    }
    

    Sostituisci quanto segue:

    • IMAGE_NAME: un nome per l'immagine personalizzata che stai creando.
    • SOURCE_IMAGE_URI: l'URI per l'immagine o la famiglia di immagini del sistema operativo specifico che vuoi utilizzare.

      Ad esempio:

      • Immagine del sistema operativo specifica: "sourceImage": "projects/suse-sap-cloud/global/images/sles-15-sp5-sap-v20240427-x86-64"
      • Famiglia di immagini: "sourceImage": "projects/suse-sap-cloud/global/images/family/sles-15-sp5-sap".

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

Creare un'istanza bare metal con il supporto IDPF

Puoi creare un'istanza bare metal utilizzando una delle immagini del sistema operativo pubblico che supporta IDPF o un'immagine del sistema operativo personalizzata che hai creato seguendo la procedura descritta in Creare un'immagine del sistema operativo personalizzata che supporta IDPF.

Creare un'istanza bare metal utilizzando un'immagine del sistema operativo pubblica

Per creare un'istanza bare metal utilizzando un'immagine del sistema operativo pubblico che supporta IDPF, segui le istruzioni riportate in Creare un'istanza bare metal.

Creare un'istanza bare metal utilizzando un'immagine del sistema operativo personalizzata

Se non utilizzi un'immagine del sistema operativo pubblico che supporta IDPF, devi prima creare un'immagine del sistema operativo personalizzata che supporti IDPF. Poi, utilizza l'immagine del sistema operativo personalizzata per creare un'istanza bare metal utilizzando Google Cloud CLI o REST.

gcloud

  1. Crea l'istanza bare metal utilizzando il comando gcloud compute instances create. Per l'immagine del disco di avvio, specifica l'immagine del sistema operativo personalizzata creata in precedenza. Per l'interfaccia di rete, imposta il valore del flag nic-type su IDPF.

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

    Sostituisci quanto segue:

    • INSTANCE_NAME: un nome per la nuova istanza.
    • ZONE: la zona in cui creare l'istanza.
    • IMAGE_NAME: l'immagine del sistema operativo personalizzato creata in precedenza.
    • YOUR_IMAGE_PROJECT: il nome del progetto che contiene l'immagine del sistema operativo personalizzato.
  2. (Facoltativo) Verifica che Compute Engine abbia creato l'istanza e che nicType sia impostato su IDPF.

    gcloud compute instances describe INSTANCE_NAME \
       --zone=ZONE
    

    Sostituisci quanto segue:

    • INSTANCE_NAME: il nome dell'istanza.
    • ZONE: la zona in cui hai creato l'istanza.

    Esempio

    Per creare un'istanza bare metal nella zona eu-west4-b utilizzando un'immagine SLES 15 SP5 per il sistema operativo SAP personalizzata denominata my-sles15sp5-metal-os nel progetto my-project-12345, esegui il seguente comando:

    gcloud compute instances create test-x4-metal-custom-os \
        --zone=eu-west4-b \
        --machine-type=x4-megamem-1440-metal \
        --image=my-sles15sp5-metal-os \
        --image-project=my-project-12345 \
        --network-interface=nic-type=IDPF
    

    Aspetti da considerare

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

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

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

REST

Crea l'istanza bare metal utilizzando il metodo instances.insert.

  • Per l'immagine del disco di avvio, specifica l'immagine del sistema operativo personalizzata creata in precedenza.
  • Per l'interfaccia di rete, imposta il valore del campo nicType su IDPF.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "name":"INSTANCE_NAME",
  "networkInterfaces":[
    {
      "nicType":"IDPF",
      "network":"NETWORK",
      "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 l'istanza.
  • ZONE: la zona in cui creare l'istanza.
  • INSTANCE_NAME: un nome per la nuova istanza.
  • NETWORK: l'URL della risorsa di rete per questa istanza. Se non vengono specificate né la rete né la sottorete, 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 del sistema operativo.
  • IMAGE_NAME: il nome dell'immagine del sistema operativo personalizzato creata nel passaggio precedente.

Verificare che IDPF sia abilitato

Puoi utilizzare lo strumento lshw per estrarre informazioni dettagliate sulla configurazione hardware dell'istanza bare metal.

Per installare lo strumento lshw nell'istanza Linux, apri una connessione SSH all'OS guest ed esegui il seguente comando:

sudo apt-get install lshw -y

Per determinare se l'istanza utilizza l'interfaccia di rete IDPF, esegui il seguente comando:

sudo lshw -class network

Di seguito è riportato un esempio di output:

*-network
       description: Ethernet interface
       product: Intel Corporation
       vendor: Intel Corporation
       physical id: 0
       bus info: pci@0000:05:00.0
       logical name: enp5s0f0
       version: 11
       serial: 42:01:0a:96:00:02
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi msix pciexpress bus_master cap_list ethernet physical
       configuration: autonegotiation=off broadcast=yes driver=idpf driverversion=6.5.0-1023-gcp duplex=full ip=10.150.0.2 latency=0 link=yes multicast=yes
       resources: iomemory:21ff0-21fef iomemory:21ff0-21fef irq:16 memory:21ffe0000000-21ffefffffff memory:21fff2000000-21fff203ffff

Passaggi successivi