Usar a interface de rede IDPF

As instâncias de hardware simples disponíveis com séries de máquinas, como C3 e X4, usam a função de 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 controlador IDPF está incluído no kernel das imagens do sistema operativo (SO) Linux.

Antes de começar

  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Trusted Cloud by S3NS serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se 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. Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init
    2. Set a default region and zone.

    REST

    Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

      Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

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

Funcionalidades suportadas com IDPF

Semelhante ao gVNIC, as seguintes funcionalidades são suportadas com o IDPF:

Limitações da interface de rede IDPF

Quando usar a interface de rede IDPF, tenha em atenção as seguintes limitações:

  • Só é suportada uma única NIC para a instância. Não pode criar uma instância de computação com várias NICs.
  • O IDPF só suporta a atribuição de filas predefinida com 16 filas de receção e transmissão (RX/TX) por NIC.
  • Se usar o DPDK com uma instância de hardware físico, o DPDK substitui o IDPF como o controlador da NIC física. A aplicação DPDK tem de encaminhar pacotes para o kernel, por exemplo, através de uma interface TAP.

Vista geral da utilização do IDPF com instâncias bare metal

Para criar uma instância bare metal que use o IDPF, conclua os seguintes passos:

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

Apoio técnico a sistemas operativos

No Compute Engine, o IDPF está disponível com um número limitado de imagens de SO públicas suportadas.

Para obter informações sobre os sistemas operativos compatíveis com o IDPF, consulte o separador Interfaces para um sistema operativo.

Utilização em sistemas operativos não suportados

Para imagens do SO que não suportam o IDPF, consulte o distribuidor do sistema operativo sobre a inclusão do controlador IDPF.

Depois de obter uma imagem do sistema operativo que inclua o IDPF, importe um disco virtual de arranque que contenha o sistema operativo personalizado. Em seguida, pode usar a imagem do SO personalizada para criar instâncias bare metal que usam o IDPF nesse sistema operativo. Para mais informações sobre como criar uma imagem de SO personalizada para utilização com instâncias bare metal, consulte o artigo Crie uma imagem de SO personalizada que suporte o IDPF nesta página.

Crie uma imagem do SO personalizada que suporte o IDPF

Se precisar de uma imagem ou uma versão do SO diferente para a sua instância bare metal das fornecidas pela Trusted Cloud by S3NS, pode criar a imagem do SO através da Google Cloud CLI ou REST. Para ver informações detalhadas e práticas recomendadas para criar imagens de SO personalizadas, consulte o artigo Crie imagens de SO personalizadas.

gcloud

Quando criar a imagem personalizada a partir de uma Trusted Cloud by S3NS imagem fornecida ou de uma imagem do SO importada, tem de etiquetar a imagem do SO com IDPF. Use o comando gcloud compute images create conforme mostrado no exemplo seguinte:

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 SO específica que suporta o IDPF, por exemplo: sles-15-sp4-sap-v20240208-x86-64.

    Se quiser usar a imagem do SO mais recente numa família de imagens, substitua a flag --source-image pela flag --source-image-family e defina o respetivo valor para uma família de imagens que suporte o 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) com a imagem do SO mais recente da família de imagens do Compute Engine sles-15-sp5-sap, 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 o artigo Práticas recomendadas para famílias de imagens.

REST

  1. Selecione uma imagem do SO ou uma família de imagens que suporte o IDPF. Para mais informações, consulte os detalhes do sistema operativo.

  2. Usando a imagem do SO ou a família de imagens do SO selecionada no passo anterior, crie uma imagem do SO e etiquete-a com IDPF. Para criar a imagem do SO, use o método images.insert.

    POST https://compute.s3nsapis.fr/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 está a criar.
    • SOURCE_IMAGE_URI: o URI da imagem do SO ou da família de imagens específica que quer usar.

      Por exemplo:

      • Imagem do SO específica: "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 especifica uma família de imagens, o Compute Engine cria uma VM a partir da imagem do SO não descontinuada mais recente nessa família. Para mais informações sobre quando usar famílias de imagens, consulte as práticas recomendadas para famílias de imagens.

Crie uma instância bare metal com suporte para IDPF

Pode criar uma instância bare metal usando uma das imagens de SO públicas que suportam IDPF ou usando uma imagem de SO personalizada que criou seguindo os passos em Crie uma imagem de SO personalizada que suporte IDPF.

Crie uma instância bare metal com uma imagem de SO pública

Para criar uma instância bare metal com uma imagem de SO pública que suporte o IDPF, siga as instruções em Criar uma instância bare metal.

Crie uma instância bare metal com uma imagem de SO personalizada

Se não estiver a usar uma imagem de SO pública que suporte o IDPF, tem de criar primeiro uma imagem de SO personalizada que suporte o IDPF. Em seguida, usa essa imagem do SO personalizada para criar uma instância bare metal através da CLI do Google Cloud ou da REST.

gcloud

  1. Crie a instância bare metal com o comando gcloud compute instances create. Para a imagem do disco de arranque, especifique a imagem do SO personalizada que criou anteriormente. Para a interface de rede, defina o valor da flag 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 do SO personalizada criada anteriormente.
    • YOUR_IMAGE_PROJECT: o nome do projeto que contém a imagem do SO personalizada.
  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 criou a instância.

    Exemplo

    Para criar uma instância bare metal na zona eu-west4-b com uma imagem do SO SLES 15 SP5 personalizada denominada my-sles15sp5-metal-os que se encontra 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
    

    Aspetos a considerar

    A flag --network-interface tem flags de subnível, como as seguintes:

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

    Para ver uma lista completa, consulte a flag --network-interface.

REST

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

  • Para a imagem do disco de arranque, especifique a imagem do SO personalizada que criou anteriormente.
  • Para a interface de rede, defina o valor do campo nicType como IDPF.
POST https://compute.s3nsapis.fr/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 não for especificada a rede nem a sub-rede, é usada a rede predefinida global/networks/default.
  • SUBNET_NAME: nome da sub-rede. A rede é inferida a partir da sub-rede especificada. Este é um campo opcional.
  • YOUR_IMAGE_PROJECT: o nome do seu projeto que contém a imagem do SO.
  • IMAGE_NAME: o nome da imagem do SO personalizada que foi criada no passo anterior.

Verifique se o IDPF está ativado

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 na sua instância do Linux, abra uma ligação SSH ao SO convidado e, em seguida, execute o seguinte comando:

sudo apt-get install lshw -y

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

sudo lshw -class network

Segue-se um exemplo do 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

O que se segue?