Créer de manière groupée des instances optimisées pour le HPC avec H4D

Ce document explique comment créer en masse un grand nombre d'instances de machines virtuelles (VM) de calcul hautes performances (HPC) identiques et indépendantes les unes des autres. Les instances utilisent des types de machines H4D et s'exécutent sur des blocs de capacité réservés.

Pour en savoir plus sur la création de VM de manière groupée, consultez À propos de la création groupée de VM. Pour créer des instances de manière groupée qui n'utilisent pas de réservations afin d'améliorer les capacités de gestion des clusters, consultez plutôt Créer des VM de manière groupée.

Pour découvrir d'autres méthodes de création de grands clusters de VM H4D étroitement couplées, consultez la page Présentation de la création de clusters HPC.

Avant de commencer

  • Choisissez une option de consommation : pour créer des instances de calcul de manière groupée et activer des fonctionnalités de gestion de cluster améliorées, vous pouvez choisir une réservation future en mode Agenda ou des VM Spot.

    Si vous choisissez d'utiliser des VM Spot, il est possible que les VM ne soient pas colocalisées de manière compacte. De plus, les VM Spot peuvent être préemptées selon les besoins et ne sont pas éligibles à la gestion des événements de maintenance de l'hôte pour les groupes de VM.

  • Obtenir de la capacité : le processus d'obtention de la capacité diffère pour chaque option de consommation.

    Pour en savoir plus, consultez Choisir une option de consommation et obtenir de la capacité.

  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification permet 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:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :

      gcloud init

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

    2. Set a default region and zone.

    REST

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

      Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :

      gcloud init

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

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

Rôles requis

Pour obtenir les autorisations nécessaires pour créer des VM de manière groupée, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet :

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ces rôles prédéfinis contiennent les autorisations requises pour créer des VM de manière groupée. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour créer des VM de manière groupée :

  • compute.instances.create sur le projet
  • Pour créer la VM à l'aide d'une image personnalisée : compute.images.useReadOnly sur l'image
  • Pour créer la VM à l'aide d'un instantané : compute.snapshots.useReadOnly sur l'instantané
  • Pour créer la VM à l'aide d'un modèle d'instance : compute.instanceTemplates.useReadOnly sur le modèle d'instance
  • Pour spécifier un sous-réseau pour la VM : compute.subnetworks.use sur le projet ou sur le sous-réseau choisi
  • Pour spécifier une adresse IP statique pour la VM : compute.addresses.use sur le projet
  • Pour attribuer une adresse IP externe à la VM en cas d'utilisation d'un réseau VPC : compute.subnetworks.useExternalIp sur le projet ou sur le sous-réseau choisi
  • Pour attribuer un ancien réseau à la VM : compute.networks.use sur le projet
  • Pour attribuer une adresse IP externe à la VM en cas d'utilisation d'un ancien réseau : compute.networks.useExternalIp sur le projet
  • Pour définir les métadonnées d'instance de VM pour la VM : compute.instances.setMetadata sur le projet
  • Pour définir des tags pour la VM : compute.instances.setTags sur la VM
  • Pour définir des étiquettes pour la VM : compute.instances.setLabels sur la VM
  • Pour définir un compte de service que doit utiliser la VM : compute.instances.setServiceAccount sur la VM
  • Pour créer un disque pour la VM : compute.disks.create sur le projet
  • Pour associer un disque existant en mode lecture seule ou en mode lecture-écriture : compute.disks.use sur le disque
  • Pour associer un disque existant en mode lecture seule : compute.disks.useReadOnly sur le disque

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Présentation

La création d'instances HPC de manière groupée avec le type de machine H4D comprend les étapes suivantes :

  1. Facultatif : créez des réseaux de cloud privé virtuel.
  2. Facultatif : créez une stratégie d'emplacement si vous ne créez pas les instances de calcul sur le même bloc ou sous-bloc.
  3. Créer des instances H4D de manière groupée

Facultatif : Créer des réseaux de cloud privé virtuel

Lorsque vous créez une instance de calcul, vous pouvez spécifier un réseau et un sous-réseau VPC. Si vous omettez cette configuration, le réseau et le sous-réseau par défaut sont utilisés.

  • Si vous souhaitez configurer les instances H4D du MIG pour qu'elles utilisent Cloud RDMA, suivez les étapes de cette section.
  • Si vous ne souhaitez pas utiliser Cloud RDMA, vous pouvez ignorer cette section et utiliser le réseau par défaut.

Pour utiliser Cloud RDMA avec des instances H4D, vous devez avoir configuré au moins deux réseaux, un pour chaque type d'interface réseau (NIC) :

  • Type de carte d'interface réseau GVNIC : utilise le pilote gve pour le trafic TCP/IP et le trafic Internet pour la communication normale entre VM et entre VM et Internet.
  • Type de carte d'interface réseau IRDMA : utilise les pilotes IDPF/iRDMA pour la mise en réseau Cloud RDMA entre les instances.

Les instances qui utilisent Cloud RDMA ne peuvent avoir qu'une seule interface IRDMA. Vous pouvez ajouter jusqu'à huit interfaces réseau GVNIC supplémentaires, pour un total de 10 cartes d'interface réseau virtuelle par instance.

Pour configurer les réseaux VPC Falcon à utiliser avec vos instances, vous pouvez suivre les instructions de la documentation ou utiliser le script fourni.

Guides d'instructions

Pour créer les réseaux, vous pouvez suivre les instructions suivantes :

Script

Vous pouvez créer jusqu'à neuf interfaces réseau gVNIC et une interface réseau IRDMA par instance. Chaque interface réseau doit être associée à un réseau distinct. Pour créer les réseaux, vous pouvez utiliser le script suivant, qui crée deux réseaux pour gVNIC et un réseau pour IRDMA.

  1. Facultatif : Avant d'exécuter le script, listez les profils réseau VPC Falcon pour vérifier qu'il en existe un.
      gcloud compute network-profiles list
      
  2. Copiez le code suivant et exécutez-le dans une fenêtre de shell Linux.

      #!/bin/bash
      # Set the number of GVNIC interfaces to create. You can create up to 9.
      NUM_GVNIC=NUMBER_OF_GVNIC
    
      # Create regular VPC networks and subnets for the GVNIC interfaces
        for N in $(seq 0 $(($NUM_GVNIC - 1))); do
          gcloud compute networks create GVNIC_NAME_PREFIX-net-$N \
              --subnet-mode=custom
    
          gcloud compute networks subnets create GVNIC_NAME_PREFIX-sub-$N \
              --network=GVNIC_NAME_PREFIX-net-$N \
              --region=REGION \
              --range=10.$N.0.0/16
    
          gcloud compute firewall-rules create GVNIC_NAME_PREFIX-internal-$N \
              --network=GVNIC_NAME_PREFIX-net-$N \
              --action=ALLOW \
              --rules=tcp:0-65535,udp:0-65535,icmp \
              --source-ranges=10.0.0.0/8
      done
    
      # Create SSH firewall rules
      gcloud compute firewall-rules create GVNIC_NAME_PREFIX-ssh \
          --network=GVNIC_NAME_PREFIX-net-0 \
          --action=ALLOW \
          --rules=tcp:22 \
          --source-ranges=IP_RANGE
    
      # Optional: Create a firewall rule for the external IP address for the
      #  first GVNIC network interface
      gcloud compute firewall-rules create GVNIC_NAME_PREFIX-allow-ping-net-0 \
          --network=GVNIC_NAME_PREFIX-net-0 \
          --action=ALLOW \
          --rules=icmp \
          --source-ranges=IP_RANGE
    
      # Create a Falcon VPC network for the Cloud RDMA network interface
      gcloud compute networks create RDMA_NAME_PREFIX-irdma \
          --network-profile=ZONE-vpc-falcon \
          --subnet-mode custom
    
      # Create a subnet in the Falcon VPC network
      gcloud compute networks subnets create RDMA_NAME_PREFIX-irdma-sub \
          --network=RDMA_NAME_PREFIX-irdma \
          --region=REGION \
          --range=10.2.0.0/16  # offset to avoid overlap with GVNIC subnet ranges
      

    Remplacez les éléments suivants :

    • NUMBER_OF_GVNIC : nombre d'interfaces gVNIC à créer. Spécifiez un nombre compris entre 1 et 9.
    • GVNIC_NAME_PREFIX : préfixe de nom à utiliser pour le réseau et le sous-réseau VPC standards qui utilisent un type de carte d'interface réseau GVNIC.
    • REGION : région dans laquelle vous souhaitez créer les réseaux. Cela doit correspondre à la zone spécifiée pour l'indicateur --network-profile lors de la création du réseau VPC Falcon. Par exemple, si vous spécifiez la zone europe-west4-b, votre région est europe-west4.
    • IP_RANGE : plage d'adresses IP en dehors du réseau VPC à utiliser pour les règles de pare-feu SSH. Il est recommandé de définir les plages d'adresses IP spécifiques à partir desquelles vous devez autoriser l'accès, plutôt que toutes les sources IPv4 ou IPv6. N'utilisez pas 0.0.0.0/0 ni ::/0 comme plage source, car cela autorise le trafic provenant de toutes les sources IPv4 ou IPv6, y compris celles en dehors de Google Cloud.
    • RDMA_NAME_PREFIX : préfixe de nom à utiliser pour le réseau VPC et le sous-réseau qui utilisent le type de carte d'interface réseau IRDMA.
    • ZONE : zone dans laquelle vous souhaitez créer les réseaux et les instances de calcul. Utilisez us-central1-a ou europe-west4-b.
  3. Facultatif : Pour vérifier que les ressources de réseau VPC ont bien été créées, vérifiez les paramètres réseau dans la console Google Cloud  :

    1. Dans la console Google Cloud , accédez à la page Réseaux VPC.

      Accéder aux réseaux VPC

    2. Recherchez dans la liste les réseaux que vous avez créés à l'étape précédente.
    3. Pour afficher les sous-réseaux, les règles de pare-feu et les autres paramètres réseau, cliquez sur le nom du réseau.

Facultatif : Créer une règle d'emplacement

Vous pouvez spécifier l'emplacement des VM en créant une stratégie de concentration. Lorsque vous appliquez une stratégie de concentration à vos VM, Compute Engine s'efforce de créer des VM aussi proches les unes des autres que possible. Si votre application est sensible à la latence et que vous souhaitez que les VM soient plus proches les unes des autres (compacité maximale), spécifiez le champ maxDistance (aperçu) lorsque vous créez une stratégie de concentration. Une valeur maxDistance inférieure garantit un placement plus proche des VM, mais augmente également le risque que certaines VM ne soient pas créées.

Pour créer une stratégie de concentration, sélectionnez l'une des options suivantes :

gcloud

Pour créer une stratégie de concentration, utilisez la commande gcloud beta compute resource-policies create group-placement :

gcloud beta compute resource-policies create group-placement POLICY_NAME \
    --collocation=collocated \
    --max-distance=MAX_DISTANCE \
    --region=REGION

Remplacez les éléments suivants :

  • POLICY_NAME : nom de la stratégie d'emplacement compact.
  • MAX_DISTANCE : configuration de distance maximale pour vos VM. La valeur doit être 3 pour placer les VM dans les blocs adjacents ou 2 pour les placer dans le même bloc. Pour en savoir plus sur le nombre maximal de VM compatibles avec chaque maxDistance par série de machines, consultez À propos des stratégies d'emplacement compact dans la documentation Compute Engine.
  • REGION : région dans laquelle vous voulez créer la stratégie de concentration. Spécifiez une région dans laquelle le type de machine que vous souhaitez utiliser est disponible. Pour en savoir plus sur les régions, consultez Régions et zones disponibles.

REST

Pour créer une stratégie de concentration, envoyez une requête POST à la méthode resourcePolicies.insert en version bêta. Dans le corps de la requête, incluez le champ collocation défini sur COLLOCATED, ainsi que le champ maxDistance.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies
  {
    "name": "POLICY_NAME",
    "groupPlacementPolicy": {
      "collocation": "COLLOCATED",
      "maxDistance": MAX_DISTANCE
    }
  }

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet
  • POLICY_NAME : nom de la stratégie d'emplacement compact.
  • MAX_DISTANCE : configuration de distance maximale pour vos VM. La valeur doit être 3 pour placer les VM dans les blocs adjacents ou 2 pour les placer dans le même bloc. Pour en savoir plus sur le nombre maximal de VM compatibles avec chaque maxDistance par série de machines, consultez À propos des stratégies d'emplacement compact dans la documentation Compute Engine.
  • REGION : région dans laquelle vous voulez créer la stratégie de concentration. Spécifiez une région dans laquelle le type de machine que vous souhaitez utiliser est disponible. Pour en savoir plus sur les régions, consultez Régions et zones disponibles.

Créer des instances de VM de manière groupée

Les instructions de cette section décrivent comment créer des VM H4D de manière groupée.

Consultez les limites suivantes avant de créer des instances H4D avec Cloud RDMA :

  • Vous ne pouvez pas utiliser la migration à chaud lors d'événements de maintenance de l'hôte avec des instances qui disposent d'une interface réseau Cloud RDMA. Vous devez configurer l'instance pour qu'elle s'arrête lors des événements de maintenance.
  • L'interface réseau gVNIC ne peut avoir qu'une seule adresse IPv6, interne ou externe, mais pas les deux.
  • Vous ne pouvez utiliser que des adresses IPv4 avec les interfaces réseau IRDMA et les réseaux VPC Falcon.

gcloud

Pour créer des VM de manière groupée, utilisez la commande gcloud compute instances create.

Les paramètres que vous devez spécifier dépendent de l'option de consommation que vous utilisez pour ce déploiement. Sélectionnez l'onglet correspondant au modèle de provisionnement de votre option de consommation.

Lié à la réservation

Commencez par la commande gcloud compute instances create suivante.

   gcloud compute instances bulk create \
       --name-pattern=NAME_PATTERN \
       --count=COUNT \
       --machine-type=MACHINE_TYPE \
       --image-family=IMAGE_FAMILY \
       --image=project= IMAGE_PROJECT \
       --instance-termination=action=DELETE \
       --maintenance-policy=TERMINATE \
       --region=REGION \
       --boot-disk-type=hyperdisk-balanced \
       --boot-disk-size=DISK_SIZE
   

Procédez comme suit :

  1. Remplacez les éléments suivants :

    • NAME_PATTERN : format de nom pour les instances. Par exemple, le format de nom vm-# génère des instances portant les noms vm-1 et vm-2, jusqu'à ce qu'il atteigne le nombre spécifié par l'indicateur --count.
    • COUNT : nombre d'instances à créer.
    • MACHINE_TYPE : type de machine à utiliser pour les instances. Utilisez l'un des types de machines H4D, par exemple h4d-highmem-192-lssd.
    • IMAGE_FAMILY : famille d'images de l'image de l'OS que vous souhaitez utiliser, par exemple rocky-linux-9-optimized-gcp.

      Pour obtenir la liste des images d'OS compatibles, consultez Systèmes d'exploitation compatibles. Choisissez une version d'image d'OS compatible avec l'interface IRDMA.

    • IMAGE_PROJECT : ID du projet pour l'image de l'OS, par exemple rocky-linux-cloud.
    • REGION : spécifiez une région dans laquelle le type de machine que vous souhaitez utiliser est disponible, par exemple europe-west4. Pour en savoir plus sur les régions disponibles, consultez Régions et zones disponibles.
    • DISK_SIZE : (facultatif) taille du disque de démarrage en Gio. Cette valeur doit être un nombre entier.
  2. Facultatif : Si vous avez choisi d'utiliser une stratégie d'emplacement compact, incluez l'indicateur --resource-policies :

             --resource-policies=POLICY_NAME
             

    Remplacez POLICY_NAME par le nom de la règle d'emplacement compact.

  3. Pour spécifier la réservation, effectuez l'une des opérations suivantes :

    • Si vous utilisez une stratégie d'emplacement ou si les VM peuvent être placées n'importe où dans votre bloc de réservation, ajoutez les options suivantes à la commande :

                 --provisioning-model=RESERVATION_BOUND \
                 --reservation-affinity=specific \
                 --reservation=RESERVATION_NAME \
                 

      Remplacez RESERVATION_NAME par le nom de la réservation, par exemple h4d-highmem-exfr-prod.

    • Si vous n'utilisez pas de stratégie d'emplacement compact et que vous souhaitez que les instances soient placées dans un bloc spécifique, ajoutez les indicateurs suivants à la commande :

                 --provisioning-model=RESERVATION_BOUND \
                 --reservation-affinity=specific \
                 --reservation=<RESERVATION_BLOCK_NAME \
                 

      Remplacez RESERVATION_BLOCK_NAME par le nom d'un bloc dans la réservation, par exemple h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1.

    Pour afficher le nom de la réservation ou les blocs de réservation disponibles, consultez Afficher la capacité.

  4. Facultatif : Pour configurer les instances afin qu'elles utilisent Cloud RDMA, ajoutez les indicateurs semblables à ceux ci-dessous à la commande. Cet exemple configure deux interfaces réseau GVNIC et une interface réseau IRDMA :

            --network-interface=nic-type=GVNIC, \
                network=GVNIC_NAME_PREFIX-net-0, \
                subnet=GVNIC_NAME_PREFIX-sub-0, \
                stack-type=STACK_TYPE, \
                address=EXTERNAL_IPV4_ADDRESS \
            --network-interface=nic-type=GVNIC, \
                network=GVNIC_NAME_PREFIX-net-1, \
                subnet=GVNIC_NAME_PREFIX-sub-1, no-address \
            --network-interface=nic-type=IRDMA, \
                network=RDMA_NAME_PREFIX-irdma, \
                subnet=RDMA_NAME_PREFIX-irdma-sub, \
                stack-type=IPV4_ONLY, no-address \
            

    Remplacez les éléments suivants :

    • GVNIC_NAME_PREFIX : préfixe de nom que vous avez utilisé lors de la création du réseau et du sous-réseau VPC pour l'interface GVNIC.

      Pour la première interface réseau gVNIC, vous pouvez omettre les indicateurs network et subnet pour utiliser le réseau default à la place.

    • STACK_TYPE : (facultatif) type de pile pour l'interface réseau gVNIC. STACK_TYPE doit être défini sur IPV4_ONLY ou IPV4_IPV6. La valeur par défaut est IPV4_ONLY.
    • EXTERNAL_IPV4_ADDRESS : (facultatif) adresse IPv4 externe statique à utiliser avec l'interface réseau. Vous devez avoir réservé une adresse IPv4 externe auparavant. Effectuez l'une des opérations suivantes :
      • Spécifiez une adresse IPv4 valide du sous-réseau.
      • Utilisez plutôt l'indicateur no-address si vous ne souhaitez pas que l'interface réseau ait une adresse IP externe.
      • Spécifiez address='' si vous souhaitez que l'interface reçoive une adresse IP externe éphémère.

      Pour spécifier une adresse IPv6 externe, utilisez plutôt l'indicateur --external-ipv6-address.

    • RDMA_NAME_PREFIX : préfixe de nom que vous avez utilisé lors de la création du réseau et du sous-réseau VPC pour l'interface IRDMA.
  5. Facultatif : Ajoutez des options supplémentaires pour personnaliser les autres propriétés de l'instance, si nécessaire.
  6. Exécutez la commande.

Spot

Commencez par la commande gcloud compute instances create suivante.

   gcloud compute instances bulk create \
       --name-pattern=NAME_PATTERN \
       --count=COUNT \
       --machine-type=MACHINE_TYPE \
       --image-family=IMAGE_FAMILY \
       --image=project= IMAGE_PROJECT \
       --region=REGION \
       --boot-disk-type=hyperdisk-balanced \
       --boot-disk-size=DISK_SIZE \
       --provisioning-model=SPOT \
       --instance-termination=action=TERMINATION_ACTION
   

Procédez comme suit :

  1. Remplacez les éléments suivants :

    • NAME_PATTERN : format de nom pour les instances. Par exemple, le format de nom vm-# génère des instances portant les noms vm-1 et vm-2, jusqu'à ce qu'il atteigne le nombre spécifié par l'indicateur --count.
    • COUNT : nombre d'instances à créer.
    • MACHINE_TYPE : type de machine à utiliser pour les instances. Utilisez l'un des types de machines H4D, par exemple h4d-highmem-192-lssd.
    • IMAGE_FAMILY : famille d'images de l'image de l'OS que vous souhaitez utiliser, par exemple rocky-linux-9-optimized-gcp.

      Pour obtenir la liste des images d'OS compatibles, consultez Systèmes d'exploitation compatibles. Choisissez une version d'image d'OS compatible avec l'interface IRDMA.

    • IMAGE_PROJECT : ID du projet pour l'image de l'OS, par exemple rocky-linux-cloud.
    • REGION : spécifiez une région dans laquelle le type de machine que vous souhaitez utiliser est disponible, par exemple europe-west4. Pour en savoir plus sur les régions disponibles, consultez Régions et zones disponibles.
    • DISK_SIZE : (facultatif) taille du disque de démarrage en Gio. Cette valeur doit être un nombre entier.
    • TERMINATION_ACTION : action à effectuer lorsque Compute Engine préempte l'instance, soit STOP (par défaut), soit DELETE.

  2. Facultatif : Si vous avez choisi d'utiliser une stratégie d'emplacement compact, ajoutez l'indicateur suivant à la commande :

          --resource-policies=POLICY_NAME \
          

    Remplacez POLICY_NAME par le nom de la règle d'emplacement compact.

  3. Facultatif : Pour configurer les instances afin qu'elles utilisent Cloud RDMA, ajoutez les indicateurs semblables à ceux ci-dessous à la commande. Cet exemple configure deux interfaces réseau GVNIC et une interface réseau IRDMA :

          --network-interface=nic-type=GVNIC, \
              network=GVNIC_NAME_PREFIX-net-0, \
              subnet=GVNIC_NAME_PREFIX-sub-0, \
              stack-type=STACK_TYPE, \
              address=EXTERNAL_IPV4_ADDRESS \
          --network-interface=nic-type=GVNIC, \
              network=GVNIC_NAME_PREFIX-net-1, \
              subnet=GVNIC_NAME_PREFIX-sub-1, no-address \
          --network-interface=nic-type=IRDMA, \
              network=RDMA_NAME_PREFIX-irdma, \
              subnet=RDMA_NAME_PREFIX-irdma-sub, \
              stack-type=IPV4_ONLY, no-address \
          

    Remplacez les éléments suivants :

    • GVNIC_NAME_PREFIX : préfixe de nom que vous avez utilisé lors de la création du réseau et du sous-réseau VPC pour l'interface GVNIC.

      Pour la première interface réseau gVNIC, vous pouvez omettre les indicateurs network et subnet pour utiliser le réseau default à la place.

    • STACK_TYPE : (facultatif) type de pile pour l'interface réseau gVNIC. STACK_TYPE doit être défini sur IPV4_ONLY ou IPV4_IPV6. La valeur par défaut est IPV4_ONLY.
    • EXTERNAL_IPV4_ADDRESS : (facultatif) adresse IPv4 externe statique à utiliser avec l'interface réseau. Vous devez avoir réservé une adresse IPv4 externe auparavant. Effectuez l'une des opérations suivantes :
      • Spécifiez une adresse IPv4 valide du sous-réseau.
      • Utilisez plutôt l'indicateur no-address si vous ne souhaitez pas que l'interface réseau ait une adresse IP externe.
      • Spécifiez address='' si vous souhaitez que l'interface reçoive une adresse IP externe éphémère.

      Pour spécifier une adresse IPv6 externe, utilisez plutôt l'indicateur --external-ipv6-address.

    • RDMA_NAME_PREFIX : préfixe de nom que vous avez utilisé lors de la création du réseau et du sous-réseau VPC pour l'interface IRDMA.
  4. Facultatif : Ajoutez des options supplémentaires pour personnaliser les autres propriétés de l'instance, si nécessaire.
  5. Exécutez la commande.

REST

Pour créer des instances de VM de manière groupée, envoyez une requête POST à la méthode instances.bulkInsert.

Les paramètres que vous devez spécifier dépendent de l'option de consommation que vous utilisez pour ce déploiement. Sélectionnez l'onglet correspondant au modèle de provisionnement de votre option de consommation.

Lié à la réservation

Commencez par la requête POST suivante à la méthode instances.bulkInsert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert
    {
      "namePattern":"NAME_PATTERN",
      "count":"COUNT",
      "instanceProperties":{
        "machineType":"MACHINE_TYPE",
        "disks":[
          {
            "boot":true,
            "initializeParams":{
              "diskSizeGb":"DISK_SIZE",
              "diskType":"hyperdisk-balanced",
              "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
            },
            "mode":"READ_WRITE",
            "type":"PERSISTENT"
          }
        ],
        "scheduling":{
            "provisioningModel":"RESERVATION_BOUND",
            "instanceTerminationAction":"DELETE",
            "onHostMaintenance": "TERMINATE",
            "automaticRestart":true
        }
      }
    }
    

Procédez comme suit :

  1. Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet dans lequel vous souhaitez créer les instances.
    • ZONE : spécifiez une zone dans laquelle le type de machine que vous souhaitez utiliser est disponible. Si vous utilisez une stratégie de concentration, utilisez une zone de la même région que la stratégie de concentration. Pour en savoir plus sur les régions dans lesquelles les types de machines H4D sont disponibles, consultez Régions et zones disponibles.
    • NAME_PATTERN : format de nom pour les instances. Par exemple, le format de nom vm-# génère des instances portant les noms vm-1 et vm-2, et ainsi de suite jusqu'à ce qu'il atteigne le nombre spécifié par le champ count.
    • COUNT : nombre d'instances à créer.
    • MACHINE_TYPE : type de machine à utiliser pour les instances. Utilisez l'un des types de machines H4D, par exemple h4d-highmem-192-lssd.
    • DISK_SIZE : taille du disque de démarrage en Gio.
    • IMAGE_PROJECT : ID du projet pour l'image de l'OS, par exemple debian-cloud.
    • IMAGE_FAMILY : famille d'images de l'image d'OS que vous souhaitez utiliser, par exemple rocky-linux-9-optimized-gcp. Pour obtenir la liste des images d'OS compatibles, consultez Systèmes d'exploitation compatibles. Choisissez une version d'image d'OS compatible avec l'interface IRDMA.
  2. Facultatif : Si vous avez choisi d'utiliser une stratégie d'emplacement compact, incluez le paramètre resourcePolicies dans le corps de la requête dans le paramètre "instanceProperties".

              "resourcePolicies": [
                "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
              ],
              

    Remplacez POLICY_NAME par le nom de la règle d'emplacement compact.

  3. Pour spécifier la réservation, effectuez l'une des opérations suivantes :

    • Si vous utilisez une règle d'emplacement ou si les VM peuvent être placées n'importe où dans votre bloc de réservation, ajoutez les éléments suivants au corps de la requête dans le paramètre "instanceProperties" :

                 "reservationAffinity":{
                   "consumeReservationType":"SPECIFIC_RESERVATION",
                   "key":"compute.googleapis.com/reservation-name",
                   "values":[
                     "RESERVATION_NAME"
                   ],
                 },
                 

      Remplacez RESERVATION_NAME par le nom de la réservation, par exemple h4d-highmem-exfr-prod.

    • Si vous n'utilisez pas de stratégie d'emplacement compact ou si vous souhaitez que les instances soient placées dans un bloc spécifique, ajoutez les éléments suivants au corps de la requête dans le paramètre "instanceProperties" :

                  "reservationAffinity":{
                    "consumeReservationType":"SPECIFIC_RESERVATION",
                    "key":"compute.googleapis.com/reservation-name",
                    "values":[
                      "RESERVATION_BLOCK_NAME"
                    ],
                  },
                 

      Remplacez RESERVATION_BLOCK_NAME par le nom d'un bloc dans la réservation, par exemple h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1.

    Pour afficher le nom de la réservation ou les blocs de réservation disponibles, consultez Afficher la capacité.

  4. Si vous souhaitez configurer les instances pour qu'elles utilisent Cloud RDMA, incluez un bloc de paramètres semblable à celui ci-dessous dans le corps de la requête, dans le cadre du paramètre "instanceProperties". Cet exemple configure deux interfaces réseau gVNIC et une interface réseau IRDMA :

              "networkInterfaces": [
              {
                "network": "GVNIC_NAME_PREFIX-net-0",
                "subnetwork": "GVNIC_NAME_PREFIX-sub-0",
                "accessConfigs": [
                   {
                      "type": "ONE_TO_ONE_NAT",
                      "name": "External IP",
                      "natIP": "EXTERNAL_IPV4_ADDRESS"
                   }
                ],
                "stackType": "IPV4_ONLY",
                "nicType": "GVNIC",
              },
              {
                "network": "GVNIC_NAME_PREFIX-net-1",
                "subnetwork": "GVNIC_NAME_PREFIX-sub-1",
                "stackType": "IPV4_ONLY",
                "nicType": "GVNIC",
              },
              {
                "network": "RDMA_NAME_PREFIX-irdma",
                "subnetwork": "RDMA_NAME_PREFIX-irdma-sub",
                "stackType": "IPV4_ONLY",
                "nicType": "IRDMA",
              }
            ],
             

    Remplacez les éléments suivants :

    • GVNIC_NAME_PREFIX : préfixe de nom que vous avez utilisé lors de la création du réseau et du sous-réseau VPC pour l'interface GVNIC.

      Pour l'interface réseau gVNIC, vous pouvez omettre les champs network et subnetwork pour utiliser plutôt le réseau default.

    • EXTERNAL_IPV4_ADDRESS : (facultatif) adresse IPv4 externe statique à utiliser avec l'interface réseau. Vous devez avoir réservé une adresse IPv4 externe auparavant.
    • RDMA_NAME_PREFIX : préfixe de nom que vous avez utilisé lors de la création du réseau et du sous-réseau VPC pour l'interface IRDMA.
  5. Facultatif : Personnalisez les autres propriétés de l'instance, si nécessaire.
  6. Envoyez la demande.

Spot

Commencez par la requête POST suivante à la méthode instances.bulkInsert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert
    {
      "namePattern":"NAME_PATTERN",
      "count":"COUNT",
      "instanceProperties":{
        "machineType":"MACHINE_TYPE",
        "disks":[
          {
            "boot":true,
            "initializeParams":{
              "diskSizeGb":"DISK_SIZE",
              "diskType":"hyperdisk-balanced",
              "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
            },
            "mode":"READ_WRITE",
            "type":"PERSISTENT"
          }
        ],
        "scheduling":{
            "provisioningModel":"SPOT",
            "instanceTerminationAction":"TERMINATION_ACTION"
        }
      }
    }
    

Procédez comme suit :

  1. Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet dans lequel vous souhaitez créer les instances.
    • ZONE : spécifiez une zone dans laquelle le type de machine que vous souhaitez utiliser est disponible. Si vous utilisez une stratégie de concentration, utilisez une zone de la même région que la stratégie de concentration. Pour en savoir plus sur les régions dans lesquelles les types de machines H4D sont disponibles, consultez Régions et zones disponibles.
    • NAME_PATTERN : format de nom pour les instances. Par exemple, le format de nom vm-# génère des instances portant les noms vm-1 et vm-2, et ainsi de suite jusqu'à ce qu'il atteigne le nombre spécifié par le champ count.
    • COUNT : nombre d'instances à créer.
    • MACHINE_TYPE : type de machine à utiliser pour les instances. Utilisez l'un des types de machines H4D, par exemple h4d-highmem-192-lssd.
    • DISK_SIZE : taille du disque de démarrage en Gio.
    • IMAGE_PROJECT : ID du projet pour l'image de l'OS, par exemple debian-cloud.
    • IMAGE_FAMILY : famille d'images de l'image d'OS que vous souhaitez utiliser, par exemple rocky-linux-9-optimized-gcp. Pour obtenir la liste des images d'OS compatibles, consultez Systèmes d'exploitation compatibles. Choisissez une version d'image d'OS compatible avec l'interface IRDMA.
    • TERMINATION_ACTION : action à effectuer lorsque Compute Engine préempte l'instance, soit STOP (par défaut), soit DELETE.

  2. Facultatif : Si vous avez choisi d'utiliser une stratégie d'emplacement compact, incluez le paramètre resourcePolicies dans le paramètre "instanceProperties".

              "resourcePolicies": [
                "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
              ]
              
  3. Si vous souhaitez configurer les instances pour qu'elles utilisent Cloud RDMA, incluez un bloc de paramètres semblable à celui ci-dessous dans le corps de la requête, dans le cadre du paramètre "instanceProperties". Cet exemple configure deux interfaces réseau gVNIC et une interface réseau IRDMA :

              "networkInterfaces": [
              {
                "network": "GVNIC_NAME_PREFIX-net-0",
                "subnetwork": "GVNIC_NAME_PREFIX-sub-0",
                "accessConfigs": [
                   {
                      "type": "ONE_TO_ONE_NAT",
                      "name": "External IP",
                      "natIP": "EXTERNAL_IPV4_ADDRESS"
                   }
                ],
                "stackType": "IPV4_ONLY",
                "nicType": "GVNIC",
              },
              {
                "network": "GVNIC_NAME_PREFIX-net-1",
                "subnetwork": "GVNIC_NAME_PREFIX-sub-1",
                "stackType": "IPV4_ONLY",
                "nicType": "GVNIC",
              },
              {
                "network": "RDMA_NAME_PREFIX-irdma",
                "subnetwork": "RDMA_NAME_PREFIX-irdma-sub",
                "stackType": "IPV4_ONLY",
                "nicType": "IRDMA",
              }
            ],
             

    Remplacez les éléments suivants :

    • GVNIC_NAME_PREFIX : préfixe de nom que vous avez utilisé lors de la création du réseau et du sous-réseau VPC pour l'interface GVNIC.

      Pour l'interface réseau gVNIC, vous pouvez omettre les champs network et subnetwork pour utiliser plutôt le réseau default.

    • EXTERNAL_IPV4_ADDRESS : (facultatif) adresse IPv4 externe statique à utiliser avec l'interface réseau. Vous devez avoir réservé une adresse IPv4 externe auparavant.
    • RDMA_NAME_PREFIX : préfixe de nom que vous avez utilisé lors de la création du réseau et du sous-réseau VPC pour l'interface IRDMA.
  4. Facultatif : Personnalisez les autres propriétés de l'instance, si nécessaire.
  5. Envoyez la demande.

Étapes suivantes