Définir la stratégie de maintenance de l'hôte d'une VM


Ce document explique comment définir la stratégie de maintenance de l'hôte d'une instance de machine virtuelle (VM) pour configurer le comportement de la VM lorsqu'un événement hôte se produit.

Avant de commencer

Limites

  • 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 par Terminate ou inversement.

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 d'une VM ou après sa création à l'aide de la méthode setScheduling. Pour configurer les comportements de maintenance et de redémarrage d'une VM, et son temps de détection des erreurs de l'hôte, utilisez les propriétés onHostMaintenance, automaticRestart et hostErrorTimeoutSeconds. Compute Engine configure toutes les VM avec les valeurs par défaut, sauf si vous avez spécifié des valeurs.

  • onHostMaintenance : détermine le comportement en cas d'événement de maintenance susceptible de provoquer le redémarrage de la VM.

    • MIGRATE : force la migration à chaud de l'instance par Compute Engine lors d'un événement de maintenance. Il s'agit de la valeur par défaut.
    • 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 : Compute Engine redémarre une instance si celle-ci plante ou est arrêtée. Il s'agit de la valeur par défaut.
    • false : Compute Engine ne redémarre pas une VM si celle-ci plante ou est arrêtée.
  • 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.

    • [Par défaut] non défini, Compute Engine attend jusqu'à 5,5 minutes (330 secondes) avant de redémarrer une VM qui ne répond pas.
    • Nombre de secondes entre 90 et 330, par incréments de 30, qui définit la durée pendant laquelle Compute Engine attend avant de redémarrer une VM qui ne répond pas.

Toutes les VM sont configurées avec des valeurs par défaut sauf si vous les avez définies. 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 lors de la création d'une VM

Console

  1. Accédez à la page Créer une instance dans Google Cloud Console.

    Accéder à la page Créer une instance

  2. Développez la section Mise en réseau, disques, sécurité, gestion et location unique, puis procédez comme suit :

    1. Développez la section Gestion.
    2. Dans la liste Redémarrage automatique, sélectionnez l'option de votre choix.
    3. Dans la liste Pendant la maintenance de l'hôte, sélectionnez l'option de votre choix.
  3. Pour créer la VM, cliquez sur Créer.

gcloud

Pour définir la stratégie de maintenance de l'hôte d'une nouvelle VM dans gcloud compute, utilisez l'option --maintenance-policy pour indiquer si la VM est migrée ou arrêtée. Par défaut, les VM sont automatiquement configurées pour redémarrer, sauf si vous fournissez l'option --no-restart-on-failure.

Pour spécifier la durée maximale pendant laquelle Compute Engine attend avant de redémarrer ou d'arrêter une VM après avoir détecté qu'elle ne répondait pas, utilisez l'option --host-error-timeout-seconds (Bêta).

gcloud compute instances create VM_NAME \
    --maintenance-policy=MAINTENANCE_POLICY \
    --host-error-timeout-seconds=NUMBER_OF_SECONDS \
    [--no-restart-on-failure]

Remplacez les éléments suivants :

  • VM_NAME : nom de la VM
  • MAINTENANCE_POLICY : règle de cette VM, TERMINATE ou MIGRATE
  • NUMBER_OF_SECONDS : délai d'attente en secondes avant que Compute Engine ne redémarre une VM qui ne répond pas. Valeur comprise entre 90 et 330, augmentant par incréments de 30. Cette option est disponible en version bêta. Pour utiliser cette option, exécutez la commande gcloud beta compute instances create.

API

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.

Dans le corps de la requête, ajoutez onHostMaintenance pour indiquer si la VM est migrée ou arrêtée lors de la maintenance de l'hôte. Les VM sont automatiquement configurées pour redémarrer après une erreur d'hôte, sauf si vous définissez automaticRestart sur false.

Pour spécifier la durée maximale pendant laquelle Compute Engine attend avant de redémarrer ou d'arrêter une VM après avoir détecté qu'elle ne répondait pas, ajoutez le paramètre hostErrorTimeoutSeconds (Bêta) au corps de la requête.

Dans l'API, envoyez une requête POST à l'URL suivante, en remplaçant le projet et la zone par votre ID de projet et la zone de la VM :

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

Remplacez les éléments suivants :

  • PROJECT_ID : projet dans lequel vous souhaitez créer la VM
  • ZONE : zone dans laquelle vous souhaitez créer la VM

Ajoutez les paramètres onHostMaintenance, hostErrorTimeoutSeconds et automaticRestart dans le corps de la requête :

{
 "name": "VM_NAME",
 ...
 // User options for influencing this Instance's life cycle.
 "scheduling": {
   "onHostMaintenance": "MAINTENANCE_POLICY",
   "hostErrorTimeoutSeconds": NUMBER_OF_SECONDS,
   "automaticRestart": RESTART_POLICY
 }
}

Remplacez les éléments suivants :

  • VM_NAME : nom de la VM
  • MAINTENANCE_POLICY : règle définie pour cette VM, TERMINATE ou MIGRATE
  • NUMBER_OF_SECONDS : délai d'attente en secondes avant que Compute Engine ne redémarre une VM qui ne répond pas. Valeur comprise entre 90 et 330, augmentant par incréments de 30. Cette option est disponible en version bêta. Pour utiliser cette option, utilisez la méthode instances.inset (version bêta).
  • RESTART_POLICY : règle de redémarrage de cette VM, true ou false

Mettre à jour la stratégie de maintenance de l'hôte d'une VM

Console

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

    Accéder à la page "Instances de VM"

  2. Cliquez sur la VM dont vous souhaitez modifier les paramètres. La page des détails de la VM s'affiche.

  3. Sur la page des détails de la VM, procédez comme suit :

    1. Cliquez sur le bouton Modifier en haut de la page.
    2. Sous Règles de disponibilité, mettez à jour les règles en fonction de vos besoins. Dans la section Règles de disponibilité, vous pouvez configurer les options Pendant la maintenance de l'hôte et Redémarrage automatique.
    3. Cliquez sur Enregistrer.

gcloud

Pour mettre à jour la stratégie de maintenance de l'hôte d'une VM existante, exécutez la commande gcloud compute instances set-scheduling avec les mêmes paramètres et options que ceux utilisés dans la commande de création de VM ci-dessus.

gcloud compute instances set-scheduling VM_NAME \
     --maintenance-policy=MAINTENANCE_POLICY \
     --host-error-timeout-seconds=NUMBER_OF_SECONDS \
     [--no-restart-on-failure | --restart-on-failure]

Remplacez les éléments suivants :

  • MAINTENANCE_POLICY : règle définie pour cette VM, TERMINATE ou MIGRATE
  • VM_NAME : nom de la VM
  • NUMBER_OF_SECONDS : délai d'attente en secondes avant que Compute Engine ne redémarre une VM qui ne répond pas. Valeur comprise entre 90 et 330, augmentant par incréments de 30. Cette option est disponible en version bêta. Pour utiliser cette option, exécutez la commande gcloud beta compute instances set-scheduling.

API

Pour mettre à jour la stratégie de maintenance de l'hôte d'une VM existante, utilisez la méthode instances.setScheduling.

Dans le corps de la requête, ajoutez onHostMaintenance pour indiquer si la VM est migrée ou arrêtée lors de la maintenance de l'hôte. Les VM sont automatiquement configurées pour redémarrer après une erreur d'hôte, sauf si vous définissez automaticRestart sur false.

Pour spécifier la durée maximale pendant laquelle Compute Engine attend avant de redémarrer ou d'arrêter une VM après avoir détecté qu'elle ne répondait pas, ajoutez le paramètre hostErrorTimeoutSeconds (Bêta) au corps de la requête.

Dans l'API, envoyez une requête POST à l'URL suivante :

https://compute.googleapis.com/compute/v1/projects/PROJECT_IDt/zones/ZONE/instances/VM_NAME/setScheduling

Remplacez les éléments suivants :

  • PROJECT_ID : projet dans lequel se trouve la VM
  • ZONE : zone où se trouve la VM
  • VM_NAME : nom de la VM

Ajoutez les paramètres onHostMaintenance, hostErrorTimeoutSeconds et automaticRestart dans le corps de la requête :

{
 "onHostMaintenance": "MAINTENANCE_POLICY",
 "hostErrorTimeoutSeconds": NUMBER_OF_SECONDS,
 "automaticRestart": RESTART_POLICY
}

Remplacez les éléments suivants :

  • MAINTENANCE_POLICY : règle définie pour cette VM, TERMINATE ou MIGRATE
  • NUMBER_OF_SECONDS : délai d'attente en secondes avant que Compute Engine ne redémarre une VM qui ne répond pas. Valeur comprise entre 90 et 330, augmentant par incréments de 30. Cette option est disponible en version bêta. Pour utiliser cette option, utilisez la méthode instances().setScheduling (version bêta).

  • RESTART_POLICY : règle de redémarrage de cette VM, true ou false

Étape suivante