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

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 d'hôte. Pour en savoir plus sur les stratégies de maintenance de l'hôte, consultez Stratégie de maintenance de l'hôte.

Une stratégie de maintenance de l'hôte détermine la façon dont votre instance répond lorsque l'hôte sur lequel elle s'exécute nécessite une maintenance ou rencontre une erreur. La configuration de la stratégie de maintenance de l'hôte pour une instance vous aide à :

  • Minimiser les temps d'arrêt.

  • Éviter toute perte de données.

Limites

Les limites suivantes s'appliquent aux stratégies de maintenance de l'hôte :

  • Les instances de machines virtuelles utilisant des types de machines E2 peuvent uniquement être migrées à chaud pendant les é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 pendant les événements de maintenance de l'hôte :

    • Instances non compatibles avec la migration à chaud, telles que les instances Z3 avec plus de 18 Tio de disques Titanium SSD associés, les instances bare metal ou les VM avec des GPU associés.

    • VM Spot ou préemptives.

  • Les VM Spot et les VM préemptives ne peuvent pas redémarrer automatiquement suite à 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 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 :

    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. Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :

      gcloud init

      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.

    2. Set a default region and zone.

    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. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :

      gcloud init

      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 à la définition d'une stratégie de maintenance de l'hôte pour une instance de calcul, demandez à votre administrateur de vous attribuer 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 pour 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 d'une maintenance planifiée ou d'événements d'hôte inattendus. Sauf indication contraire, Compute Engine utilise les paramètres par défaut lorsque vous créez une instance, des instances de manière groupée ou un modèle d'instance. Instance

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

  • Comportement de maintenance (onHostMaintenance) : ce qui arrive à votre instance lors d'un événement de maintenance sur son hôte qui pourrait entraîner le redémarrage de l'instance. Vous pouvez définir cette propriété sur l'une des options suivantes :

    • Migrer : Compute Engine migre automatiquement votre instance à chaud 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 des VM préemptives.

    • Arrêter : Compute Engine arrête votre instance. Il s'agit du paramètre par défaut pour les VM Spot ou préemptibles. C'est également le seul paramètre compatible avec les instances Z3 comportant plus de 18 Tio de disques Titanium SSD associés, les instances bare metal et les instances comportant des GPU ou des TPU associés.

  • Redémarrage automatique (automaticRestart) : indique si votre instance doit redémarrer en cas de plantage ou en cas d'arrêt programmé par Compute Engine, par exemple lors d'un événement de maintenance. Vous pouvez définir cette propriété sur l'une des options 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 Avancé, dans la liste Redémarrage automatique, sélectionnez Activé (recommandé).

      • Avec la Google Cloud CLI, utilisez le flag --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 la gcloud CLI, utilisez le flag --no-restart-on-failure.

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

  • Délai avant expiration de la récupération des données des disques 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 options suivantes :

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

      • Pour les VM Z3 : 6 heures

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

    • Nombre entier compris entre 0 et 168 : nombre d'heures à attendre. Si vous définissez cette propriété sur 0, 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 de l'erreur de l'hôte (hostErrorTimeoutSeconds) : cette propriété détermine la durée pendant laquelle Compute Engine attend 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 avant expiration suffisamment long pour permettre la récupération de l'instance qui ne répond pas. Vous pouvez définir cette propriété sur l'une des options 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.

    • Nombre entier compris entre 90 et 330 : délai 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 stratégie pour une instance existante

Avant de modifier la stratégie de maintenance de l'hôte d'une instance existante, assurez-vous des points suivants :

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

  • Vous ne pouvez pas configurer les VM Spot ni les 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 disques SSD locaux dans une instance à laquelle sont associés 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 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 indiquant les détails de l'instance s'affiche.

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

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

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

    • Pour modifier le délai avant expiration appliqué 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 modifier le redémarrage ou non de 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, utilisez la commande gcloud compute instances set-scheduling avec un ou plusieurs des flags suivants :

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

  • Pour modifier le comportement du redémarrage automatique, utilisez l'une des méthodes suivantes :

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

    • Pour empêcher le redémarrage automatique de l'instance, incluez le flag --no-restart-on-failure.

  • Pour modifier le délai avant expiration de la récupération des données des disques SSD locaux si votre instance est associée à des disques SSD locaux, incluez le flag --local-ssd-recovery-timeout.

  • Pour modifier le délai avant expiration de l'erreur de l'hôte, incluez le flag --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 de disques 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 l'instance.

  • ERROR_DETECTION_TIMEOUT : nombre de secondes avant que Compute Engine 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 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.

  • 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 du redémarrage automatique, utilisez l'une des méthodes suivantes :

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

    • Pour empêcher le redémarrage automatique de l'instance, incluez le champ automaticRestart.

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

  • Pour modifier le délai avant expiration de l'erreur 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 la récupération des données de disques SSD locaux et modifier le délai avant expiration de l'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 votre instance existe.

  • ZONE : zone où se trouve votre instance.

  • INSTANCE_NAME : nom de l'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 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.

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 de calcul au moment 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. Accédez à la page Créer une instance dans la console Google Cloud .

    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, spécifiez 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 le délai avant expiration appliqué avant le redémarrage d'une instance qui ne répond pas, sélectionnez l'une des options suivantes dans la liste Délai avant expiration de l'erreur de l'hôte :

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

      • Pour spécifier un délai avant expiration de l'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, sélectionnez l'une des options suivantes dans la liste Redémarrage automatique :

      • 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 au moment de sa création, exécutez la commande gcloud compute instances create avec un ou plusieurs des flags suivants :

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

  • Pour définir le comportement du redémarrage automatique, effectuez l'une des opérations suivantes :

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

    • Pour empêcher le redémarrage automatique de l'instance, incluez le flag --no-restart-on-failure.

  • Pour définir un délai avant expiration de la récupération des données des disques SSD locaux si votre instance est associée à des disques SSD locaux, incluez le flag --local-ssd-recovery-timeout.

  • Pour définir un délai avant expiration de l'erreur de l'hôte, incluez le flag --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 le délai avant expiration de la récupération des données de disques SSD locaux et définir le délai avant expiration de l'erreur de l'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 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.

  • 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 non 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 au moment 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 du redémarrage automatique, effectuez l'une des opérations suivantes :

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

    • Pour empêcher le redémarrage automatique de l'instance, incluez le champ automaticRestart.

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

  • Pour définir un délai avant expiration de l'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 le délai avant expiration de la récupération des données de disques SSD locaux et définir le délai avant expiration de l'erreur de l'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 :

    • Une 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 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 non compatible avec la migration à chaud, vous ne pouvez utiliser que TERMINATE.

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

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

Pour définir la stratégie de maintenance de l'hôte au moment de la création d'instances de manière groupée, sélectionnez l'une des options suivantes :

gcloud

Pour définir la stratégie de maintenance de l'hôte au moment de la création d'instances de manière groupée, exécutez la commande gcloud compute instances bulk create avec un ou plusieurs des flags suivants :

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

  • Pour définir le comportement du redémarrage automatique, effectuez l'une des opérations suivantes :

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

    • Pour empêcher le redémarrage automatique de l'instance, incluez le flag --no-restart-on-failure.

  • Pour définir un délai avant expiration de la récupération des données des disques SSD locaux si votre instance est associée à des disques SSD locaux, incluez le flag --local-ssd-recovery-timeout.

  • Pour définir un délai avant expiration de l'erreur de l'hôte, incluez le flag --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 le délai avant expiration de la récupération des données de disques SSD locaux et définir le délai avant expiration de l'erreur de l'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 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.

  • 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 : format de nom pour les instances. Pour remplacer une séquence de nombres dans un nom d'instance, utilisez une séquence de caractères dièse (#). Par exemple, le format de nom instance-# génère des instances portant les noms instance-1, instance-2, etc., jusqu'à ce qu'il atteigne le 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 au moment 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 du redémarrage automatique, effectuez l'une des opérations suivantes :

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

    • Pour empêcher le redémarrage automatique de l'instance, incluez le champ automaticRestart.

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

  • Pour définir un délai avant expiration de l'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 le délai avant expiration de la récupération des données de disques SSD locaux et définir le délai avant expiration de l'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 : format de nom pour les instances. Pour remplacer une séquence de nombres dans un nom d'instance, utilisez une séquence de caractères dièse (#). Par exemple, le format de nom instance-# génère des instances portant les noms instance-1, instance-2, etc., jusqu'à ce qu'il atteigne le 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 :

    • Une 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 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 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 au moment de la création d'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 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 modifier le délai avant expiration appliqué avant le redémarrage d'une instance qui ne répond pas, sélectionnez l'une des options suivantes dans la liste Délai avant expiration de l'erreur de l'hôte :

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

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

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

      • 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 au moment de la création d'un modèle d'instance, exécutez la commande gcloud compute instance-templates create avec un ou plusieurs des flags suivants :

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

  • Pour définir le comportement du redémarrage automatique, effectuez l'une des opérations suivantes :

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

    • Pour empêcher le redémarrage automatique de l'instance, incluez le champ automaticRestart.

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

  • Pour définir un délai avant expiration de l'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 le délai avant expiration de la récupération des données de disques SSD locaux et définir le délai avant expiration de l'erreur de l'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 le flag --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 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.

  • 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 non 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 au moment 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 du redémarrage automatique, effectuez l'une des opérations suivantes :

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

    • Pour empêcher le redémarrage automatique de l'instance, incluez le champ automaticRestart.

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

  • Pour définir un délai avant expiration de l'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 le délai avant expiration de la récupération des données de disques SSD locaux et définir le délai avant expiration de l'erreur de l'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 :

    • Une 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 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 spécifiez une VM Spot, une VM préemptive ou un type d'instance non 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 affichant les détails de l'instance.

Lorsque vous affichez les détails de l'instance à l'aide de la 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 disques SSD locaux dans une instance à laquelle sont associés 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 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 indiquant 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 afficher les informations suivantes :

    • Dans le champ Pendant la 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 de l'erreur de l'hôte, vous pouvez voir le temps d'attente prévu pour le redémarrage ou l'arrêt de l'instance 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 5 minutes et 30 secondes.

    • Dans le champ de redémarrage 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 pour 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 pour 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 dans lequel l'instance existe.

  • 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