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), 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 è il processo mediante il quale la tua identità viene verificata per l'accesso a servizi e API di 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. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    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.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

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

Funzionalità supportate con IDPF

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

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 di computing con più NIC.
  • IDPF supporta solo la distribuzione della coda predefinita con 16 code di ricezione e trasmissione (RX/TX) per NIC.
  • Se DPDK viene utilizzata con un'istanza Bare Metal, 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 pubblica del sistema operativo che supporti IDPF o creane una personalizzata con tag per l'utilizzo di IDPF.
  2. Crea un'istanza Bare Metal utilizzando un'immagine pubblica o una personalizzata del sistema operativo. Durante la creazione dell'istanza, configura l'interfaccia di rete in modo da poter utilizzare IDPF.
  3. Verifica che IDPF sia abilitato.

Supporto del sistema operativo

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

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

Utilizzo su sistemi operativi non supportati

Per immagini del sistema operativo che non supportano IDPF, rivolgiti al relativo distributore 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 personalizzata 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 Crea un'immagine del sistema operativo personalizzata che supporti 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, consulta la relativa sezione.

gcloud

Quando crei un'immagine personalizzata da un' Google Cloud immagine fornita 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 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 del sistema operativo che supporti 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 aggiungi tag 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 dall'immagine più recente non deprecata del sistema operativo all'interno di quella famiglia. Per maggiori informazioni su quando utilizzare le famiglie di immagini, consulta le best practice per le famiglie di immagini.

Crea un'istanza Bare Metal con il supporto IDPF

Puoi creare un'istanza Bare Metal utilizzando una delle immagini del sistema operativo pubbliche che supporta IDPF o un'immagine del sistema operativo personalizzata che hai creato seguendo i passaggi descritti in Crea un'immagine del sistema operativo personalizzata che supporti IDPF.

Crea un'istanza Bare Metal utilizzando un'immagine del sistema operativo pubblica

Per creare un'istanza Bare Metal utilizzando un'immagine del sistema operativo pubblica che supporta IDPF, segui le istruzioni riportate in Crea un'istanza Bare Metal.

Crea un'istanza Bare Metal utilizzando un'immagine del sistema operativo personalizzata

Se non utilizzi un'immagine del sistema operativo pubblica che supporta IDPF, devi prima crearne una personalizzata con le stesse funzioni. Dopodiché, 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: il nome per la nuova istanza
    • ZONE: la zona in cui creare l'istanza
    • IMAGE_NAME: l'immagine del sistema operativo personalizzata creata in precedenza
    • YOUR_IMAGE_PROJECT: il nome del progetto che contiene l'immagine del sistema operativo personalizzata
  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 del sistema operativo SLES 15 SP5 per 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 elementi:

    • --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: il nome per la nuova istanza
  • NETWORK: l'URL della risorsa di rete per questa istanza. 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 del sistema operativo
  • IMAGE_NAME: il nome dell'immagine del sistema operativo personalizzata creata nel passaggio precedente

Verifica 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 al sistema operativo 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