Définir la stratégie de maintenance de l'hôte pour une instance Compute


Ce document explique comment définir la stratégie de maintenance de l'hôte pour une instance Compute Engine afin de déterminer son comportement lors des événements hôtes. Pour en savoir plus sur les stratégies de maintenance de l'hôte, consultez la section Stratégie de maintenance de l'hôte.

Une stratégie de maintenance de l'hôte détermine la manière dont votre instance réagit lorsque l'hôte sur lequel elle s'exécute nécessite une maintenance ou rencontre une erreur. Configurer la stratégie de maintenance de l'hôte pour une instance vous permet de:

  • Minimisez les temps d'arrêt.

  • Évitez toute perte de données.

Limites

Les limites suivantes s'appliquent aux stratégies de maintenance des hôtes:

  • Les instances de machines virtuelles qui utilisent des types de machines E2 ne peuvent migrer à chaud que lors d'événements de maintenance de l'hôte, sauf s'il s'agit de VM Spot ou de VM préemptives.

  • Les instances suivantes ne peuvent s'arrêter que lors d'événements de maintenance de l'hôte:

  • Les VM Spot et les VM préemptives ne peuvent pas redémarrer automatiquement après des erreurs d'hôte ou des arrêts programmés.

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

    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

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. 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.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      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 définir la stratégie de maintenance de l'hôte pour une instance Compute, demandez à votre administrateur de vous accorder le rôle IAM Administrateur d'instances Compute (v1) (roles/compute.instanceAdmin.v1) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient les autorisations requises pour définir la stratégie de maintenance de l'hôte pour une instance de calcul. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour définir la stratégie de maintenance de l'hôte pour une instance de calcul:

  • Pour créer une instance :
    • 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 libellés pour la VM : compute.instances.setLabels sur la VM
    • Pour définir un compte de service à utiliser avec 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 créer un modèle d'instance : compute.instanceTemplates.create sur le projet.
  • Pour mettre à jour la stratégie de maintenance de l'hôte d'une instance : compute.instances.setScheduling sur l'instance

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

Propriétés de maintenance de l'hôte disponibles

Vous pouvez personnaliser le comportement de votre instance de calcul lors de la maintenance planifiée ou d'événements hôtes inattendus. Sauf indication contraire, Compute Engine utilise les paramètres par défaut lorsque vous créez une instance, des instances groupées ou un modèle d'instance. Instance ou modèle d'instance

Vous pouvez configurer les propriétés de maintenance de l'hôte suivantes:

  • Comportement de maintenance (onHostMaintenance): ce qui se passe avec votre instance lors d'un événement de maintenance sur son hôte susceptible de provoquer son redémarrage. Vous pouvez définir cette propriété sur l'une des valeurs suivantes:

    • Migrate (Migrer) : Compute Engine migre automatiquement votre instance en direct vers un autre hôte. Il s'agit du paramètre par défaut pour tous les types d'instances, à l'exception des VM Spot et préemptives.

    • Arrêter: Compute Engine arrête votre instance. Il s'agit du paramètre par défaut pour les VM Spot ou les VM préemptibles. Il s'agit également du seul paramètre compatible avec les instances Z3 comportant 88 vCPU ou plus, les instances bare metal et les instances avec GPU ou TPU associés.

  • Redémarrage automatique (automaticRestart): indique si votre instance redémarre en cas de plantage ou si Compute Engine l'arrête pour un arrêt programmé, tel qu'un événement de maintenance. Vous pouvez définir cette propriété sur l'une des valeurs suivantes:

    • Activé: Compute Engine redémarre automatiquement l'instance. Il s'agit du paramètre par défaut pour tous les types d'instances, à l'exception des VM Spot et des VM préemptives. Pour spécifier ce paramètre, procédez comme suit:

      • Pour la console Google Cloud , dans le volet Advanced (Avancé), dans la liste Automatic restart (Redémarrage automatique), sélectionnez On (recommended) (Activé (recommandé)).

      • Avec Google Cloud CLI, utilisez l'option --restart-on-failure.

      • Pour REST, définissez le champ automaticRestart sur true.

    • Désactivé: Compute Engine ne redémarre pas l'instance. Il s'agit du paramètre par défaut pour les VM Spot ou préemptives. Pour spécifier ce paramètre, procédez comme suit:

      • Pour la console Google Cloud , dans le volet Avancé, dans la liste Redémarrage automatique, sélectionnez Désactivé.

      • Avec gcloud CLI, utilisez l'option --no-restart-on-failure.

      • Pour REST, définissez le champ automaticRestart sur false.

  • Délai avant expiration de récupération des données des SSD locaux (localSsdRecoveryTimeout): ce paramètre ne s'applique qu'aux instances auxquelles des disques SSD locaux sont associés. Il détermine la durée pendant laquelle Compute Engine attend pour récupérer les données de vos disques SSD locaux après des erreurs d'hôte. Par défaut, cette propriété n'est pas définie. Vous pouvez définir cette propriété sur l'une des valeurs suivantes:

    • Non défini: Compute Engine utilise le temps d'attente par défaut:

      • Pour les VM Z3, 6 heures

      • Pour tous les autres types d'instances : 1 heure

    • Entier compris entre 0 et 168: nombre d'heures d'attente. Définir cette propriété sur 0 signifie que Compute Engine ne récupère pas les données des disques SSD locaux et redémarre immédiatement l'instance.

  • Délai avant expiration d'erreur de l'hôte (hostErrorTimeoutSeconds): cette propriété détermine la durée d'attente de Compute Engine avant de redémarrer une instance qui ne répond pas. Vous devez configurer ce paramètre avant que l'instance ne cesse de répondre. Utilisez un délai suffisamment long pour qu'une instance puisse se rétablir après avoir été non réactive. Vous pouvez définir cette propriété sur l'une des valeurs suivantes:

    • Non défini: Compute Engine attend jusqu'à 330 secondes (5 minutes et 30 secondes). Il s'agit du paramètre par défaut pour tout type d'instance.

    • Entier compris entre 90 et 330: temps d'attente en secondes, par incréments de 30 secondes.

Définir la stratégie de maintenance de l'hôte pour une instance

Par défaut, les instances de calcul utilisent les paramètres par défaut pour leur stratégie de maintenance de l'hôte. Pour personnaliser ces paramètres, utilisez l'une des méthodes suivantes:

Définir la règle pour une instance existante

Avant de modifier la stratégie de maintenance de l'hôte d'une instance existante, vérifiez les points suivants:

  • Vous ne pouvez pas modifier le comportement de maintenance (onHostMaintenance) des types d'instances suivants:

  • Vous ne pouvez pas configurer de VM Spot ni de VM préemptives pour qu'elles redémarrent automatiquement après des erreurs d'hôte ou des arrêts programmés.

Pour modifier le délai avant expiration de la récupération des données des SSD locaux dans une instance à laquelle des SSD locaux sont associés, utilisez gcloud CLI ou 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 que vous souhaitez mettre à jour. Une page contenant les détails de l'instance s'affiche.

  3. Cliquez sur Modifier. Une page vous permettant de modifier les propriétés de l'instance s'affiche.

  4. Dans la section Gestion, vous pouvez effectuer l'une ou plusieurs des opérations suivantes:

    • Pour modifier le comportement lors des événements de maintenance, sélectionnez une autre option dans la liste Pendant la maintenance de l'hôte.

    • Pour modifier la période d'expiration avant le redémarrage d'une instance qui ne répond pas, sélectionnez une autre option dans la liste Délai avant expiration de l'erreur de l'hôte.

    • Pour choisir de redémarrer ou non l'instance après des erreurs d'hôte ou des arrêts programmés, sélectionnez une autre option dans la liste Redémarrage automatique.

  5. Cliquez sur Enregistrer.

gcloud

Pour modifier la stratégie de maintenance de l'hôte dans une instance existante, exécutez la commande gcloud compute instances set-scheduling avec une ou plusieurs des options suivantes:

  • Pour modifier le comportement de maintenance de l'hôte, incluez l'option --maintenance-policy.

  • Pour modifier le comportement de redémarrage automatique, effectuez l'une des opérations suivantes:

    • Pour redémarrer automatiquement l'instance, incluez l'option --restart-on-failure.

    • Pour empêcher la réinitialisation automatique de l'instance, incluez l'indicateur --no-restart-on-failure.

  • Pour modifier le délai avant expiration de la récupération des données du disque SSD local si des disques SSD locaux sont associés à votre instance, incluez l'indicateur --local-ssd-recovery-timeout.

  • Pour modifier le délai avant expiration de l'erreur de l'hôte, incluez l'option --host-error-timeout-seconds.

Par exemple, pour modifier le comportement de maintenance de l'hôte, redémarrer automatiquement l'instance après des erreurs d'hôte ou des arrêts programmés, modifier le délai avant expiration de la récupération des données des SSD locaux et modifier le délai avant expiration de l'erreur de l'hôte, exécutez la commande suivante:

gcloud compute instances set-scheduling INSTANCE_NAME \
    --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT \
    --local-ssd-recovery-timeout=LOCAL_SSD_RECOVERY_TIMEOUT \
    --maintenance-policy=MAINTENANCE_POLICY \
    --restart-on-failure \
    --zone=ZONE

Remplacez les éléments suivants :

  • INSTANCE_NAME : nom de votre instance.

  • ERROR_DETECTION_TIMEOUT: nombre de secondes avant que Compute Engine ne redémarre une instance qui ne répond pas. La valeur doit être comprise entre 90 (90 secondes) et 330 (330 secondes, soit 5 minutes et 30 secondes). Seuls les incréments de 30 secondes sont autorisés.

  • MAINTENANCE_POLICY: comportement de maintenance de l'instance. La valeur peut être TERMINATE ou MIGRATE.

  • LOCAL_SSD_RECOVERY_TIMEOUT: nombre d'heures à consacrer à la récupération des données des disques SSD locaux associés. La valeur doit être comprise entre 0 (0 heures) et 168 (168 heures, soit 7 jours). Si vous définissez ce champ sur 0, Compute Engine ne récupère pas les données des disques SSD locaux.

  • ZONE: zone où se trouve votre instance.

REST

Pour modifier la stratégie de maintenance de l'hôte dans une instance existante, envoyez une requête POST à la méthode instances.setScheduling. Dans le corps de la requête, incluez un ou plusieurs des champs suivants:

  • Pour modifier le comportement de maintenance de l'hôte, incluez le champ onHostMaintenance.

  • Pour modifier le comportement de redémarrage automatique, effectuez l'une des opérations suivantes:

    • Pour redémarrer automatiquement l'instance, incluez le champ automaticRestart.

    • Pour empêcher la réinitialisation automatique de l'instance, incluez le champ automaticRestart.

  • Pour modifier le délai avant expiration de la récupération des données de disque SSD local si des disques SSD locaux sont associés à votre instance, incluez le champ localSsdRecoveryTimeout.

  • Pour modifier le délai avant expiration des erreurs de l'hôte, incluez le champ hostErrorTimeoutSeconds.

Par exemple, pour modifier le comportement de maintenance de l'hôte, redémarrer automatiquement l'instance après des erreurs d'hôte ou des arrêts programmés, modifier le délai avant expiration de récupération des données SSD locales et modifier le délai avant expiration d'erreur de l'hôte, effectuez une requête comme suit:

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

{
  "automaticRestart": AUTOMATIC_RESTART,
  "hostErrorTimeoutSeconds": ERROR_DETECTION_TIMEOUT,
  "localSsdRecoveryTimeout": LOCAL_SSD_RECOVERY_TIMEOUT,
  "onHostMaintenance": "MAINTENANCE_POLICY"
}

Remplacez les éléments suivants :

  • PROJECT_ID: ID du projet dans lequel se trouve votre instance.

  • ZONE: zone où se trouve votre instance.

  • INSTANCE_NAME : nom de votre instance.

  • AUTOMATIC_RESTART: comportement de redémarrage automatique de l'instance en cas de plantage ou d'arrêt programmé par Compute Engine. Spécifiez une des valeurs suivantes :

    • Pour permettre à Compute Engine de redémarrer automatiquement votre instance : true

    • Pour empêcher les redémarrages automatiques: false

  • ERROR_DETECTION_TIMEOUT: nombre de secondes avant le redémarrage d'une instance qui ne répond pas. La valeur doit être comprise entre 90 (90 secondes) et 330 (330 secondes, soit 5 minutes et 30 secondes). Seuls les incréments de 30 secondes sont autorisés.

  • LOCAL_SSD_RECOVERY_TIMEOUT: nombre d'heures à consacrer à la récupération des données des disques SSD locaux associés. La valeur doit être comprise entre 0 (0 heures) et 168 (168 heures, soit 7 jours). Si vous définissez ce champ sur 0, Compute Engine ne récupère pas les données des disques SSD locaux.

  • MAINTENANCE_POLICY: comportement de maintenance de l'instance. La valeur peut être TERMINATE ou MIGRATE.

Définir la stratégie lors de la création d'une instance

Vous pouvez définir la stratégie de maintenance de l'hôte d'une instance Compute Engine lors de sa création.

Pour définir le délai avant expiration de la récupération des données des disques SSD locaux lors de la création d'une instance à laquelle des disques SSD locaux sont associés, utilisez la gcloud CLI ou l'API REST. Sinon, sélectionnez l'une des options suivantes:

Console

  1. Dans la console Google Cloud , accédez à la page Créer une instance.

    Accéder à la page Créer une instance

  2. Dans le champ Nom, saisissez un nom pour l'instance.

  3. Dans les champs Région et Zone, indiquez la région et la zone dans lesquelles créer l'instance.

  4. Spécifiez le type de machine pour l'instance.

  5. Dans le menu de navigation, cliquez sur Avancé.

  6. Dans la section Modèle de provisionnement, développez Paramètres avancés du modèle de provisionnement de VM, puis effectuez une ou plusieurs des opérations suivantes:

    • Pour définir le comportement pendant les événements de maintenance, dans la liste Pendant la maintenance de l'hôte, sélectionnez l'une des options suivantes:

      • Pour migrer l'instance lors des événements de maintenance de l'hôte, sélectionnez Migrer l'instance de VM (recommandé).

      • Pour arrêter l'instance lors des événements de maintenance de l'hôte, sélectionnez Arrêter l'instance de VM.

    • Pour définir la période avant le redémarrage d'une instance qui ne répond pas, dans la liste Délai avant expiration de l'erreur de l'hôte, sélectionnez l'une des options suivantes:

      • Pour ne pas spécifier de délai avant expiration d'erreur de l'hôte, sélectionnez Non spécifié (par défaut).

      • Pour spécifier un délai avant expiration d'erreur de l'hôte, sélectionnez l'une des options disponibles, jusqu'à 5 minutes et 30 secondes.

    • Pour définir si l'instance doit redémarrer en cas de plantage ou d'arrêt, dans la liste Redémarrage automatique, sélectionnez l'une des options suivantes:

      • Pour redémarrer automatiquement l'instance après des erreurs d'hôte ou des arrêts programmés, sélectionnez Activé (recommandé).

      • Pour empêcher l'instance de redémarrer automatiquement après des erreurs d'hôte ou des arrêts programmés, sélectionnez Désactivé.

  7. Cliquez sur Créer.

gcloud

Pour définir la stratégie de maintenance de l'hôte d'une instance lors de sa création, exécutez la commande gcloud compute instances create avec une ou plusieurs des options suivantes:

  • Pour définir le comportement de maintenance de l'hôte, incluez l'option --maintenance-policy.

  • Pour définir le comportement de redémarrage automatique, procédez comme suit:

    • Pour redémarrer automatiquement l'instance, incluez l'option --restart-on-failure.

    • Pour empêcher la réinitialisation automatique de l'instance, incluez l'indicateur --no-restart-on-failure.

  • Pour définir un délai avant expiration de la récupération des données de SSD locaux si des disques SSD locaux sont associés à votre instance, incluez l'indicateur --local-ssd-recovery-timeout.

  • Pour définir un délai avant expiration d'erreur de l'hôte, incluez l'indicateur --host-error-timeout-seconds.

Par exemple, pour définir le comportement de maintenance de l'hôte, redémarrer automatiquement l'instance après des erreurs d'hôte ou des arrêts programmés, définir un délai avant expiration de récupération des données SSD locales et définir un délai avant expiration d'erreur d'hôte, exécutez la commande suivante:

gcloud compute instances create INSTANCE_NAME \
    --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT \
    --local-ssd-recovery-timeout=LOCAL_SSD_RECOVERY_TIMEOUT \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --restart-on-failure \
    --zone=ZONE

Remplacez les éléments suivants :

  • INSTANCE_NAME : nom de l'instance.

  • ERROR_DETECTION_TIMEOUT: nombre de secondes avant le redémarrage d'une instance qui ne répond pas. La valeur doit être comprise entre 90 (90 secondes) et 330 (330 secondes, soit 5 minutes et 30 secondes). Seuls les incréments de 30 secondes sont autorisés.

  • LOCAL_SSD_RECOVERY_TIMEOUT: nombre d'heures à consacrer à la récupération des données des disques SSD locaux associés. La valeur doit être comprise entre 0 (0 heures) et 168 (168 heures, soit 7 jours). Si vous définissez ce champ sur 0, Compute Engine ne récupère pas les données des disques SSD locaux.

  • MACHINE_TYPE : type de machine à utiliser.

  • MAINTENANCE_POLICY: comportement de maintenance de l'instance. La valeur peut être TERMINATE ou MIGRATE. Si vous créez une VM Spot, une VM préemptive ou une instance qui n'est pas compatible avec la migration à chaud, vous ne pouvez utiliser que TERMINATE.

  • ZONE: zone dans laquelle créer l'instance.

REST

Pour définir la stratégie de maintenance de l'hôte d'une instance lors de sa création, envoyez une requête POST à la méthode instances.insert. Dans le corps de la requête, incluez un ou plusieurs des champs suivants dans le champ scheduling:

  • Pour définir le comportement de maintenance de l'hôte, incluez le champ onHostMaintenance.

  • Pour définir le comportement de redémarrage automatique, procédez comme suit:

    • Pour redémarrer automatiquement l'instance, incluez le champ automaticRestart.

    • Pour empêcher la réinitialisation automatique de l'instance, incluez le champ automaticRestart.

  • Pour définir un délai avant expiration de la récupération des données de SSD locaux si des disques SSD locaux sont associés à votre instance, incluez le champ localSsdRecoveryTimeout.

  • Pour définir un délai avant expiration d'erreur de l'hôte, incluez le champ hostErrorTimeoutSeconds.

Par exemple, pour définir le comportement de maintenance de l'hôte, redémarrer automatiquement l'instance après des erreurs d'hôte ou des arrêts programmés, définir un délai avant expiration de récupération de données SSD local et définir un délai avant expiration d'erreur d'hôte, envoyez une requête comme suit:

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": {
    "automaticRestart": AUTOMATIC_RESTART,
    "hostErrorTimeoutSeconds": ERROR_DETECTION_TIMEOUT,
    "localSsdRecoveryTimeout": LOCAL_SSD_RECOVERY_TIMEOUT,
    "onHostMaintenance": "MAINTENANCE_POLICY"
  }
}

Remplacez les éléments suivants :

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

  • ZONE: zone dans laquelle créer l'instance.

  • INSTANCE_NAME : nom de l'instance.

  • MACHINE_TYPE : type de machine à utiliser.

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

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

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

  • AUTOMATIC_RESTART: comportement de redémarrage automatique de l'instance en cas de plantage ou d'arrêt programmé par Compute Engine. Spécifiez une des valeurs suivantes :

    • Pour permettre à Compute Engine de redémarrer automatiquement votre instance : true

    • Pour empêcher les redémarrages automatiques: false

  • ERROR_DETECTION_TIMEOUT: nombre de secondes avant le redémarrage d'une instance qui ne répond pas. La valeur doit être comprise entre 90 (90 secondes) et 330 (330 secondes, soit 5 minutes et 30 secondes). Seuls les incréments de 30 secondes sont autorisés.

  • LOCAL_SSD_RECOVERY_TIMEOUT: nombre d'heures à consacrer à la récupération des données à partir des disques SSD locaux associés. La valeur doit être comprise entre 0 (0 heure) et 168 (168 heures, soit 7 jours). Si vous définissez ce champ sur 0, Compute Engine ne récupère pas les données des disques SSD locaux.

  • MAINTENANCE_POLICY: comportement de maintenance de l'instance. La valeur peut être TERMINATE ou MIGRATE. Si vous créez une VM spot ou une instance qui n'est pas compatible avec la migration à chaud, vous ne pouvez utiliser que TERMINATE.

Pour en savoir plus sur la création d'une instance, consultez la section Créer et démarrer une instance Compute Engine.

Définir la stratégie lors de la création groupée d'instances

Pour définir la stratégie de maintenance de l'hôte lors de la création d'instances groupées, sélectionnez l'une des options suivantes:

gcloud

Pour définir la stratégie de maintenance de l'hôte lors de la création d'instances groupées, exécutez la commande gcloud compute instances bulk create avec une ou plusieurs des options suivantes:

  • Pour définir le comportement de maintenance de l'hôte, incluez l'option --maintenance-policy.

  • Pour définir le comportement de redémarrage automatique, procédez comme suit:

    • Pour redémarrer automatiquement l'instance, incluez l'option --restart-on-failure.

    • Pour empêcher la réinitialisation automatique de l'instance, incluez l'indicateur --no-restart-on-failure.

  • Pour définir un délai avant expiration de la récupération des données de SSD locaux si des disques SSD locaux sont associés à votre instance, incluez l'indicateur --local-ssd-recovery-timeout.

  • Pour définir un délai avant expiration d'erreur de l'hôte, incluez l'indicateur --host-error-timeout-seconds.

Par exemple, pour définir le comportement de maintenance de l'hôte, redémarrer automatiquement l'instance après des erreurs d'hôte ou des arrêts programmés, définir un délai avant expiration de récupération de données SSD local et définir un délai avant expiration d'erreur d'hôte, exécutez la commande suivante. L'exemple suivant crée également des instances dans une seule zone et spécifie un format de nom pour les instances:

gcloud compute instances bulk create \
    --count=COUNT \
    --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT \
    --local-ssd-recovery-timeout=LOCAL_SSD_RECOVERY_TIMEOUT \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --name-pattern=NAME_PATTERN \
    --restart-on-failure \
    --zone=ZONE

Remplacez les éléments suivants :

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

  • ERROR_DETECTION_TIMEOUT: nombre de secondes avant le redémarrage d'une instance qui ne répond pas. La valeur doit être comprise entre 90 (90 secondes) et 330 (330 secondes, soit 5 minutes et 30 secondes). Seuls les incréments de 30 secondes sont autorisés.

  • LOCAL_SSD_RECOVERY_TIMEOUT: nombre d'heures à consacrer à la récupération des données des disques SSD locaux associés. La valeur doit être comprise entre 0 (0 heures) et 168 (168 heures, soit 7 jours). Si vous définissez ce champ sur 0, Compute Engine ne récupère pas les données des disques SSD locaux.

  • MACHINE_TYPE : type de machine à utiliser.

  • MAINTENANCE_POLICY: comportement de maintenance des instances. La valeur peut être TERMINATE ou MIGRATE. Si vous créez des VM Spot, des VM préemptives ou des instances qui ne sont pas compatibles avec la migration à chaud, vous ne pouvez utiliser que TERMINATE.

  • NAME_PATTERN: modèle de nom des instances. Pour remplacer une séquence de nombres dans un nom d'instance, utilisez une séquence de caractères de hachage (#). Par exemple, le modèle de nom instance-# génère des instances dont les noms commencent par instance-1, instance-2, etc., jusqu'au nombre d'instances spécifié par COUNT.

  • ZONE: zone dans laquelle créer les instances.

REST

Pour définir la stratégie de maintenance de l'hôte lors de la création d'instances de manière groupée, envoyez une requête POST à la méthode instances.bulkInsert. Dans le corps de la requête, incluez un ou plusieurs des champs suivants dans le champ scheduling:

  • Pour définir le comportement de maintenance de l'hôte, incluez le champ onHostMaintenance.

  • Pour définir le comportement de redémarrage automatique, procédez comme suit:

    • Pour redémarrer automatiquement l'instance, incluez le champ automaticRestart.

    • Pour empêcher la réinitialisation automatique de l'instance, incluez le champ automaticRestart.

  • Pour définir un délai avant expiration de la récupération des données de SSD locaux si des disques SSD locaux sont associés à votre instance, incluez le champ localSsdRecoveryTimeout.

  • Pour définir un délai avant expiration d'erreur de l'hôte, incluez le champ hostErrorTimeoutSeconds.

Par exemple, pour définir le comportement de maintenance de l'hôte, redémarrer automatiquement l'instance après des erreurs d'hôte ou des arrêts programmés, définir un délai avant expiration de récupération des données des SSD locaux et définir un délai avant expiration d'erreur de l'hôte, envoyez une requête comme suit. L'exemple suivant crée également des instances dans une seule zone et spécifie un format de nom pour les instances:

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": {
      "automaticRestart": AUTOMATIC_RESTART,
      "hostErrorTimeoutSeconds": ERROR_DETECTION_TIMEOUT,
      "localSsdRecoveryTimeout": LOCAL_SSD_RECOVERY_TIMEOUT,
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

Remplacez les éléments suivants :

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

  • ZONE: zone dans laquelle créer les instances.

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

  • NAME_PATTERN: modèle de nom des instances. Pour remplacer une séquence de nombres dans un nom d'instance, utilisez une séquence de caractères de hachage (#). Par exemple, le modèle de nom instance-# génère des instances dont les noms commencent par instance-1, instance-2, etc., jusqu'au nombre d'instances spécifié par COUNT.

  • MACHINE_TYPE : type de machine à utiliser.

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

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

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

  • AUTOMATIC_RESTART: comportement de redémarrage automatique de l'instance en cas de plantage ou d'arrêt programmé par Compute Engine. Spécifiez une des valeurs suivantes :

    • Pour permettre à Compute Engine de redémarrer automatiquement votre instance : true

    • Pour empêcher les redémarrages automatiques: false

  • ERROR_DETECTION_TIMEOUT: nombre de secondes avant le redémarrage d'une instance qui ne répond pas. La valeur doit être comprise entre 90 (90 secondes) et 330 (330 secondes, soit 5 minutes et 30 secondes). Seuls les incréments de 30 secondes sont autorisés.

  • LOCAL_SSD_RECOVERY_TIMEOUT: nombre d'heures à consacrer à la récupération des données à partir des disques SSD locaux associés. La valeur doit être comprise entre 0 (0 heure) et 168 (168 heures, soit 7 jours). Si vous définissez ce champ sur 0, Compute Engine ne récupère pas les données des disques SSD locaux.

  • MAINTENANCE_POLICY: comportement de maintenance des instances. La valeur peut être TERMINATE ou MIGRATE. Si vous créez des VM Spot, des VM préemptives ou des instances qui ne sont pas compatibles avec la migration à chaud, vous ne pouvez utiliser que TERMINATE.

Pour en savoir plus sur la création d'instances de manière groupée, consultez la section Créer des VM de manière groupée.

Définir la stratégie lors de la création d'un modèle d'instance

Vous pouvez définir la stratégie de maintenance de l'hôte lorsque vous créez un modèle d'instance. Toutes les instances de calcul que vous créez à l'aide du modèle héritent de la stratégie de maintenance de l'hôte spécifiée dans le modèle.

Pour définir le délai avant expiration de la récupération des données des disques SSD locaux lors de la création d'un modèle d'instance qui spécifie des disques SSD locaux, utilisez la gcloud CLI ou l'API REST. Sinon, sélectionnez l'une des options suivantes:

Console

  1. Dans la console Google Cloud , accédez à la page Modèles d'instances.

    Accéder à la page "Modèles d'instances"

  2. Cliquez sur Créer un modèle d'instance. La page Créer un modèle d'instance s'affiche.

  3. Dans le champ Nom, saisissez un nom pour le modèle d'instance.

  4. Dans la section Emplacement, sélectionnez l'une des options suivantes :

    • Pour créer un modèle d'instance régional, sélectionnez Régional (recommandé), puis sélectionnez la région dans laquelle créer le modèle.

    • Pour créer un modèle d'instance global, sélectionnez Global.

  5. Dans la section Configuration de la machine, spécifiez le type de machine pour le modèle d'instance.

  6. Dans la section Modèle de provisionnement, développez Paramètres avancés du modèle de provisionnement de VM, puis effectuez une ou plusieurs des opérations suivantes:

    • Pour modifier le comportement lors des événements de maintenance, dans la liste Pendant la maintenance de l'hôte, sélectionnez l'une des options suivantes:

      • Pour migrer l'instance lors des événements de maintenance de l'hôte, sélectionnez Migrer l'instance de VM (recommandé).

      • Pour arrêter l'instance lors des événements de maintenance de l'hôte, sélectionnez Arrêter l'instance de VM.

    • Pour modifier la période avant le redémarrage d'une instance qui ne répond pas, dans la liste Host error timeout (Délai avant expiration de l'erreur de l'hôte), sélectionnez l'une des options suivantes:

      • Pour ne pas spécifier de délai avant expiration d'erreur de l'hôte, sélectionnez Non spécifié (par défaut).

      • Pour spécifier un délai avant expiration d'erreur de l'hôte, sélectionnez l'une des options disponibles, jusqu'à 5 minutes et 30 secondes.

    • Pour indiquer si l'instance doit redémarrer en cas de plantage ou d'arrêt, dans la liste Redémarrage automatique, sélectionnez l'une des options suivantes:

      • Pour redémarrer automatiquement l'instance après des erreurs d'hôte ou des arrêts programmés, sélectionnez Activé (recommandé).

      • Pour empêcher l'instance de redémarrer automatiquement après des erreurs d'hôte ou des arrêts programmés, sélectionnez Désactivé.

  7. Cliquez sur Créer.

gcloud

Pour définir la stratégie de maintenance de l'hôte lors de la création d'un modèle d'instance, exécutez la commande gcloud compute instance-templates create avec une ou plusieurs des options suivantes:

  • Pour définir le comportement de maintenance de l'hôte, incluez le champ onHostMaintenance.

  • Pour définir le comportement de redémarrage automatique, procédez comme suit:

    • Pour redémarrer automatiquement l'instance, incluez le champ automaticRestart.

    • Pour empêcher la réinitialisation automatique de l'instance, incluez le champ automaticRestart.

  • Pour définir un délai avant expiration de la récupération des données de SSD locaux si des disques SSD locaux sont associés à votre instance, incluez le champ localSsdRecoveryTimeout.

  • Pour définir un délai avant expiration d'erreur de l'hôte, incluez le champ hostErrorTimeoutSeconds.

Par exemple, pour définir le comportement de maintenance de l'hôte, redémarrer automatiquement l'instance après des erreurs d'hôte ou des arrêts programmés, définir un délai avant expiration de récupération de données SSD local et définir un délai avant expiration d'erreur d'hôte, exécutez la commande suivante. L'exemple suivant crée également un modèle d'instance régional. Pour créer un modèle d'instance global, utilisez la même commande sans l'option --instance-template-region.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT \
    --instance-template-region=REGION \
    --local-ssd-recovery-timeout=LOCAL_SSD_RECOVERY_TIMEOUT \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --restart-on-failure

Remplacez les éléments suivants :

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

  • ERROR_DETECTION_TIMEOUT: nombre de secondes avant le redémarrage d'une instance qui ne répond pas. La valeur doit être comprise entre 90 (90 secondes) et 330 (330 secondes, soit 5 minutes et 30 secondes). Seuls les incréments de 30 secondes sont autorisés.

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

  • LOCAL_SSD_RECOVERY_TIMEOUT: nombre d'heures à consacrer à la récupération des données des disques SSD locaux associés. La valeur doit être comprise entre 0 (0 heures) et 168 (168 heures, soit 7 jours). Si vous définissez ce champ sur 0, Compute Engine ne récupère pas les données des disques SSD locaux.

  • MACHINE_TYPE : type de machine à utiliser.

  • MAINTENANCE_POLICY: comportement de maintenance des instances. La valeur peut être TERMINATE ou MIGRATE. Si vous spécifiez une VM Spot, une VM préemptive ou un type d'instance qui n'est pas compatible avec la migration à chaud dans le modèle d'instance, vous ne pouvez utiliser que TERMINATE.

REST

Pour définir la stratégie de maintenance de l'hôte lors de la création d'un modèle d'instance, envoyez une requête POST à l'une des méthodes suivantes:

Dans le corps de la requête, incluez un ou plusieurs des champs suivants dans le champ scheduling:

  • Pour définir le comportement de maintenance de l'hôte, incluez le champ onHostMaintenance.

  • Pour définir le comportement de redémarrage automatique, procédez comme suit:

    • Pour redémarrer automatiquement l'instance, incluez le champ automaticRestart.

    • Pour empêcher la réinitialisation automatique de l'instance, incluez le champ automaticRestart.

  • Pour définir un délai avant expiration de la récupération des données de SSD locaux si des disques SSD locaux sont associés à votre instance, incluez le champ localSsdRecoveryTimeout.

  • Pour définir un délai avant expiration d'erreur de l'hôte, incluez le champ hostErrorTimeoutSeconds.

Par exemple, pour définir le comportement de maintenance de l'hôte, redémarrer automatiquement l'instance après des erreurs d'hôte ou des arrêts programmés, définir un délai avant expiration de récupération des données de SSD local et définir un délai avant expiration d'erreur d'hôte, envoyez une requête comme suit. L'exemple suivant crée également un modèle d'instance régional.

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": {
      "automaticRestart": AUTOMATIC_RESTART,
      "hostErrorTimeoutSeconds": ERROR_DETECTION_TIMEOUT,
      "localSsdRecoveryTimeout": LOCAL_SSD_RECOVERY_TIMEOUT,
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

Remplacez les éléments suivants :

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

  • REGION: région dans laquelle 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 publiques.

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

    • 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 à utiliser.

  • AUTOMATIC_RESTART: comportement de redémarrage automatique de l'instance en cas de plantage ou d'arrêt programmé par Compute Engine. Spécifiez une des valeurs suivantes :

    • Pour permettre à Compute Engine de redémarrer automatiquement votre instance : true

    • Pour empêcher les redémarrages automatiques: false

  • ERROR_DETECTION_TIMEOUT: nombre de secondes avant le redémarrage d'une instance qui ne répond pas. La valeur doit être comprise entre 90 (90 secondes) et 330 (330 secondes, soit 5 minutes et 30 secondes). Seuls les incréments de 30 secondes sont autorisés.

  • LOCAL_SSD_RECOVERY_TIMEOUT: nombre d'heures à consacrer à la récupération des données des disques SSD locaux associés. La valeur doit être comprise entre 0 (0 heures) et 168 (168 heures, soit 7 jours). Si vous définissez ce champ sur 0, Compute Engine ne récupère pas les données des disques SSD locaux.

  • MAINTENANCE_POLICY: comportement de maintenance des instances. La valeur peut être TERMINATE ou MIGRATE. Si vous spécifiez une VM Spot, une VM préemptive ou un type d'instance qui n'est pas compatible avec la migration à chaud dans le modèle d'instance, vous ne pouvez utiliser que TERMINATE.

Pour en savoir plus sur la création d'un modèle d'instance, consultez la section Créer des modèles d'instances.

Afficher la stratégie de maintenance de l'hôte d'une instance

Vous pouvez afficher la stratégie de maintenance de l'hôte d'une instance en consultant les détails de l'instance.

Lorsque vous consultez les détails de l'instance à l'aide de gcloud CLI ou de l'API REST, vous ne pouvez afficher les champs localSsdRecoveryTimeout et hostErrorTimeoutSeconds que si vous les avez spécifiés lors de la création ou de la mise à jour de l'instance.

Pour afficher le délai avant expiration de la récupération des données des SSD locaux dans une instance à laquelle des disques SSD locaux sont associés, utilisez gcloud CLI ou 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 l'instance que vous souhaitez afficher. Une page contenant les détails de l'instance s'affiche.

  3. Dans l'onglet Détails, dans la section Gestion, dans la section Règles de disponibilité, vous pouvez consulter les informations suivantes:

    • Dans le champ On host maintenance (En cas de maintenance de l'hôte), vous pouvez voir les événements de comportement de maintenance de l'hôte de l'instance.

    • Dans le champ Délai avant expiration d'erreur de l'hôte, vous pouvez voir le délai d'attente de l'instance avant son redémarrage ou son arrêt après avoir détecté qu'elle ne répondait pas. Si la valeur n'est pas définie (), le temps d'attente par défaut est de cinq minutes et 30 secondes.

    • Dans le champ Redémarrage automatique, vous pouvez voir si l'instance redémarre automatiquement après un plantage ou si Compute Engine l'arrête pour un arrêt programmé.

gcloud

Pour afficher la stratégie de maintenance de l'hôte d'une instance, utilisez la commande gcloud compute instances describe avec l'option --flatten définie sur scheduling:

 gcloud compute instances describe INSTANCE_NAME \
    --flatten=scheduling \
    --zone=ZONE

Remplacez les éléments suivants :

  • INSTANCE_NAME : nom de l'instance.

  • ZONE : zone où se trouve l'instance

Le résultat ressemble à ce qui suit :

---
scheduling:
  automaticRestart: true
  hostErrorTimeoutSeconds: 120
  localSsdRecoveryTimeout:
    nanos: 0
    seconds: '10800'
  onHostMaintenance: MIGRATE
  preemptible: false
  provisioningModel: STANDARD

REST

Pour afficher la stratégie de maintenance de l'hôte d'une instance, envoyez une requête GET à la méthode instances.get. Dans l'URL de la requête, incluez le paramètre de requête fields et définissez-le sur scheduling:

  GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?fields=scheduling

Remplacez les éléments suivants :

  • PROJECT_ID: projet contenant l'instance.

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

  • INSTANCE_NAME : nom de l'instance.

Le résultat ressemble à ce qui suit :

{
  "scheduling": {
    "onHostMaintenance": "MIGRATE",
    "automaticRestart": true,
    "preemptible": false,
    "provisioningModel": "STANDARD",
    "localSsdRecoveryTimeout": {
      "seconds": "10800",
      "nanos": 0
    }
  }
}

Étapes suivantes