Utiliser l'interface réseau IDPF


Les instances Bare Metal disponibles avec des séries de machines telles que C3 et X4 utilisent la fonction de plan de données d'infrastructure (IDPF), qui est un dispositif de fonction de plan de données réseau PCIe multifournisseur standardisé. L'IDPF est un appareil physique. Le pilote IDPF est inclus dans le noyau des images du système d'exploitation (OS) Linux.

Avant de commencer

  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes:

    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

      Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

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

        gcloud init

      Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud.

Fonctionnalités compatibles avec IDPF

Comme pour gVNIC, les fonctionnalités suivantes sont compatibles avec IDPF:

Limites de l'interface réseau IDPF

Lorsque vous utilisez l'interface réseau IDPF, tenez compte des limites suivantes :

  • Une seule carte réseau est acceptée pour l'instance. Vous ne pouvez pas créer d'instance de calcul avec plusieurs cartes d'interface réseau.
  • L'IDPF n'accepte que l'allocation de file d'attente par défaut avec 16 files d'attente de réception et de transmission (RX/TX) par carte réseau.
  • Si vous utilisez DPDK avec une instance bare metal, DPDK remplace l'IDPF en tant que pilote de la carte réseau physique. L'application DPDK doit transférer les paquets vers le noyau, par exemple via une interface TAP.

Présentation de l'utilisation de la fonctionnalité IDPF avec des instances bare metal

Pour créer une instance bare metal qui utilise IDPF, procédez comme suit:

  1. Choisissez une image d'OS publique compatible avec IDPF ou créez une image d'OS personnalisée avec un tag permettant d'utiliser IDPF.
  2. Créez une instance Bare Metal à l'aide de l'image d'OS publique ou personnalisée. Lors de la création de l'instance, configurez l'interface réseau pour qu'elle utilise IDPF.
  3. Vérifiez que la fonctionnalité IDPF est activée.

Systèmes d'exploitation compatibles

Sur Compute Engine, la fonctionnalité IDPF est disponible avec un nombre limité d'images de système d'exploitation publiques compatibles.

Pour connaître les systèmes d'exploitation compatibles avec la fonctionnalité IDPF, consultez l'onglet Interfaces du système d'exploitation souhaité.

Utiliser sur des systèmes d'exploitation non compatibles

Pour les images d'OS qui ne sont pas compatibles avec IDPF, contactez le distributeur du système d'exploitation pour savoir s'il inclut le pilote IDPF.

Une fois que vous avez obtenu une image de système d'exploitation incluant l'IDPF, importez un disque virtuel de démarrage contenant le système d'exploitation personnalisé. Vous pouvez ensuite utiliser l'image d'OS personnalisée pour créer des instances bare metal qui utilisent IDPF sur ce système d'exploitation. Pour en savoir plus sur la création d'une image d'OS personnalisée à utiliser avec des instances Bare Metal, consultez la section Créer une image d'OS personnalisée compatible avec IDPF sur cette page.

Créer une image d'OS personnalisée compatible avec IDPF

Si vous avez besoin d'une image ou d'une version d'OS différente pour votre instance bare metal que celles fournies par Google Cloud, vous pouvez créer l'image d'OS à l'aide de la Google Cloud CLI ou de REST. Pour obtenir des informations détaillées et des bonnes pratiques sur la création d'images d'OS personnalisées, consultez la page Créer des images d'OS personnalisées.

gcloud

Lorsque vous créez l'image personnalisée, à partir d'une image fournie par Google Cloud ou d'une image d'OS importée, vous devez étiqueter l'image d'OS avec IDPF. Exécutez la commande gcloud compute images create comme illustré dans l'exemple suivant :

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

Remplacez les éléments suivants :

  • IMAGE_NAME: nom de l'image personnalisée.
  • SOURCE_IMAGE : image d'OS spécifique compatible avec IDPF, par exemple sles-15-sp4-sap-v20240208-x86-64.

    Si vous souhaitez utiliser l'image d'OS la plus récente dans une famille d'images, remplacez l'option --source-image par l'option --source-image-family et définissez sa valeur sur une famille d'images compatible avec IDPF ; par exemple, --source-image-family=sles-15-sp4-sap.

  • SOURCE_IMAGE_PROJECT : nom du projet contenant l'image ou la famille d'images d'OS source.

    Exemple

    Pour créer une image d'OS SUSE Linux Enterprise Server (SLES) à l'aide de la dernière image d'OS de la famille d'images sles-15-sp5-sap Compute Engine, exécutez la commande suivante:

    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
    

    Pour en savoir plus sur l'utilisation des familles d'images, consultez la page Bonnes pratiques concernant les familles d'images.

REST

  1. Sélectionnez une image ou une famille d'images d'OS compatible avec IDPF. Pour en savoir plus, consultez la section Détails du système d'exploitation.

  2. À l'aide de l'image ou de la famille d'images d'OS sélectionnée à l'étape précédente, créez une image d'OS et associez-lui le tag IDPF. Pour créer l'image d'OS, utilisez la méthode images.insert.

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

    Remplacez les éléments suivants :

    • IMAGE_NAME: nom de l'image personnalisée que vous créez.
    • SOURCE_IMAGE_URI  : URI de l'image ou de la famille d'images d'OS spécifique que vous souhaitez utiliser.

      Exemple :

      • Image d'OS spécifique : "sourceImage": "projects/suse-sap-cloud/global/images/sles-15-sp5-sap-v20240427-x86-64"
      • Famille d'images : "sourceImage": "projects/suse-sap-cloud/global/images/family/sles-15-sp5-sap"

      Lorsque vous spécifiez une famille d'images, Compute Engine crée une VM à partir de l'image de l'OS non obsolète la plus récente dans cette famille. Pour en savoir plus sur l'utilisation des familles d'images, consultez la page Bonnes pratiques concernant les familles d'images.

Créer une instance Bare Metal compatible avec IDPF

Vous pouvez créer une instance Bare Metal à l'aide de l'une des images d'OS publiques compatibles avec IDPF ou d'une image d'OS personnalisée créée à l'aide de la procédure décrite dans la section Créer une image d'OS personnalisée compatible avec IDPF.

Créer une instance Bare Metal à l'aide d'une image d'OS publique

Pour créer une instance Bare Metal à l'aide d'une image d'OS publique compatible avec IDPF, suivez les instructions de la section Créer une instance Bare Metal.

Créer une instance Bare Metal à l'aide d'une image d'OS personnalisée

Si vous n'utilisez pas d'image d'OS publique compatible avec IDPF, vous devez d'abord créer une image d'OS personnalisée compatible avec IDPF. Vous pouvez ensuite utiliser cette image d'OS personnalisée pour créer une instance bare metal à l'aide de la Google Cloud CLI ou de REST.

gcloud

  1. Créez l'instance Bare Metal à l'aide de la commande gcloud compute instances create. Pour l'image de disque de démarrage, spécifiez l'image d'OS personnalisée que vous avez créée précédemment. Pour l'interface réseau, définissez la valeur de l'option nic-type sur IDPF.

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

    Remplacez les éléments suivants :

    • INSTANCE_NAME: nom de la nouvelle instance.
    • ZONE est la zone dans laquelle créer l'instance.
    • IMAGE_NAME: image de l'OS personnalisée créée précédemment.
    • YOUR_IMAGE_PROJECT: nom du projet contenant l'image d'OS personnalisée.
  2. Facultatif : Vérifiez que Compute Engine a créé l'instance et que la valeur de nicType est définie sur IDPF.

    gcloud compute instances describe INSTANCE_NAME \
       --zone=ZONE
    

    Remplacez les éléments suivants :

    • INSTANCE_NAME : nom de l'instance.
    • ZONE : zone dans laquelle vous avez créé l'instance.

    Exemple

    Pour créer une instance Bare Metal dans la zone eu-west4-b à l'aide d'une image d'OS SLES 15 SP5 pour SAP personnalisée nommée my-sles15sp5-metal-os qui se trouve dans le projet my-project-12345, exécutez la commande suivante:

    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
    

    Éléments à prendre en compte

    L'option --network-interface comporte des sous-options telles que :

    • --address : attribue une adresse IP à l'instance
    • --network : réseau auquel l'interface doit être associée
    • --network-tier : niveau de réseau de l'interface
    • --subnet : sous-réseau auquel l'interface doit appartenir. Si --network est également spécifié, le sous-réseau doit faire partie du réseau spécifié.
    • --private-network-ip : spécifie l'adresse IP RFC 1918 à attribuer à l'instance.

    Pour obtenir la liste complète, consultez la section sur l'option --network-interface.

REST

Créez l'instance Bare Metal à l'aide de la méthode instances.insert.

  • Pour l'image de disque de démarrage, spécifiez l'image d'OS personnalisée que vous avez créée précédemment.
  • Pour l'interface réseau, définissez la valeur du champ nicType sur 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
    }
  ]
}

Remplacez les éléments suivants :

  • PROJECT_ID: ID du projet dans lequel créer l'instance.
  • ZONE est la zone dans laquelle créer l'instance.
  • INSTANCE_NAME: nom de la nouvelle instance.
  • NETWORK : URL de la ressource réseau pour cette instance. Si ni le réseau, ni le sous-réseau ne sont spécifiés, le réseau global/networks/default par défaut est utilisé.
  • SUBNET_NAME : nom du sous-réseau. Le réseau est déduit du sous-réseau spécifié. Ce champ est facultatif.
  • YOUR_IMAGE_PROJECT : nom du projet contenant l'image d'OS.
  • IMAGE_NAME: nom de l'image d'OS personnalisée créée à l'étape précédente.

Vérifier que l'IDPF est activé

Vous pouvez utiliser l'outil lshw pour extraire des informations détaillées sur la configuration matérielle de l'instance Bare Metal.

Pour installer l'outil lshw sur votre instance Linux, ouvrez une connexion SSH à l'OS invité, puis exécutez la commande suivante :

sudo apt-get install lshw -y

Pour déterminer si l'instance utilise l'interface réseau IDPF, exécutez la commande suivante :

sudo lshw -class network

Voici un exemple de résultat de réponse :

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

Étape suivante