Ce document explique comment afficher la topologie de vos instances Compute Engine en cours d'exécution. Une fois que vous avez créé et démarré des instances de calcul, vous pouvez afficher leur emplacement physique dans une zone pour comprendre la topologie de votre cluster. Ces informations vous aident à effectuer les opérations suivantes :
Organiser les jobs : vous pouvez ajuster la conception de votre charge de travail pour, par exemple, placer les tâches nécessitant beaucoup de communication sur les instances de calcul les plus proches physiquement.
Résoudre les problèmes : vous pouvez examiner les problèmes de latence ou de performances du réseau si des instances de calcul spécifiques sont plus éloignées que prévu.
Pour vérifier les instances de calcul en cours d'exécution dans votre projet, affichez la liste des instances de calcul.
Limites
Vous ne pouvez afficher la topologie que des instances de calcul qui répondent à un ou plusieurs des critères suivants :
Les instances de calcul utilisent l'un des types de machines suivants :
A4X Max
A4X
A4
A3 Ultra
A3 Mega
A3 High avec 8 GPU
H4D
Les instances de calcul spécifient une stratégie d'emplacement compact.
Les instances de calcul font partie d'un groupe d'instances géré (MIG) qui spécifie une stratégie de charge de travail de type haut débit (
HIGH_THROUGHPUT).
Comprendre la topologie des instances de calcul
Chaque instance de calcul s'exécute sur un serveur physique, un hôte, qui se trouve sur un bloc de serveur. Chaque bloc appartient à un cluster, qui réside dans un centre de données au sein d'une zoneGoogle Cloud . Lorsque vous affichez des instances de calcul qui répondent à des exigences spécifiques, vous pouvez comprendre leur topologie par rapport à d'autres instances de calcul qui répondent aux mêmes exigences.
Plus précisément, vous pouvez connaître l'emplacement physique de vos instances de calcul en consultant les sous-champs suivants dans le champ physicalHostTopology de chaque instance de calcul :
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. Les instances de calcul d'un même bloc présentent une faible latence réseau.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 les hôtes dans un même boîtier physique. Les instances de calcul du même sous-bloc présentent une latence réseau inférieure à celle des instances de calcul du même bloc.Hôte (
host) : ID spécifique à l'organisation de l'hôte sur lequel se trouve votre instance de calcul. Un hôte est un serveur physique unique sur lequel vos instances de calcul s'exécutent. Chaque hôte possède son propre processeur virtuel physique, sa propre mémoire, son propre espace de stockage et sa propre carte d'interface réseau (NIC). Les instances de calcul sur des hôtes adjacents bénéficient de la latence réseau la plus faible possible.
Plus deux instances de calcul en cours d'exécution partagent de sous-champs, plus elles sont physiquement proches l'une de l'autre. Ces informations vous aident à optimiser vos charges de travail en organisant vos jobs de manière à minimiser la latence du réseau ou en concevant des systèmes plus résilients.
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 Google Cloud et aux API, vous n'avez pas besoin de configurer l'authentification.
gcloud
-
Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :
gcloud initSi 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 Lecteur de Compute (roles/compute.viewer) 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.
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.getsur le projet -
Pour afficher la liste des instances de calcul :
compute.instances.listsur le projet
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Vérifier la topologie des instances de calcul
Pour vérifier la topologie de vos instances de calcul en cours d'exécution, utilisez l'une des méthodes suivantes :
Vérifier la topologie des instances de calcul à l'aide de la console Google Cloud , de gcloud CLI ou de REST
Pour afficher la topologie de plusieurs instances de calcul simultanément, utilisez l'API REST. Sinon, sélectionnez l'une des options suivantes :
Console
Dans la console Google Cloud , accédez à la page Instances de VM.
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é.
Dans la section Informations de base, vérifiez la valeur du champ Hôte physique.
gcloud
Pour afficher la topologie 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 à ce qui suit :
---
block: 3e3056e23cf91a5cb4a8621b6a52c100
cluster: europe-west1-cluster-jfhb
host: 1215168a4ecdfb434fd4d28056589059
subBlock: 0fc09525cbd5abd734342893ca1c083f
REST
Pour afficher la topologie 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 spécifier d'afficher uniquement les champs name, machineType et physicalHostTopology d'une instance de calcul. Vous devez également inclure le paramètre de requête filter et spécifier de ne lister que les instances de calcul en cours d'exécution.
Pour afficher la liste de vos instances dans toutes les zones : méthode
instances.aggregatedListGET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/instances?fields=items.name,items.machineType,items.resourceStatus.physicalHostTopology&filter=status=RUNNINGPour afficher la liste de vos instances dans une zone spécifique : méthode
instances.listGET 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 renvoyé ressemble à ceci : 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 souhaitez affiner votre liste d'instances de calcul, modifiez l'expression de filtre dans le paramètre de requête filter.
Vérifier la topologie d'une instance de calcul en interrogeant la clé de métadonnées
Pour afficher la topologie 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
Connectez-vous à votre instance Linux.
Interrogez la clé de métadonnées
physical_host_topologyà l'aide decurl:user@myinst:~$ curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host_topologyLe résultat ressemble à ce qui suit :
{ "block": "3e3056e23cf91a5cb4a8621b6a52c100", "cluster": "europe-west1-cluster-jfhb", "host": "2326279b5ecdfc545fd5e39167698168", "subBlock": "1fc18636cbd4abd623553784ca2c174e" }
Instances Windows
Connectez-vous à votre instance Windows.
Interrogez la clé de métadonnées
physical_host_topologyà l'aide de la commandeInvoke-RestMethod:PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host_topology") $valueLe résultat ressemble à ce qui suit :
{ "block": "3e3056e23cf91a5cb4a8621b6a52c100", "cluster": "europe-west1-cluster-jfhb", "host": "2326279b5ecdfc545fd5e39167698168", "subBlock": "1fc18636cbd4abd623553784ca2c174e" }
Étapes suivantes
En savoir plus sur les événements hôtes dans une instance de calcul
Découvrez comment surveiller les instances de calcul.