Ce document explique comment définir la stratégie de maintenance de l'hôte d'une instance de machine virtuelle (VM) pour contrôler le comportement de la VM lorsqu'un Événement hôte se produit.
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 comme suit :
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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Vous ne pouvez pas modifier la stratégie de maintenance de l'hôte d'une VM préemptive. En cas d'événement de maintenance, la VM préemptive s'arrête et la migration n'est pas effectuée. Vous devez redémarrer manuellement la VM préemptée.
- Une fois que vous avez créé une VM à l'aide d'un type de machine E2, vous ne pouvez pas modifier les paramètres de maintenance de l'hôte de la VM en remplaçant
MIGRATE
parTERMINATE
ou inversement. onHostMaintenance
: détermine le comportement en cas d'événement de maintenance susceptible de provoquer le redémarrage de la VM.MIGRATE
(Par défaut) : entraîne la migration à chaud de l'instance par Compute Engine lors d'un événement de maintenance.TERMINATE
: arrête une VM au lieu de la migrer.
automaticRestart
: détermine le comportement en cas de plantage ou d'arrêt d'une VM par le système.true
(Par défaut) : Compute Engine redémarre une instance si celle-ci plante ou est arrêtée.false
: Compute Engine ne redémarre pas une VM si celle-ci plante ou est arrêtée.
localSsdRecoveryTimeout
: définit le délai avant expiration de récupération des disques SSD locaux. Il s'agit de la durée maximale, en heures, pendant laquelle Compute Engine attend de récupérer les données des disques SSD locaux après une erreur d'hôte. Ce paramètre ne s'applique qu'aux VM auxquelles sont associés des disques SSD locaux.- Non défini (Par défaut) : Compute Engine attend jusqu'à une heure pour récupérer le disque. Pour les VM Z3 (bêta), le temps d'attente par défaut est de 4 heures.
- Nombre compris entre 0 et 168 : spécifie la durée pendant laquelle Compute Engine attend avant de récupérer le disque. Le nombre doit être un entier, par incréments d'une heure, avec une valeur maximale de sept jours. La valeur 0 signifie que Compute Engine n'attend pas de récupérer les données.
hostErrorTimeoutSeconds
(Bêta) : définit la durée maximale, en secondes, pendant laquelle Compute Engine attend de redémarrer ou d'arrêter une VM après avoir détecté qu'elle ne répondait pas.- Non défini (Par défaut) : Compute Engine attend jusqu'à 5,5 minutes (330 secondes) avant de redémarrer une VM qui ne répond pas.
- Nombre compris entre 90 et 330 : spécifie le nombre de secondes, par incréments de 30, pendant lequel Compute Engine attend avant de redémarrer une VM qui ne répond pas.
Accédez à la page Créer une instance dans Google Cloud Console.
Spécifiez un nom pour la VM.
Sélectionnez une région et une zone pour la VM.
Dans la section Configuration de la machine, procédez comme suit :
- Spécifiez les détails du type de machine pour la VM.
- Développez le menu Paramètres avancés du modèle de provisionnement de la VM.
- Dans le menu Pendant la maintenance de l'hôte, sélectionnez l'une des étapes suivantes :
- Pour migrer des VM lors d'événements de maintenance, sélectionnez Migrer l'instance de VM.
- Pour arrêter les VM lors des événements de maintenance, sélectionnez Arrêter l'instance de VM.
Pour créer la VM, cliquez sur Créer.
--maintenance-policy
: indique si la VM est migrée ou arrêtée lors de la maintenance de l'hôte. Si vous omettez cette propriété, la VM est migrée par défaut.--no-restart-on-failure
ou--restart-on-failure
: indique si la VM redémarre automatiquement après une erreur d'hôte. Par défaut, la VM redémarre toujours lorsqu'une défaillance est détectée.--local-ssd-recovery-timeout
: temps que Compute Engine passe à récupérer des disques SSD locaux associés après une erreur d'hôte. La valeur par défaut est d'une heure.VM_NAME
: nom de la VM.MAINTENANCE_POLICY
: règle de maintenance de cette VM,TERMINATE
ouMIGRATE
.RESTART_ON_FAILURE_BEHAVIOR
: comportement de redémarrage de la VM, défini sur--no-restart-on-failure
ou--restart-on-failure
.SSD_RECOVERY_TIMEOUT
: nombre d'heures à consacrer à la récupération d'un disque SSD local associé à une VM qui ne répond pas. Les valeurs valides sont comprises entre 0 et 168, par incréments d'une heure.VM_NAME
: nom de la VM.MAINTENANCE_POLICY
: règle de maintenance de cette VM,TERMINATE
ouMIGRATE
.RESTART_ON_FAILURE_BEHAVIOR
: comportement de redémarrage de la VM, défini sur--no-restart-on-failure
ou--restart-on-failure
.SSD_RECOVERY_TIMEOUT
: nombre d'heures que Compute Engine passe à récupérer un disque SSD local associé à une VM qui ne répond pas. Les valeurs valides sont comprises entre 0 et 168, par incréments d'une heure.ERROR_DETECTION_TIMEOUT
: délai d'attente en secondes avant que Compute Engine ne redémarre une VM qui ne répond pas, de 90 à 330, par incréments de 30.onHostMaintenance
: indique si la VM est migrée ou arrêtée lors de la maintenance de l'hôte. La VM est migrée par défaut.automaticRestart
: indique si la VM redémarre automatiquement après une erreur d'hôte. Les VM sont redémarrées automatiquement par défaut.localSsdRecoveryTimeout
: temps passé par Compute Engine pour récupérer des disques SSD locaux associés après la détection d'une erreur d'hôte. La valeur par défaut est d'une heure.PROJECT_ID
: projet de la VM.ZONE
: zone dans laquelle vous souhaitez créer la VM.VM_NAME
: nom de la VM.MAINTENANCE_POLICY
: règle de maintenance de cette VM,TERMINATE
ouMIGRATE
.RESTART_POLICY
: règle de redémarrage de cette VM,true
oufalse
SSD_RECOVERY_TIMEOUT
: nombre d'heures passées par Compute Engine pour récupérer un disque SSD local associé à une VM qui ne répond pas. Les valeurs valides sont comprises entre 0 et 168, par incréments d'une heure.PROJECT_ID
: projet de la VM.ZONE
: zone dans laquelle vous souhaitez créer la VM.VM_NAME
: nom de la VM.MAINTENANCE_POLICY
: règle de maintenance de cette VM,TERMINATE
ouMIGRATE
.RESTART_POLICY
: règle de redémarrage de cette VM,true
oufalse
SSD_RECOVERY_TIMEOUT
: nombre d'heures passées par Compute Engine pour récupérer un disque SSD local associé à une VM qui ne répond pas. Les valeurs valides sont comprises entre 0 et 168, par incréments d'une heure.HOST_ERROR_TIMEOUT
: délai d'attente en secondes avant que Compute Engine ne redémarre ou n'arrête une VM qui ne répond pas. Les valeurs valides sont comprises entre 90 et 330, par incréments de 30.Dans la console Google Cloud, accédez à la page Instances de VM.
Cliquez sur la VM dont vous souhaitez modifier les paramètres. La page des détails de la VM s'affiche.
Sur la page des détails de la VM, procédez comme suit :
- Cliquez sur le bouton Modifier en haut de la page.
- Accédez à la section Gestion. Dans la section Règles de disponibilité, vous pouvez configurer les options Pendant la maintenance de l'hôte et Redémarrage automatique.
- Cliquez sur Enregistrer.
VM_NAME
: nom de la VM.MAINTENANCE_POLICY
: règle de cette VM,TERMINATE
ouMIGRATE
RESTART_ON_FAILURE_BEHAVIOR
: comportement au redémarrage de la VM,--no-restart-on-failure
ou--restart-on-failure
.SSD_RECOVERY_TIMEOUT
: temps en heures passé par Compute Engine à récupérer un disque SSD local associé à une VM qui ne répond pas. Les valeurs valides sont comprises entre 0 et 168.VM_NAME
: nom de la VM.MAINTENANCE_POLICY
: règle de maintenance de cette VM,TERMINATE
ouMIGRATE
.RESTART_ON_FAILURE_BEHAVIOR
: comportement de redémarrage de la VM, défini sur--no-restart-on-failure
ou--restart-on-failure
.SSD_RECOVERY_TIMEOUT
: temps en heures passé par Compute Engine à récupérer un disque SSD local associé à une VM qui ne répond pas. Les valeurs valides sont comprises entre 0 et 168.NUMBER_OF_SECONDS
: délai d'attente en secondes avant que Compute Engine n'arrête ou ne redémarre une VM qui ne répond pas, de 90 à 330, par incréments de 30.onHostMaintenance
: indique si la VM est migrée ou arrêtée lors de la maintenance de l'hôte. La VM est migrée par défaut.automaticRestart
: indique si la VM redémarre automatiquement après une erreur d'hôte. Les VM sont redémarrées automatiquement par défaut.localSsdRecoveryTimeout
: temps passé par Compute Engine pour récupérer des disques SSD locaux associés après la détection d'une erreur d'hôte. Si aucune valeur n'est spécifiée, la valeur par défaut est d'une heure.PROJECT_ID
: projet de la VM.ZONE
: zone où se trouve la VM.VM_NAME
: nom de la VM.MAINTENANCE_POLICY
: règle de maintenance de cette VM,TERMINATE
ouMIGRATE
.RESTART_POLICY
: règle de redémarrage de cette VM,true
oufalse
SSD_RECOVERY_TIMEOUT
: temps en heures passé par Compute Engine à récupérer un disque SSD local associé à une VM qui ne répond pas. Les valeurs valides sont comprises entre 0 et 168.PROJECT_ID
: projet de la VM.ZONE
: zone où se trouve la VM.VM_NAME
: nom de la VM.NUMBER_OF_SECONDS
: délai d'attente en secondes avant que Compute Engine n'arrête ou ne redémarre une VM qui ne répond pas, de 90 à 330, par incréments de 30.Accédez à la page Instances de VM.
Cliquez sur le nom de la VM dont vous souhaitez afficher les paramètres. La page Détails de l'instance de VM s'affiche.
Accédez à la section Gestion. La sous-section Règles de disponibilité affiche les paramètres actuels pour la maintenance de l'hôte et le redémarrage automatique.
PROJECT_ID
: projet dans lequel se trouve la VMZONE
: zone où se trouve la VM.VM_NAME
: nom de la VM.PROJECT_ID
: projet de la VM.ZONE
: zone où se trouve la VM.VM_NAME
: nom de la VM.- En savoir plus sur la maintenance de l'hôte.
- En savoir plus sur la migration à chaud.
- Apprenez à détecter un événement de migration à chaud.
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.
Limites
Propriétés de maintenance de l'hôte disponibles
Vous pouvez configurer les comportements de maintenance et de redémarrage d'une VM, et son comportement après une erreur d'hôte, avec les propriétés suivantes.
Compute Engine configure chaque VM avec les valeurs par défaut, sauf si vous avez spécifié des valeurs.
Lors des événements hôtes, en fonction de la stratégie de maintenance de l'hôte configurée, les VM non compatibles avec la migration à chaud sont arrêtées ou redémarrées automatiquement.
Définir la stratégie de maintenance de l'hôte d'une VM
Vous pouvez modifier la stratégie de maintenance de l'hôte d'une VM au moment de la création de la VM ou après sa création.
Définir la stratégie de maintenance de l'hôte lors de la création d'une VM
Les informations de cette section expliquent comment définir la stratégie de maintenance de l'hôte lorsque vous créez une VM. Pour voir d'autres exemples de création de VM, consultez la page Créer et démarrer une instance de VM.
Vous pouvez définir la stratégie de maintenance de l'hôte d'une VM lors de sa création à l'aide de la console Google Cloud, de gcloud CLI ou de l'API Compute Engine.
Console
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Pour définir la stratégie de maintenance de l'hôte d'une nouvelle VM, utilisez la commande
gcloud compute instances create
. Incluez un ou plusieurs des paramètres suivants :Définissez la stratégie de maintenance de l'hôte d'une nouvelle VM à l'aide de la commande suivante. Si vous omettez l'une des options, la valeur par défaut de l'option est utilisée.
gcloud compute instances create VM_NAME \ --maintenance-policy=MAINTENANCE_POLICY \ --RESTART_ON_FAILURE_BEHAVIOR \ --local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT
Remplacez les éléments suivants :
Définir le délai avant expiration de la détection des erreurs de l'hôte
Pour définir la durée maximale pendant laquelle Compute Engine attend avant de redémarrer ou d'arrêter une VM qui ne répond pas, utilisez la commande
gcloud compute instances create
. Spécifiez le délai avant expiration avec l'option--host-error-timeout-seconds
.gcloud beta compute instances create VM_NAME \ --maintenance-policy=MAINTENANCE_POLICY \ --RESTART_ON_FAILURE_BEHAVIOR \ --local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT \ --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT
Remplacez les éléments suivants :
REST
Pour définir la stratégie de maintenance de l'hôte d'une nouvelle VM à l'aide de l'API Compute Engine, utilisez la méthode
instances.insert
. Incluez une ou plusieurs des propriétés suivantes dans l'objetscheduling
du corps de la requête :POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "VM_NAME", "scheduling": { "onHostMaintenance": "MAINTENANCE_POLICY", "automaticRestart": "RESTART_POLICY, "localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT } }
Remplacez les éléments suivants :
Définir le délai avant expiration de la détection des erreurs de l'hôte
Pour définir la durée maximale pendant laquelle Compute Engine attend avant de redémarrer ou d'arrêter une VM qui ne répond pas, utilisez la méthode
instances.insert
en version bêta car cette option est disponible dans la version bêta.Ajoutez la propriété
hostErrorTimeoutSeconds
à l'objetscheduling
du corps de la requête.POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances { "name": "VM_NAME", "scheduling": { "onHostMaintenance": "MAINTENANCE_POLICY", "automaticRestart": "RESTART_POLICY, "localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT "hostErrorTimeoutSeconds": HOST_ERROR_TIMEOUT, } }
Remplacez les éléments suivants :
Mettre à jour la stratégie de maintenance de l'hôte d'une VM existante
Console
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Mettez à jour la stratégie de maintenance de l'hôte d'une VM existante à l'aide de la commande
gcloud compute instances set-scheduling
. Utilisez les mêmes paramètres que ceux décrits dans la commande de création de VM de la section précédente.gcloud compute instances set-scheduling VM_NAME \ --maintenance-policy=MAINTENANCE_POLICY \ --RESTART_ON_FAILURE_BEHAVIOR \ --local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT
Remplacez les éléments suivants :
Mettre à jour le délai avant expiration de la détection des erreurs de l'hôte
Pour mettre à jour le délai maximal pendant lequel Compute Engine attend avant de redémarrer ou d'arrêter une VM qui ne répond pas, exécutez la commande
gcloud beta compute instances set-scheduling
, car cette fonctionnalité n'est disponible qu'en version bêta.Mettez à jour le délai avant expiration à l'aide du paramètre
--host-error-timeout-seconds
. Par exemple :gcloud beta compute instances set-scheduling VM_NAME \ --maintenance-policy=MAINTENANCE_POLICY \ --RESTART_ON_FAILURE_BEHAVIOR \ --local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT \ --host-error-timeout-seconds=NUMBER_OF_SECONDS
Remplacez les éléments suivants :
REST
Mettez à jour la stratégie de maintenance de l'hôte d'une VM existante en envoyant une requête
POST
à la méthodeinstances.setScheduling
.Incluez une ou plusieurs des propriétés suivantes dans le corps de la requête :
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling { "onHostMaintenance": "MAINTENANCE_POLICY", "automaticRestart": RESTART_POLICY, "localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT }
Remplacez les éléments suivants :
Mettre à jour le délai avant expiration de la détection des erreurs de l'hôte
Pour mettre à jour le délai maximal pendant lequel Compute Engine attend avant de redémarrer ou d'arrêter une VM qui ne répond pas, vous devez utiliser la méthode
instances.setScheduling
bêta, car cette fonctionnalité est disponible en version Bêta.Ajoutez le paramètre
hostErrorTimeoutSeconds
au corps de la requête.POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling { "hostErrorTimeoutSeconds": NUMBER_OF_SECONDS, }
Remplacez les éléments suivants :
Afficher les paramètres des stratégies de maintenance de l'hôte d'une VM
Console
gcloud
Affichez les paramètres des options de maintenance de l'hôte pour une VM à l'aide de la commande
gcloud compute instances describe
suivante :gcloud compute instances describe VM_NAME --format="yaml(scheduling)"
Remplacez
VM_NAME
par le nom de la VM.Le résultat inclut le délai de détection des erreurs de l'hôte de la VM, par exemple :
scheduling: automaticRestart: true localSsdRecoveryTimeout: nanos: 0 seconds: '10800' onHostMaintenance: MIGRATE preemptible: false provisioningModel: STANDARD
Afficher le paramètre de délai avant expiration pour la détection d'erreur de l'hôte
Affichez la valeur actuelle de
hostErrorTimeoutSeconds
à l'aide de la commandegcloud beta compute instances describe
, car cette option n'est disponible qu'en version bêta.gcloud beta compute instances describe VM_NAME --format="yaml(scheduling)"
Remplacez
VM_NAME
par le nom de la VM.Le résultat inclut le délai de détection des erreurs de l'hôte de la VM, par exemple :
scheduling: automaticRestart: true hostErrorTimeoutSeconds: 120 localSsdRecoveryTimeout: nanos: 0 seconds: '10800' onHostMaintenance: MIGRATE preemptible: false provisioningModel: STANDARD
REST
Pour afficher les paramètres d'option de maintenance de l'hôte d'une VM, utilisez la méthode
instances.get
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Remplacez les éléments suivants :
Dans le résultat, l'objet
scheduling
contient la stratégie de maintenance de l'hôte de la VM, par exemple :"scheduling": { "onHostMaintenance": "MIGRATE", "automaticRestart": true, "preemptible": false, "provisioningModel": "STANDARD", "localSsdRecoveryTimeout": { "seconds": "10800", "nanos": 0 } }
Afficher les paramètres de délai avant expiration de l'erreur de l'hôte
Affichez le paramètre
hostErrorTimeoutSeconds
actuel avec une requêteGET
sur la méthode bêtainstances.get
, car cette option n'est disponible qu'en version Bêta.GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Remplacez les éléments suivants :
Dans le résultat, l'objet
scheduling
inclut le délai de détection des erreurs de l'hôte de la VM, par exemple :"scheduling": { "hostErrorTimeoutSeconds": 120 }
Étapes suivantes
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/11/21 (UTC).
-