Afficher l'emplacement physique d'une instance Compute Engine

Ce document explique comment afficher l'emplacement physique des instances Compute Engine en cours d'exécution dans votre organisation Google Cloud .

Une fois que vous avez créé et démarré des instances de calcul, vous pouvez voir sur quel hôte physique chaque instance de calcul s'exécute dans une zone. Utilisez l'emplacement physique des instances de calcul de votre cluster pour effectuer les opérations suivantes :

  • Minimisez la latence du réseau : ajustez la conception de votre application ou de votre charge de travail pour exécuter les jobs sensibles à la latence sur les instances de calcul les plus proches les unes des autres.

  • Améliorer la fiabilité des charges de travail : distribuez les instances de calcul sur des hôtes physiques distincts pour limiter l'impact des erreurs d'hôte dans votre application.

Pour vérifier les instances de calcul qui s'exécutent dans votre projet, affichez la liste des instances de calcul.

Limites

Vous pouvez afficher l'ID du cluster, du bloc, du sous-bloc et de l'hôte des instances de calcul qui répondent à une ou plusieurs des exigences suivantes :

Si une instance de calcul ne répond à aucune des exigences précédentes, vous pouvez afficher son ID d'hôte après l'avoir exposée, comme décrit dans ce document.

Comprendre la topologie des instances de calcul

Chaque instance de calcul s'exécute sur un serveur physique, un hôte, qui se trouve dans un bloc de serveurs. Chaque bloc appartient à un cluster dans une zone. Lorsque vous consultez les détails des instances de calcul qui répondent à des exigences spécifiques, vous pouvez comprendre leur topologie par rapport aux autres instances de calcul qui répondent aux mêmes exigences.

Compute Engine expose les sous-champs suivants dans le champ physicalHostTopology de chaque instance de calcul. Plus deux instances de calcul en cours d'exécution partagent de sous-champs, plus elles sont proches l'une de l'autre.

  • Cluster (cluster) : nom global du cluster dans lequel se trouve votre instance de calcul. Un cluster est un regroupement logique de haut niveau de plusieurs hôtes, qui peuvent s'étendre sur plusieurs blocs et qui fonctionnent ensemble en tant que pool de ressources unique.

  • Bloc (block) : ID spécifique à l'organisation du bloc dans lequel se trouve votre instance de calcul. Un bloc est un ensemble de plusieurs hôtes regroupés.

  • Sous-bloc (subBlock) : ID spécifique à l'organisation du sous-bloc dans lequel se trouve votre instance de calcul. Un sous-bloc est une subdivision physique d'un bloc, qui regroupe des hôtes dans un même boîtier physique.

  • Hôte (host) : ID spécifique à l'organisation ou au projet de l'hôte sur lequel votre instance de calcul s'exécute. L'ID d'hôte change comme suit :

    • Si l'instance de calcul spécifie une stratégie d'emplacement compact ou une stratégie de charge de travail, l'ID de l'hôte est spécifique à votre projet.

    • Si l'instance de calcul spécifie une série de machines compatible ou si vous exposez son ID d'hôte, l'ID d'hôte est spécifique à votre organisation.

Avant de commencer

  • 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 :

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    Console

    Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud , vous n'avez pas besoin de configurer l'authentification.

    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.

  • Définissez une région et une zone par défaut.
  • 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.

      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 vérifier la topologie de vos instances de calcul, demandez à votre administrateur de vous accorder le rôle IAM Administrateur Compute (roles/compute.admin) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient les autorisations requises pour vérifier la topologie de vos instances de calcul. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour vérifier la topologie de vos instances de calcul :

  • Pour afficher les détails d'une instance de calcul : compute.instances.get
  • Pour afficher la liste des instances de calcul : compute.instances.list
  • Pour exposer l'ID d'hôte lorsque vous créez une instance de calcul :
    • 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 attribuer un ancien réseau à la VM : compute.networks.use sur le projet
    • 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 ancien réseau : compute.networks.useExternalIp sur le projet
    • Pour spécifier un sous-réseau pour la VM : compute.subnetworks.use sur le projet ou sur le sous-réseau choisi
    • 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 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
  • Pour exposer l'ID de l'hôte lorsque vous créez un modèle d'instance : compute.instanceTemplates.create
  • Pour afficher ou masquer l'ID de l'hôte dans une instance de calcul existante : compute.instances.update

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

Afficher ou masquer l'ID de l'hôte

Sauf si une instance de calcul répond à des exigences spécifiques, son ID d'hôte est masqué par défaut. Vous pouvez exposer l'ID de l'hôte lorsque vous créez ou mettez à jour des instances de calcul. Lorsque vous affichez les détails de vos instances de calcul, vous pouvez voir leurs ID d'hôte spécifiques à votre organisation Google Cloud . Vous ne pouvez pas voir les ID du bloc, du sous-bloc ou du cluster pour les instances de calcul.

Pour afficher ou masquer l'ID de l'hôte dans une instance de calcul, utilisez l'une des méthodes suivantes :

Si vous souhaitez empêcher l'exposition des ID d'hôte pour un ou plusieurs projets de votre organisation, vous pouvez créer une contrainte personnalisée. Cette contrainte est utile, par exemple, lorsque vous souhaitez exécuter des charges de travail sensibles à la sécurité. Pour en savoir plus, consultez Contraintes personnalisées.

Afficher ou masquer l'ID d'hôte dans une instance de calcul existante

Vous pouvez afficher ou masquer l'ID de l'hôte dans une instance de calcul existante sans la redémarrer. Si vous désactivez le paramètre qui expose l'ID d'hôte pour une instance de calcul qui affiche l'ID d'hôte par défaut, l'une des actions suivantes se produit :

  • Si l'instance de calcul spécifie une stratégie d'emplacement compact ou une stratégie de charge de travail, l'ID d'hôte spécifique au projet et les informations physiques associées s'affichent.

  • Si l'instance de calcul utilise un type de machine H4D ou un type de machine A3 High avec huit GPU (ou des générations ultérieures), Compute Engine ignore la requête.

Pour afficher ou masquer l'ID d'hôte d'une instance de calcul existante, sélectionnez l'une des options suivantes :

gcloud

Pour afficher ou masquer l'ID de l'hôte d'une instance de calcul existante, utilisez la commande gcloud compute instances update avec l'un des flags suivants :

  • Pour exposer l'ID de l'hôte, incluez le flag --expose-host-topology :

    gcloud compute instances update INSTANCE_NAME \
        --expose-host-topology \
        --zone=ZONE
    
  • Pour masquer l'ID de l'hôte, incluez le flag --no-expose-host-topology :

    gcloud compute instances update INSTANCE_NAME \
        --no-expose-host-topology \
        --zone=ZONE
    

Remplacez les éléments suivants :

  • INSTANCE_NAME : nom de l'instance de calcul.

  • ZONE : zone où se trouve l'instance de calcul.

REST

  1. Pour afficher les propriétés d'une instance de calcul existante, envoyez une requête GET à la méthode instances.get :

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet dans lequel vous avez créé l'instance de calcul.

    • ZONE : zone où se trouve l'instance de calcul.

    • INSTANCE_NAME : nom de l'instance de calcul.

  2. Pour mettre à jour une instance de calcul afin d'afficher ou de masquer l'ID de l'hôte, envoyez une requête PUT à la méthode instances.update. Dans le corps de la requête, utilisez le résultat de la requête GET de l'étape précédente. Toutefois, dans le champ scheduling, vous devez ajouter le champ exposeHostTopology pour afficher ou masquer l'ID de l'hôte. Si le champ scheduling n'existe pas dans le résultat de la requête, ajoutez-le également.

    La requête PUT ressemble à ce qui suit :

    PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?mostDisruptiveAllowedAction=REFRESH
    
    {
      "scheduling": {
        "exposeHostTopology": EXPOSE_HOST_ID
      },
      ...
    }
    

    Remplacez EXPOSE_HOST_ID par l'une des valeurs suivantes :

    • Pour afficher l'ID de l'hôte : true

    • Pour masquer l'ID de l'organisateur : false

Exposer l'ID d'hôte dans une nouvelle instance de calcul

Pour exposer l'ID de l'hôte lorsque vous créez une instance de calcul, sélectionnez l'une des options suivantes :

gcloud

Pour exposer l'ID de l'hôte lorsque vous créez une instance de calcul, utilisez la commande gcloud compute instances create avec l'option --expose-host-topology :

gcloud compute instances create INSTANCE_NAME \
    --machine-type=MACHINE_TYPE \
    --expose-host-topology \
    --zone=ZONE

Remplacez les éléments suivants :

  • INSTANCE_NAME : nom de l'instance de calcul.

  • MACHINE_TYPE : type de machine que vous souhaitez que votre instance de calcul utilise.

  • ZONE : zone dans laquelle vous souhaitez créer l'instance de calcul.

REST

Pour exposer l'ID de l'hôte lors de la création d'une instance de calcul, envoyez une requête POST à la méthode instances.insert. Dans le corps de la requête, incluez le champ scheduling.exposeHostTopology défini sur true.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "INSTANCE_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "scheduling": {
    "exposeHostTopology": true
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel créer l'instance de calcul.

  • ZONE : zone dans laquelle vous souhaitez créer l'instance de calcul.

  • INSTANCE_NAME : nom de l'instance de calcul.

  • MACHINE_TYPE : type de machine que vous souhaitez que votre instance de calcul utilise.

  • IMAGE_PROJECT : projet contenant l'image, par exemple, debian-cloud. Pour en savoir plus sur les projets d'image compatibles, consultez la page Images d'OS publiques.

  • IMAGE : spécifiez l'une des options suivantes :

    • Une version spécifique de l'image de l'OS. Exemple : debian-12-bookworm-v20240617.

    • Une famille d'images, qui doit être au format family/IMAGE_FAMILY. Cela permet de spécifier l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiez family/debian-12, la dernière version de la famille d'images Debian 12 est utilisée. Pour en savoir plus sur l'utilisation des familles d'images, consultez la page Bonnes pratiques concernant les familles d'images.

Exposer l'ID d'hôte dans de nouvelles instances de calcul de manière groupée

Pour exposer l'ID de l'hôte lorsque vous créez des instances de calcul de manière groupée, sélectionnez l'une des options suivantes :

gcloud

Pour exposer l'ID de l'hôte lorsque vous créez des instances de calcul de manière groupée, exécutez la commande gcloud compute instances create-bulk avec le flag --expose-host-topology.

Par exemple, pour créer des instances de calcul de manière groupée dans une seule zone et spécifier d'exposer leur ID d'hôte, exécutez la commande suivante :

gcloud compute instances create-bulk \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --name-pattern="NAME_PATTERN" \
    --expose-host-topology \
    --zone=ZONE

Remplacez les éléments suivants :

  • COUNT : nombre d'instances de calcul à créer.

  • MACHINE_TYPE : type de machine que vous souhaitez que vos instances de calcul utilisent.

  • NAME_PATTERN : format de nom pour les instances de calcul. Pour remplacer une séquence de nombres dans un nom d'instance de calcul, utilisez une séquence de caractères dièse (#). Par exemple, le format de nom instance-# génère des instances de calcul portant les noms instance-1, instance-2, etc., jusqu'à ce qu'il atteigne le nombre d'instances de calcul spécifié par COUNT.

  • ZONE : zone dans laquelle vous souhaitez créer des instances de calcul de manière groupée.

REST

Pour exposer l'ID de l'hôte lorsque vous créez des instances de calcul de manière groupée, envoyez une requête POST à la méthode instances.bulkInsert. Dans le corps de la requête, incluez le champ instanceProperties.scheduling.exposeHostTopology défini sur true.

Par exemple, pour créer des instances de calcul de manière groupée dans une seule zone et spécifier d'exposer leur ID d'hôte, envoyez une requête POST comme suit :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert

{
  "count": "COUNT",
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "scheduling": {
      "exposeHostTopology": true
    }
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel créer les instances de calcul.

  • ZONE : zone dans laquelle vous souhaitez créer les instances de calcul.

  • COUNT : nombre d'instances de calcul à créer.

  • NAME_PATTERN : format de nom pour les instances de calcul. Pour remplacer une séquence de nombres dans un nom d'instance de calcul, utilisez une séquence de caractères dièse (#). Par exemple, le format de nom instance-# génère des instances de calcul portant les noms instance-1, instance-2, etc., jusqu'à ce qu'il atteigne le nombre d'instances de calcul spécifié par COUNT.

  • MACHINE_TYPE : type de machine que vous souhaitez que vos instances de calcul utilisent.

  • IMAGE_PROJECT : projet contenant l'image, par exemple, debian-cloud. Pour en savoir plus sur les projets d'image compatibles, consultez la page Images d'OS publiques.

  • IMAGE : spécifiez l'une des options suivantes :

    • Une version spécifique de l'image de l'OS. Exemple : debian-12-bookworm-v20240617.

    • Une famille d'images, qui doit être au format family/IMAGE_FAMILY. Cela permet de spécifier l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiez family/debian-12, la dernière version de la famille d'images Debian 12 est utilisée. Pour en savoir plus sur l'utilisation des familles d'images, consultez la page Bonnes pratiques concernant les familles d'images.

Exposer l'ID de l'hôte dans un nouveau modèle d'instance

Après avoir créé un modèle d'instance qui spécifie d'exposer l'ID de l'hôte, vous pouvez utiliser le modèle d'instance pour effectuer les opérations suivantes :

Pour exposer l'ID de l'hôte lorsque vous créez un modèle d'instance, sélectionnez l'une des options suivantes :

gcloud

Pour exposer l'ID de l'hôte lorsque vous créez un modèle d'instance, utilisez la commande gcloud compute instance-templates create avec l'option --expose-host-topology.

Par exemple, utilisez la commande suivante pour créer un modèle d'instance régional. Si vous souhaitez créer un modèle d'instance global, utilisez la même commande sans le flag --instance-template-region.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --expose-host-topology \
    --instance-template-region=REGION \
    --machine-type=MACHINE_TYPE

Remplacez les éléments suivants :

  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.

  • REGION : région dans laquelle créer le modèle d'instance.

  • MACHINE_TYPE : type de machine que vous souhaitez que vos instances de calcul utilisent.

REST

Pour exposer l'ID de l'hôte lorsque vous créez un modèle d'instance, envoyez une requête POST à l'une des méthodes suivantes. Dans le corps de la requête, incluez le champ properties.scheduling.exposeHostTopology défini sur true.

Par exemple, pour créer un modèle d'instance régional qui expose l'ID de l'hôte, envoyez une requête POST comme suit :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "scheduling": {
      "exposeHostTopology": true
    }
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel créer le modèle d'instance.

  • REGION : région dans laquelle vous souhaitez créer le modèle d'instance.

  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.

  • IMAGE_PROJECT : projet contenant l'image, par exemple, debian-cloud. Pour en savoir plus sur les projets d'image compatibles, consultez la page Images d'OS publiques.

  • IMAGE : spécifiez l'une des options suivantes :

    • Une version spécifique de l'image de l'OS. Exemple : debian-12-bookworm-v20240617.

    • Une famille d'images, qui doit être au format family/IMAGE_FAMILY. Cela permet de spécifier l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiez family/debian-12, la dernière version de la famille d'images Debian 12 est utilisée. Pour en savoir plus sur l'utilisation des familles d'images, consultez la page Bonnes pratiques concernant les familles d'images.

  • MACHINE_TYPE : type de machine que vous souhaitez que vos instances de calcul utilisent.

Vérifier l'emplacement physique d'une instance de calcul

Vous ne pouvez afficher l'emplacement physique de vos instances de calcul en cours d'exécution que si elles répondent à des exigences spécifiques ou si vous exposez leurs ID d'hôte.

Pour vérifier l'emplacement physique des instances de calcul en cours d'exécution dans votre organisation, utilisez l'une des méthodes suivantes :

Vérifier l'emplacement physique à l'aide de la console Google Cloud , de gcloud CLI ou de REST

Pour afficher l'emplacement physique de plusieurs instances de calcul à la fois, utilisez l'API REST. Sinon, sélectionnez l'une des options suivantes :

Console

  1. Dans la console Google Cloud , accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  2. Dans la colonne Nom, cliquez sur le nom de l'instance de calcul dont vous souhaitez afficher les détails. Une page indiquant les détails de l'instance s'affiche, et l'onglet Détails est sélectionné.

  3. Dans la section Informations de base, vérifiez la valeur du champ Hôte physique.

gcloud

Pour afficher l'emplacement physique d'une instance de calcul en cours d'exécution, utilisez la commande gcloud compute instances describe avec l'option --flatten=resourceStatus.physicalHostTopology :

gcloud compute instances describe INSTANCE_NAME \
    --flatten=resourceStatus.physicalHostTopology \
    --zone=ZONE

Remplacez les éléments suivants :

  • INSTANCE_NAME : nom de l'instance de calcul.

  • ZONE : zone où se trouve l'instance de calcul.

Le résultat ressemble à l'un des exemples suivants :

  • Si vous pouvez afficher l'ID du cluster, du bloc, du sous-bloc et de l'hôte d'une instance de calcul, le résultat ressemble à ce qui suit :

    ---
    block: 3e3056e23cf91a5cb4a8621b6a52c100
    cluster: europe-west1-cluster-jfhb
    host: 1215168a4ecdfb434fd4d28056589059
    subBlock: 0fc09525cbd5abd734342893ca1c083f
    
  • Si vous ne pouvez afficher l'ID de l'hôte qu'après l'avoir exposé, le résultat ressemble à ce qui suit :

    ---
    block: null
    cluster: null
    host: 1215168a4ecdfb434fd4d28056589059
    subBlock: null
    

REST

Pour afficher l'emplacement physique de vos instances de calcul en cours d'exécution, envoyez l'une des requêtes GET suivantes. Lorsque vous envoyez une requête, vous devez inclure le paramètre de requête fields et limiter la sortie aux champs name, machineType et physicalHostTopology d'une instance de calcul. Vous devez également inclure le paramètre de requête filter et limiter les résultats aux instances de calcul en cours d'exécution.

  • Pour afficher la liste de vos instances dans toutes les zones : méthode instances.aggregatedList

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/instances?fields=items.name,items.machineType,items.resourceStatus.physicalHostTopology&filter=status=RUNNING
    
  • Pour afficher la liste de vos instances dans une zone spécifique : méthode instances.list

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances?fields=items.name,items.machineType,items.resourceStatus.physicalHostTopology&filter=status=RUNNING
    

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel se trouvent les instances de calcul.

  • ZONE : zone où se trouvent les instances de calcul.

Le résultat ressemble à l'un des exemples suivants :

  • Si vous pouvez afficher l'ID du cluster, du bloc, du sous-bloc et de l'hôte d'une instance de calcul, le résultat ressemble à ce qui suit. Dans l'exemple suivant, les instances de calcul vm-01 et vm-02 se trouvent dans le même bloc.

    {
      "items": [
        {
          "name": "vm-01",
          "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
          "resourceStatus": {
            "physicalHostTopology": {
              "block": "3e3056e23cf91a5cb4a8621b6a52c100",
              "cluster": "europe-west1-cluster-jfhb",
              "host": "1215168a4ecdfb434fd4d28056589059",
              "subBlock": "0fc09525cbd5abd734342893ca1c083f"
            }
          }
        },
        {
          "name": "vm-02",
          "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
          "resourceStatus": {
            "physicalHostTopology": {
              "block": "3e3056e23cf91a5cb4a8621b6a52c100",
              "cluster": "europe-west1-cluster-jfhb",
              "host": "2326279b5ecdfc545fd5e39167698168",
              "subBlock": "1fc18636cbd4abd623553784ca2c174e"
            }
          }
        },
        ...
      ]
    }
    
  • Si vous ne pouvez afficher l'ID de l'hôte qu'après l'avoir exposé, le résultat ressemble à ce qui suit :

    {
      "items": [
        {
          "name": "vm-01",
          "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
          "resourceStatus": {
            "physicalHostTopology": {
              "block": null,
              "cluster": null,
              "host": "1215168a4ecdfb434fd4d28056589059",
              "subBlock": null
            }
          }
        },
        {
          "name": "vm-02",
          "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
          "resourceStatus": {
            "physicalHostTopology": {
              "block": null,
              "cluster": null,
              "host": "2326279b5ecdfc545fd5e39167698168",
              "subBlock": null
            }
          }
        },
        ...
      ]
    }
    

Si vous souhaitez affiner votre liste d'instances de calcul, modifiez l'expression de filtre dans le paramètre de requête filter.

Vérifier l'emplacement physique en interrogeant une clé de métadonnées

Pour afficher l'emplacement physique d'une instance de calcul en cours d'exécution en interrogeant la clé de métadonnées physical_host_topology, sélectionnez l'une des options suivantes :

Instances Linux

  1. Connectez-vous à votre instance Linux.

  2. Interrogez la clé de métadonnées physical_host_topology à l'aide de curl :

    user@myinst:~$ curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host_topology
    

    Le résultat ressemble à l'un des exemples suivants :

    • Si vous pouvez afficher l'ID du cluster, du bloc, du sous-bloc et de l'hôte d'une instance de calcul, le résultat ressemble à ce qui suit :

      {
        "block": "3e3056e23cf91a5cb4a8621b6a52c100",
        "cluster": "europe-west1-cluster-jfhb",
        "host": "2326279b5ecdfc545fd5e39167698168",
        "subBlock": "1fc18636cbd4abd623553784ca2c174e"
      }
      
    • Si vous ne pouvez afficher l'ID de l'hôte qu'après l'avoir exposé, le résultat est semblable à ce qui suit :

      {
        "block": null,
        "cluster": null,
        "host": "2326279b5ecdfc545fd5e39167698168",
        "subBlock": null
      }
      

Instances Windows

  1. Connectez-vous à votre instance Windows.

  2. Interrogez la clé de métadonnées physical_host_topology à l'aide de la commande Invoke-RestMethod :

    PS C:\> 
    $value = (Invoke-RestMethod `
            -Headers @{'Metadata-Flavor' = 'Google'} `
            -Uri "http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host_topology")
    $value
    

    Le résultat ressemble à l'un des exemples suivants :

    • Si vous pouvez afficher l'ID du cluster, du bloc, du sous-bloc et de l'hôte d'une instance de calcul, le résultat ressemble à ce qui suit :

      {
        "block": "3e3056e23cf91a5cb4a8621b6a52c100",
        "cluster": "europe-west1-cluster-jfhb",
        "host": "2326279b5ecdfc545fd5e39167698168",
        "subBlock": "1fc18636cbd4abd623553784ca2c174e"
      }
      
    • Si vous ne pouvez afficher l'ID de l'hôte qu'après l'avoir exposé, le résultat est semblable à ce qui suit :

      {
        "block": null,
        "cluster": null,
        "host": "2326279b5ecdfc545fd5e39167698168",
        "subBlock": null
      }
      

Étapes suivantes