Usando a interface de rede IDPF


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

Antes de começar

  • Configure a autenticação, caso ainda não tenha feito isso. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud. Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine da seguinte maneira.

    Selecione a guia para como planeja usar as amostras nesta página:

    gcloud

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

      gcloud init
    2. Defina uma região e uma zona padrão.

    REST

    Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.

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

      gcloud init

Recursos suportados com IDPF

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

Limitações da interface de rede do IDPF

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

  • Só há suporte para uma placa de rede (NIC, na sigla em inglês) na instância. Não é possível criar uma instância com várias NICs.
  • Se você ativar a rede Tier_1 para uma instância que usa IDPF, use o MTU padrão de 1.460 bytes para maximizar a largura de banda da rede.
  • O IDPF só oferece suporte à 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 da NIC física. O aplicativo DPDK precisa encaminhar pacotes para o kernel, por exemplo, 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 do SO pública compatível com o IDPF ou crie uma imagem do SO 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 compatíveis com imagens públicas do SO compatíveis.

Para informações sobre quais sistemas operacionais são compatíveis com o IDPF, consulte a guia Interfaces de um sistema operacional.

Usar em sistemas operacionais não compatíveis

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 mais informações sobre como criar uma imagem de SO personalizada para uso com instâncias bare metal, consulte Criar uma imagem de SO personalizada compatível com IDPF nesta página.

Criar uma imagem do SO personalizada compatível com IDPF

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

gcloud

Ao criar a imagem personalizada, seja a partir de uma imagem fornecida pelo Google Cloud ou de uma imagem de sistema operacional importada, você precisa marcar a imagem do sistema operacional com IDPF. Execute 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:

  • IMAGE_NAME: um nome para a imagem personalizada.
  • SOURCE_IMAGE: uma imagem de SO específica compatível com IDPF, por exemplo: sles-15-sp4-sap-v20240208-x86-64.

    Se você quiser usar a imagem do SO mais recente em uma família de imagens, substitua a sinalização --source-image pela sinalização --source-image-family e defina o valor dela como uma imagem família 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 SO de origem ou a família de imagens.

    Exemplo

    Para criar uma imagem do SO SUSE Linux Enterprise Server (SLES) usando a imagem de SO 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 mais informações sobre quando usar famílias de imagens, consulte Práticas recomendadas para famílias de imagens.

REST

  1. Selecione uma imagem do SO ou família de imagens compatível com o IDPF. Para mais informações, consulte Detalhes do sistema operacional.

  2. Usando a imagem do SO ou a família de imagens selecionada na etapa anterior, crie uma imagem do SO e marque-a com IDPF. Para criar a imagem do SO, 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:

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

      Exemplo:

      • Imagem específica do SO: "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 do SO mais recente e não obsoleta nessa família. Para 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 um dosimagens de sistema operacional público que suporta IDPF ou usando uma imagem de sistema operacional personalizada que você criou usando as etapas emCrie uma imagem de sistema operacional personalizada compatível com 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 do SO pública compatível com IDPF, primeiro crie uma imagem do SO personalizada compatível com o IDPF. Em seguida, você usa essa imagem de SO personalizada para criar uma instância bare metal usando a CLI do Google Cloud ou o 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 do SO personalizada que você criou anteriormente. Para a interface de rede, defina o valor da sinalização 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:

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

    gcloud compute instances describe INSTANCE_NAME \
       --zone=ZONE
    

    Substitua:

    • INSTANCE_NAME: o nome da instância.
    • ZONE: a zona em que 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
    

    Considerações

    A sinalização --network-interface tem sinalizações de sub-nível como as seguintes:

    • --address: atribua um endereço IP à instância
    • --network: a rede da qual a interface fará parte
    • --network-tier: o nível de rede da interface
    • --subnet: a sub-rede da qual a interface faz parte. Se --network também for especificado, a sub-rede precisará fazer parte da rede especificada.
    • --private-network-ip: especifique o IP RFC 1918 para atribuir à instância.

    Para uma lista completa, consulte a sinalização --network-interface.

REST

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

  • Para a imagem do disco de inicialização, especifique a imagem do SO personalizada que você criou anteriormente.
  • Para a interface de rede, defina 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:

  • PROJECT_ID: o ID do projeto em que a instância será criado.
  • ZONE: a zona na qual será criada a instância;
  • INSTANCE_NAME: um nome para a nova instância.
  • NETWORK: o URL do recurso de rede para à instância. Se a rede e a sub-rede não forem especificadas, a rede padrão global/networks/default será usada.
  • SUBNET_NAME: nome da sub-rede; A rede é inferida da sub-rede especificada; Esse campo é opcional.
  • YOUR_IMAGE_PROJECT: o nome do projeto que contém a imagem do SO.
  • IMAGE_NAME: o nome da imagem personalizada do SO criada na etapa anterior.

Verifique se o IDPF está habilitado

É possível 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 na sua instância do 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

Veja a seguir um exemplo da saída da resposta:

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

A seguir