Ce document explique comment afficher la topologie de vos instances Compute Engine en cours d'exécution. Après avoir 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 tâches : 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 quelles instances de calcul sont en cours d'exécution dans votre projet, consultez la liste des instances de calcul.
Limites
Vous ne pouvez afficher la topologie des instances de calcul que si elles répondent à une ou plusieurs des exigences suivantes :
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 serveurs. Chaque bloc appartient à un cluster, qui réside dans un centre de données au sein d'une
Google Cloud zone. 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 comprendre l'emplacement physique de vos instances de calcul en vérifiant 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 du même bloc présentent une faible latence du 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 dans un bloc, regroupant les hôtes dans une seule enceinte 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 dans lequel se trouve votre instance de calcul. Un hôte est un serveur physique unique sur lequel s'exécutent vos instances de calcul. Chaque hôte possède ses propres vCPU physiques, sa mémoire, son stockage et sa carte d'interface réseau (NIC). Les instances de calcul des hôtes adjacents présentent 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 proches physiquement l'une de l'autre. Ces informations vous aident à optimiser vos charges de travail en organisant vos tâches 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 Google Cloud services et aux API. 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 Google Cloud console pour accéder aux Google Cloud services 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, initialisezla 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' Google Cloud authentification.
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 nécessaires 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 Google Cloud console, de la 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 contenant 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
gcloud compute instances describe commande
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 dans laquelle 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 répertorier que les instances de calcul en cours d'exécution.
Pour afficher la liste de vos instances dans toutes les zones :
instances.aggregatedListméthodeGET 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:
instances.listméthodeGET 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 dans laquelle 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
filter paramètre de requête.
Vérifier la topologie des instances 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 laInvoke-RestMethodcommande :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" }
Étape suivante
En savoir plus sur les événements hôtes dans une instance de calcul.
Découvrez comment surveiller les instances de calcul.