Usando a interface de rede IDPF


As instâncias bare metal disponíveis com séries de máquinas como C3 e X4 usam o Infrastructure Data Plane Function (IDPF) , que é um dispositivo de função de plano de dados de rede PCIe padronizado e de vários fornecedores. IDPF é um dispositivo físico. O driver IDPF está incluído no kernel das imagens do sistema operacional (SO) Linux.

Antes de começar

  • Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar no Compute Engine selecionando uma das seguintes opções:

    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

      Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para 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.

      Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.

Recursos suportados com IDPF

Semelhante ao gVNIC, os seguintes recursos são compatíveis com IDPF:

Limitações da interface de rede IDPF

Ao usar a interface de rede IDPF, observe as seguintes limitações:

  • Apenas uma única NIC é suportada para a instância. Não é possível criar uma instância de computação com vários NICs.
  • O IDPF suporta apenas a alocação de fila padrão com 16 filas de recebimento e transmissão (RX/TX) por NIC.
  • Se você usar o DPDK com uma instância bare metal, o DPDK substituirá o IDPF como driver para a NIC física. O aplicativo DPDK deve encaminhar pacotes para o kernel, como por meio de uma interface TAP .

Visão geral do uso do IDPF com instâncias bare metal

Para criar uma instância bare metal que usa IDPF, conclua as etapas a seguir:

  1. Escolha uma imagem de sistema operacional pública que suporte IDPF ou crie uma imagem de sistema operacional personalizada marcada para usar IDPF.
  2. Crie uma instância bare metal usando a imagem de sistema operacional pública ou personalizada. Durante a criação da instância, configure a interface de rede para usar o IDPF.
  3. Verifique se o IDPF está ativado.

Suporte ao sistema operacional

No Compute Engine, o IDPF está disponível com um número limitado de imagens de sistema operacional público compatíveis.

Para obter informações sobre quais sistemas operacionais são suportados pelo IDPF, consulte a guia Interfaces para um sistema operacional .

Use em sistemas operacionais não suportados

Para imagens de sistema operacional que não suportam IDPF, verifique com o distribuidor do sistema operacional sobre a inclusão do driver IDPF.

Depois de obter uma imagem do sistema operacional que inclua o IDPF, importe um disco virtual inicializável que contenha o sistema operacional personalizado. Você pode então usar a imagem personalizada do sistema operacional para criar instâncias bare metal que usam IDPF nesse sistema operacional. Para obter mais informações sobre como criar uma imagem de sistema operacional personalizada para uso com instâncias bare metal, consulte Criar uma imagem de sistema operacional personalizada compatível com IDPF nesta página.

Crie uma imagem de sistema operacional personalizada compatível com IDPF

Se você precisar de uma imagem ou versão de sistema operacional diferente para sua instância bare metal daquelas fornecidas por Google Cloud, você pode criar a imagem do sistema operacional usando a Google Cloud CLI ou REST . Para obter informações detalhadas e práticas recomendadas para criar imagens de sistema operacional personalizadas, consulte Criar imagens de sistema operacional personalizadas .

gcloud

Ao criar a imagem personalizada, seja a partir de um Google Cloud imagem fornecida ou uma imagem do sistema operacional importada, você deverá marcar a imagem do sistema operacional com IDPF . Use o comando gcloud compute images create conforme mostrado no exemplo a seguir:

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

Substitua o seguinte:

  • IMAGE_NAME : um nome para a imagem personalizada.
  • SOURCE_IMAGE : uma imagem de sistema operacional específica que suporta IDPF, por exemplo: sles-15-sp4-sap-v20240208-x86-64 .

    Se você quiser usar a imagem do sistema operacional mais recente em uma família de imagens , substitua o sinalizador --source-image pelo sinalizador --source-image-family e defina seu valor como uma família de imagens compatível com IDPF, por exemplo: --source-image-family=sles-15-sp4-sap .

  • SOURCE_IMAGE_PROJECT : o nome do projeto que contém a imagem do sistema operacional de origem ou a família de imagens.

    Exemplo

    Para criar uma imagem do sistema operacional SUSE Linux Enterprise Server (SLES) usando a imagem de sistema operacional mais recente da família de imagens sles-15-sp5-sap do Compute Engine, execute o seguinte 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 obter mais informações sobre quando usar famílias de imagens, consulte Práticas recomendadas para famílias de imagens .

DESCANSAR

  1. Selecione uma imagem de sistema operacional ou família de imagens que suporte IDPF. Para obter mais informações, consulte Detalhes do sistema operacional .

  2. Usando a imagem do sistema operacional ou a família de imagens selecionada na etapa anterior, crie uma imagem do sistema operacional e marque essa imagem do sistema operacional com IDPF . Para criar a imagem do sistema operacional, use o 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"
       }
     ]
    }
    

    Substitua o seguinte:

    • IMAGE_NAME : um nome para a imagem personalizada que você está criando.
    • SOURCE_IMAGE_URI : o URI da imagem do sistema operacional ou da família de imagens específica que você deseja usar.

      Por exemplo:

      • Imagem específica do sistema operacional: "sourceImage": "projects/suse-sap-cloud/global/images/sles-15-sp5-sap-v20240427-x86-64"
      • Família de imagens: "sourceImage": "projects/suse-sap-cloud/global/images/family/sles-15-sp5-sap" .

      Quando você especifica uma família de imagens, o Compute Engine cria uma VM a partir da imagem de sistema operacional mais recente e não obsoleta dessa família. Para obter mais informações sobre quando usar famílias de imagens, consulte Práticas recomendadas para famílias de imagens .

Crie uma instância bare metal com suporte IDPF

Você pode criar uma instância bare metal usando uma das imagens de sistema operacional públicas que suportam IDPF ou usando uma imagem de sistema operacional personalizada que você criou usando as etapas em Criar uma imagem de sistema operacional personalizada que suporta IDPF .

Crie uma instância bare metal usando uma imagem de sistema operacional público

Para criar uma instância bare metal usando uma imagem de sistema operacional público compatível com IDPF, siga as instruções em Criar uma instância bare metal .

Crie uma instância bare metal usando uma imagem de sistema operacional personalizada

Se você não estiver usando uma imagem de sistema operacional pública compatível com IDPF, primeiro deverá criar uma imagem de sistema operacional personalizada compatível com IDPF . Em seguida, você usa essa imagem de sistema operacional personalizada para criar uma instância bare metal usando a Google Cloud CLI ou REST .

gcloud

  1. Crie a instância bare metal usando o comando gcloud compute instances create . Para a imagem do disco de inicialização, especifique a imagem personalizada do sistema operacional criada anteriormente. Para a interface de rede, configure o valor do sinalizador nic-type como IDPF .

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

    Substitua o seguinte:

    • INSTANCE_NAME : um nome para a nova instância.
    • ZONE : a zona na qual criar a instância.
    • IMAGE_NAME : a imagem personalizada do sistema operacional criada anteriormente.
    • YOUR_IMAGE_PROJECT : o nome do projeto que contém a imagem personalizada do sistema operacional.
  2. Opcional: verifique se o Compute Engine criou a instância e se o nicType está definido como IDPF .

    gcloud compute instances describe INSTANCE_NAME \
       --zone=ZONE
    

    Substitua o seguinte:

    • INSTANCE_NAME : o nome da instância.
    • ZONE : a zona na qual você criou a instância.

    Exemplo

    Para criar uma instância bare metal na zona eu-west4-b usando uma imagem personalizada do SLES 15 SP5 para SAP OS chamada my-sles15sp5-metal-os que está no projeto my-project-12345 , execute o seguinte 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
    

    Coisas a considerar

    O sinalizador --network-interface possui sinalizadores de subnível, como os seguintes:

    • --address : atribui um endereço IP à instância
    • --network : A rede da qual a interface fará parte
    • --network-tier : A camada de rede da interface
    • --subnet : A sub-rede da qual a interface fará parte. Se --network também for especificado, a sub-rede deverá fazer parte da rede especificada.
    • --private-network-ip : Especifique o IP RFC 1918 a ser atribuído à instância.

    Para obter uma lista completa, consulte o sinalizador --network-interface .

DESCANSAR

Crie a instância bare metal usando o método instances.insert .

  • Para a imagem do disco de inicialização, especifique a imagem personalizada do sistema operacional criada anteriormente.
  • Para a interface de rede, configure o valor do campo nicType como 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
    }
  ]
}

Substitua o seguinte:

  • PROJECT_ID : o ID do projeto no qual criar a instância.
  • ZONE : a zona na qual criar a instância.
  • INSTANCE_NAME : um nome para a nova instância.
  • NETWORK : o URL do recurso de rede para esta instância. Se nem a rede nem a sub-rede forem especificadas, a rede padrão global/networks/default será usada.
  • SUBNET_NAME : nome da sub-rede. A rede é inferida da sub-rede especificada. Este é um campo opcional.
  • YOUR_IMAGE_PROJECT : o nome do seu projeto que contém a imagem do sistema operacional.
  • IMAGE_NAME : o nome da imagem personalizada do sistema operacional que foi criada na etapa anterior.

Verifique se o IDPF está habilitado

Você pode usar a ferramenta lshw para extrair informações detalhadas sobre a configuração de hardware da instância bare metal.

Para instalar a ferramenta lshw em sua instância Linux, abra uma conexão SSH com o sistema operacional convidado e execute o seguinte comando:

sudo apt-get install lshw -y

Para determinar se a instância está usando a interface de rede IDPF, execute o seguinte comando:

sudo lshw -class network

O seguinte mostra um exemplo da saída:

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

O que vem a seguir