Usar la interfaz de red IDPF


Las instancias de hardware desnudo disponibles con series de máquinas como C3 y X4 usan la función de plano de datos de infraestructura (IDPF), que es un dispositivo de función de plano de datos de red PCIe estandarizado y de varios proveedores. IDPF es un dispositivo físico. El controlador IDPF se incluye en el kernel de las imágenes del sistema operativo (SO) Linux.

Antes de empezar

  • Si aún no lo has hecho, configura la autenticación. La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

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

    gcloud

    1. Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    2. Set a default region and zone.

    REST

    Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.

      Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .

Funciones admitidas con IDPF

Al igual que con gVNIC, se admiten las siguientes funciones con IDPF:

Limitaciones de la interfaz de red IDPF

Cuando utilices la interfaz de red IDPF, ten en cuenta las siguientes limitaciones:

  • Solo se admite una NIC por instancia. No puedes crear una instancia de proceso con varias NICs.
  • IDPF solo admite la asignación de colas predeterminada con 16 colas de recepción y transmisión (RX/TX) por NIC.
  • Si usas DPDK con una instancia de hardware desnudo, DPDK sustituye a IDPF como controlador de la NIC física. La aplicación DPDK debe reenviar paquetes al kernel, por ejemplo, a través de una interfaz TAP.

Descripción general del uso de IDPF con instancias de Bare Metal

Para crear una instancia de hardware desnudo que use IDPF, sigue estos pasos:

  1. Elige una imagen de SO pública que admita IDPF o crea una imagen de SO personalizada que esté etiquetada para usar IDPF.
  2. Crea una instancia de hardware desnudo con la imagen de SO pública o personalizada. Durante la creación de la instancia, configura la interfaz de red para que use IDPF.
  3. Comprueba que IDPF esté habilitado.

Asistencia para sistemas operativos

En Compute Engine, IDPF está disponible con un número limitado de imágenes de SO públicas compatibles.

Para obtener información sobre los sistemas operativos compatibles con IDPF, consulta la pestaña Interfaces de un sistema operativo.

Uso en sistemas operativos no compatibles

En el caso de las imágenes de SO que no admitan IDPF, ponte en contacto con el distribuidor del sistema operativo para incluir el controlador IDPF.

Una vez que tengas una imagen del sistema operativo que incluya IDPF, importa un disco virtual de arranque que contenga el sistema operativo personalizado. A continuación, puedes usar la imagen de SO personalizada para crear instancias de hardware desnudo que usen IDPF en ese sistema operativo. Para obtener más información sobre cómo crear una imagen de SO personalizada para usarla con instancias de hardware desnudo, consulta el artículo Crear una imagen de SO personalizada compatible con IDPF de esta página.

Crear una imagen de SO personalizada que admita IDPF

Si necesitas una imagen o una versión del SO diferente para tu instancia de Bare Metal de las que proporciona Google Cloud, puedes crear la imagen del SO con la CLI de Google Cloud o con REST. Para obtener información detallada y consultar las prácticas recomendadas para crear imágenes de SO personalizadas, consulta el artículo Crear imágenes de SO personalizadas.

gcloud

Cuando crees la imagen personalizada, ya sea a partir de una Google Cloud imagen proporcionada o de una imagen de SO importada, debes etiquetar la imagen de SO con IDPF. Usa el comando gcloud compute images create, tal como se muestra en el siguiente ejemplo:

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

Haz los cambios siguientes:

  • IMAGE_NAME: el nombre de la imagen personalizada.
  • SOURCE_IMAGE: una imagen de SO específica que admita IDPF, por ejemplo, sles-15-sp4-sap-v20240208-x86-64.

    Si quieres usar la imagen del SO más reciente de una familia de imágenes, sustituye la marca --source-image por la marca --source-image-family y asigna a esta última el valor de una familia de imágenes que admita IDPF. Por ejemplo: --source-image-family=sles-15-sp4-sap.

  • SOURCE_IMAGE_PROJECT: el nombre del proyecto que contiene la imagen o la familia de imágenes del SO de origen.

    Ejemplo

    Para crear una imagen del SO SUSE Linux Enterprise Server (SLES) con la imagen del SO más reciente de la familia de imágenes sles-15-sp5-sap de Compute Engine, ejecuta el siguiente 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
    

    Para obtener más información sobre cuándo usar familias de imágenes, consulta las prácticas recomendadas para familias de imágenes.

REST

  1. Selecciona una imagen o una familia de imágenes del SO que admita IDPF. Para obtener más información, consulta los detalles del sistema operativo.

  2. Con la imagen del SO o la familia de imágenes del SO seleccionada en el paso anterior, crea una imagen del SO y etiquétala con IDPF. Para crear la imagen del SO, usa el método images.insert.

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

    Haz los cambios siguientes:

    • IMAGE_NAME: el nombre de la imagen personalizada que vas a crear.
    • SOURCE_IMAGE_URI: el URI de la imagen de SO o de la familia de imágenes de SO específicas que quieras usar.

      Por ejemplo:

      • Imagen de SO específica: "sourceImage": "projects/suse-sap-cloud/global/images/sles-15-sp5-sap-v20240427-x86-64"
      • Familia de imágenes: "sourceImage": "projects/suse-sap-cloud/global/images/family/sles-15-sp5-sap".

      Cuando especificas una familia de imágenes, Compute Engine crea una VM a partir de la imagen de SO más reciente y no obsoleta de esa familia. Para obtener más información sobre cuándo usar familias de imágenes, consulta las prácticas recomendadas para familias de imágenes.

Crear una instancia de Bare Metal con compatibilidad con IDPF

Puedes crear una instancia de hardware desnudo con una de las imágenes de SO públicas que admitan IDPF o con una imagen de SO personalizada que hayas creado siguiendo los pasos que se indican en Crear una imagen de SO personalizada que admita IDPF.

Crear una instancia de hardware desnudo con una imagen de SO pública

Para crear una instancia de hardware desnudo con una imagen de SO pública que admita IDPF, sigue las instrucciones de Crear una instancia de hardware desnudo.

Crear una instancia de hardware desnudo con una imagen de SO personalizada

Si no usas una imagen de SO pública que admita IDPF, primero debes crear una imagen de SO personalizada que admita IDPF. A continuación, usa esa imagen de SO personalizada para crear una instancia de hardware desnudo con Google Cloud CLI o REST.

gcloud

  1. Crea la instancia de hardware desnudo con el comando gcloud compute instances create. En la imagen del disco de arranque, especifica la imagen de SO personalizada que has creado anteriormente. En la interfaz de red, asigna el valor IDPF a la marca nic-type.

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

    Haz los cambios siguientes:

    • INSTANCE_NAME: un nombre para la nueva instancia.
    • ZONE: la zona en la que se creará la instancia.
    • IMAGE_NAME: la imagen del SO personalizado que se creó anteriormente.
    • YOUR_IMAGE_PROJECT: el nombre del proyecto que contiene la imagen del SO personalizado.
  2. Opcional: Verifica que Compute Engine haya creado la instancia y que el valor de nicType sea IDPF.

    gcloud compute instances describe INSTANCE_NAME \
       --zone=ZONE
    

    Haz los cambios siguientes:

    • INSTANCE_NAME: el nombre de la instancia.
    • ZONE: la zona en la que has creado la instancia.

    Ejemplo

    Para crear una instancia de hardware desnudo en la zona eu-west4-b con una imagen de SO SLES 15 SP5 para SAP personalizada llamada my-sles15sp5-metal-os que se encuentra en el proyecto my-project-12345, ejecuta el siguiente 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
    

    Cosas que debes tener en cuenta

    La marca --network-interface tiene marcas de nivel inferior, como las siguientes:

    • --address: asignar una dirección IP a la instancia
    • --network: la red de la que formará parte la interfaz.
    • --network-tier: el nivel de red de la interfaz
    • --subnet: la subred a la que debe pertenecer la interfaz. Si también se especifica --network, la subred debe formar parte de la red especificada.
    • --private-network-ip: especifica la IP de RFC 1918 que se asignará a la instancia.

    Para ver una lista completa, consulta la marca --network-interface.

REST

Crea la instancia de hardware desnudo con el método instances.insert.

  • En la imagen del disco de arranque, especifica la imagen de SO personalizada que has creado anteriormente.
  • En la interfaz de red, asigna el valor IDPF al campo nicType.
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
    }
  ]
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto en el que se va a crear la instancia.
  • ZONE: la zona en la que se creará la instancia.
  • INSTANCE_NAME: un nombre para la nueva instancia.
  • NETWORK: la URL del recurso de red de esta instancia. Si no se especifica ni la red ni la subred, se usa la red predeterminada global/networks/default.
  • SUBNET_NAME: nombre de la subred. La red se deduce de la subred especificada. Este campo es opcional.
  • YOUR_IMAGE_PROJECT: el nombre del proyecto que contiene la imagen del SO.
  • IMAGE_NAME: el nombre de la imagen del SO personalizado que se creó en el paso anterior.

Verificar que IDPF esté habilitado

Puedes usar la herramienta lshw para extraer información detallada sobre la configuración de hardware de la instancia de hardware desnudo.

Para instalar la herramienta lshw en tu instancia de Linux, abre una conexión SSH al SO invitado y, a continuación, ejecuta el siguiente comando:

sudo apt-get install lshw -y

Para determinar si la instancia usa la interfaz de red IDPF, ejecuta el siguiente comando:

sudo lshw -class network

A continuación, se muestra un ejemplo del resultado:

*-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

Siguientes pasos