Usa la interfaz de red de IDPF


Las instancias de Bare Metal disponibles con series de máquinas como C3 y X4 usan la función del plano de datos de infraestructura (IDPF), que es un dispositivo de función de plano de datos de red PCIe estandarizado y de múltiples 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 comenzar

  • Si aún no lo hiciste, configura la autenticación. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud. Para ejecutar código o muestras 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. Install the Google Cloud CLI, then initialize it by running the following command:

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

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

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

        gcloud init

      Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.

Funciones compatibles con IDPF

Al igual que gVNIC, las siguientes funciones son compatibles con IDPF:

  • Rendimiento de red Tier_1 por VM
  • Compatibilidad con MTU grandes (marcos jumbo)
  • Características de la red de VPC:
    • Cloud Next Generation Firewall
    • Duplicación de paquetes
    • Registros de flujo de VPC
    • Compatibilidad con IPv6
    • Intercambio de tráfico entre redes de VPC
    • Network Connectivity Center

Limitaciones de la interfaz de red de IDPF

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

  • Solo se admite una NIC para la instancia. No puedes crear una instancia de procesamiento con varios NIC.
  • 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 Bare Metal, DPDK reemplaza IDPF como controlador para la NIC física. La aplicación DPDK debe reenviar paquetes al kernel, por ejemplo, a través de una interfaz de TAP.

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

Para crear una instancia de Bare Metal que use IDPF, completa los siguientes 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 Bare Metal con la imagen de SO pública o personalizada. Durante la creación de la instancia, configura la interfaz de red para usar IDPF.
  3. Verifica que IDPF esté habilitada.

Compatibilidad con el sistema operativo

En Compute Engine, IDPF está disponible con una cantidad limitada de imágenes del SO públicas compatibles.

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

Uso en sistemas operativos no compatibles

Para las imágenes de SO que no admiten IDPF, consulta con el distribuidor del sistema operativo si incluyes el controlador IDPF.

Después de obtener una imagen del sistema operativo que incluya IDPF, importa un disco virtual de arranque que contenga el sistema operativo personalizado. Luego, puedes usar la imagen de SO personalizada para crear instancias de Bare Metal que usen IDPF en ese sistema operativo. Para obtener más información acerca de cómo crear una imagen de SO personalizada para usar con instancias de Bare Metal, consulta Crea una imagen de SO personalizada que admita IDPF en esta página.

Crea una imagen de SO personalizada que admita IDPF

Si necesitas una imagen o una versión de SO diferente para tu instancia de Bare Metal que la que proporciona Google Cloud, puedes crear la imagen de SO con Google Cloud CLI o REST Si deseas obtener información detallada y prácticas recomendadas para crear imágenes de SO personalizadas, consulta Crea imágenes de SO personalizadas.

gcloud

Cuando creas la imagen personalizada, ya sea desde una imagen proporcionada por Google Cloud o una imagen de SO importada, debes etiquetar la imagen de SO con IDPF. Usa el comando gcloud compute images create, 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

Reemplaza lo siguiente:

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

    Si deseas usar la imagen de SO más reciente en una familia de imágenes, reemplaza la marca --source-image por la marca --source-image-family y configura su valor en 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 de SO de origen.

    Ejemplo

    Para crear una imagen de SO de SUSE Linux Enterprise Server (SLES) con la imagen de 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 el balanceo de cargas, consulta Prácticas recomendadas para las familias de imágenes.

REST

  1. Selecciona una imagen de SO o una familia de imágenes que admita IDPF. Para obtener más información, consulta Detalles de los sistemas operativos.

  2. Usa la imagen o la familia de imágenes de SO seleccionada en el paso anterior y crea una imagen de SO y etiquétala con IDPF. Para crear la imagen de 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"
       }
     ]
    }
    

    Reemplaza lo siguiente:

    • IMAGE_NAME: un nombre para la imagen personalizada que que estás creando.
    • SOURCE_IMAGE_URI: el URI de la imagen o familia de imágenes de SO específica que deseas 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 no obsoleta más reciente de esa familia. Para obtener más información sobre el balanceo de cargas, consulta Prácticas recomendadas para las familias de imágenes.

Crea una instancia de Bare Metal con compatibilidad con IDPF

Puedes crear una instancia de Bare Metal con una de las imágenes de SO públicas que admita IDPF o con una imagen de SO personalizada que creaste con los pasos que se indican en Crea una imagen de SO personalizada compatible con IDPF

Crea una instancia de Bare Metal con una imagen de SO pública

Para crear una instancia de Bare Metal con una imagen de SO pública compatible con IDPF, sigue las instrucciones en Crea una instancia de Bare Metal.

Crea una instancia de Bare Metal 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. Luego, usa esa imagen de SO personalizada para crear una instancia de Bare Metal con Google Cloud CLI o REST.

gcloud

  1. Crea la instancia de Bare Metal con el comando gcloud compute instances create. Para la imagen de disco de arranque, especifica la imagen de SO personalizada que creaste antes. Para la interfaz de red, establece el valor de la marca nic-type en IDPF.

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

    Reemplaza lo siguiente:

    • INSTANCE_NAME: un nombre para la instancia nueva.
    • ZONE: la zona en la cual se creará la instancia.
    • IMAGE_NAME: la imagen de SO personalizada que se creó antes.
    • YOUR_IMAGE_PROJECT: el nombre del proyecto que contiene la imagen de SO personalizada.
  2. Opcional: Verifica que Compute Engine haya creado la instancia y que nicType esté configurado como IDPF.

    gcloud compute instances describe INSTANCE_NAME \
       --zone=ZONE
    

    Reemplaza lo siguiente:

    • INSTANCE_NAME: El nombre de la instancia.
    • ZONE: la zona en la que creaste la instancia.

    Ejemplo

    Para crear una instancia de Bare Metal en la zona eu-west4-b con una imagen de SO personalizada de SLES 15 SP5 para SAP llamada my-sles15sp5-metal-os que esté 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
    

    Aspectos que debes tener en cuenta

    La marca --network-interface tiene marcas de subnivel como las siguientes:

    • --address: Asigna 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: Es la subred de la que formará parte la interfaz. Si también se especifica --network, la subred debe ser parte de la red especificada.
    • --private-network-ip: Especifica la IP RFC 1918 para asignar a la instancia.

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

REST

Crea la instancia de Bare Metal con el método instances.insert.

  • Para la imagen de disco de arranque, especifica la imagen de SO personalizada que creaste antes.
  • En la interfaz de red, establece el valor del campo nicType en 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
    }
  ]
}

Reemplaza lo siguiente:

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

Verifica que IDPF esté habilitada

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

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

sudo apt-get install lshw -y

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

sudo lshw -class network

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

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

¿Qué sigue?