Compute Engine effectue une maintenance régulière de son infrastructure. Cette page décrit les types et les fréquences approximatives de ces événements de maintenance et explique comment définir les règles de disponibilité d'instance pour configurer le comportement des instances de VM lorsque ces événements de maintenance se produisent. La présente page explique également comment configurer une instance pour qu'elle migre à chaud lors d'un événement de maintenance.
Avant de commencer
- Si vous souhaitez utiliser les exemples de ligne de commande de ce guide, procédez comme suit :
- Installez la dernière version de l'outil de ligne de commande gcloud ou appliquez la mise à jour correspondante.
- Définissez une région et une zone par défaut.
- Si vous voulez utiliser les exemples d'API de ce guide, configurez l'accès aux API.
Événements de maintenance
Les événements de maintenance de Compute Engine impliquent des mises à jour matérielles et logicielles. Certains de ces événements de maintenance nécessitent que Google transfère votre VM depuis l'hôte en cours de maintenance. Dans ce cas, Compute Engine gère automatiquement le comportement de planification de ces instances. Compute Engine migre à chaud les instances de VM si vous avez configuré la règle de disponibilité pour une migration à chaud. Cela empêche que les applications ne subissent des perturbations lors de ces événements. Vous pouvez également choisir d'arrêter les instances lors de ces événements plutôt que de les migrer à chaud.
Le tableau suivant classe les événements de maintenance de Compute Engine en deux catégories, chacune étant illustrée par des exemples, et identifie l'événement de maintenance nécessitant la migration à chaud de votre VM vers un hôte différent.
Type d'événement de maintenance | Exemples | Fréquence approximative* | Nécessite une migration à chaud vers un nouvel hôte |
---|---|---|---|
Maintenance de l'hôte | Mise à niveau du noyau, réparation matérielle ou mise à niveau | Une fois toutes les deux semaines | Oui |
Configuration légère | Mise à niveau de l'hyperviseur ou de la pile réseau | 1 à 2 fois par semaine | Non |
*Notez que ces fréquences sont approximatives et ne sont pas garanties. Compute Engine peut occasionnellement effectuer des opérations de maintenance plus fréquentes que celles mentionnées ici.
Choisir des règles de disponibilité
La règle de disponibilité d'une instance de VM détermine son comportement dans le cas d'un événement de maintenance nécessitant que Google déplace cette instance vers une autre machine hôte. Vous pouvez configurer vos instances de VM pour continuer à fonctionner pendant que Compute Engine les migre à chaud vers un autre hôte, ou vous pouvez choisir de les arrêter. Vous pouvez modifier la règle de disponibilité d'une instance de machine virtuelle à tout moment pour contrôler le comportement de cette instance.
Vous pouvez modifier cette règle en configurant les deux paramètres suivants :
- Le comportement en cas de maintenance de l'instance de VM, qui détermine si l'instance doit être migrée à chaud ou arrêtée lors d'un événement de maintenance
- Le comportement au redémarrage de l'instance, qui détermine si l'instance doit redémarrer automatiquement en cas de plantage ou d'arrêt
Le comportement par défaut des instances en cas de maintenance est la migration à chaud, mais vous pouvez le modifier pour que l'instance soit arrêtée lors des événements de maintenance.
Migrer à chaud
Par défaut, les instances standards sont configurées de manière à migrer à chaud. Compute Engine migre automatiquement l'instance hors de l'événement de maintenance de l'infrastructure, mais celle-ci reste en cours d'exécution pendant la migration. Il est possible que l'instance connaisse une courte période de baisse des performances. Cependant, aucune différence n'est généralement constatée pour la plupart des instances. Ceci est idéal pour les instances qui nécessitent une activité constante et peuvent tolérer une courte période de performances réduites.
Lorsque Compute Engine migre l'instance, il signale un événement système qui est publié dans la liste des opérations de la zone. Vous pouvez consulter cet événement en affichant les opérations Compute Engine concernant une zone spécifique. Les événements de migration à chaud sont associés au type d'opération suivant :
compute.instances.migrateOnHostMaintenance
Arrêter et (éventuellement) redémarrer
Si vous ne souhaitez pas que l'instance migre à chaud, vous pouvez choisir de l'arrêter et éventuellement de la redémarrer. Avec cette option, Compute Engine signale à votre instance de se fermer, attend quelques instants le temps qu'elle s'éteigne correctement, arrête l'instance et la redémarre hors de l'événement de maintenance. Cette option est idéale pour les instances exigeant des performances constantes et maximales, et lorsque l'application globale est conçue pour gérer les échecs ou les redémarrages d'instances.
Lorsque Compute Engine arrête et redémarre des instances, il signale un événement système qui est publié dans la liste des opérations de la zone. Vous pouvez consulter cet événement en affichant les opérations Compute Engine concernant une zone spécifique. Les événements d'arrêt sont associés au type d'opération suivant :
compute.instances.terminateOnHostMaintenance
Lorsque l'instance redémarre, elle utilise le même disque de démarrage persistant et rattache tous les disques persistants secondaires que vous avez configurés. Les données sur ces disques persistent lors de la migration et du redémarrage de l'instance.
Les données SSD locales ne persistent pas à l'arrêt de l'instance. Lorsque l'instance redémarre, elle crée un nouveau disque SSD local que vous devez formater et installer.
Redémarrage automatique
Si l'instance est configurée de manière à s'arrêter en cas d'événement de maintenance ou de plantage lié à un problème matériel sous-jacent, vous pouvez configurer Compute Engine pour qu'il la redémarre automatiquement en définissant le champ automaticRestart
sur true
. Ce paramètre ne s'applique pas si l'instance est mise hors ligne par une action utilisateur, telle que l'utilisation de la commande sudo shutdown
, ou pendant une indisponibilité de zone.
Lorsque Compute Engine redémarre automatiquement une instance, il signale un événement système qui est publié dans la liste des opérations de la zone. Vous pouvez consulter cet événement en affichant les opérations Compute Engine concernant une zone spécifique. Les événements de redémarrage automatique sont associés au type d'opération suivant :
compute.instances.automaticRestart
Afficher les opérations Compute Engine
Vous pouvez afficher une liste des opérations terminées via Google Cloud Console, l'outil de ligne de commande gcloud
ou l'API Compute Engine.
Console
Pour afficher une liste des opérations de votre projet, accédez à la page "Opérations".
- Pour afficher les détails d'une opération, cliquez sur le résumé de l'opération. Par exemple, pour afficher les détails de la migration de l'instance
my-instance
, cliquez sur l'opération Automatically migrate an instance (Transférer automatiquement une instance).
gcloud
Pour afficher la liste des opérations de votre projet à l'aide de la commande gcloud compute
, utilisez la sous-commande operations list
.
Pour afficher la liste des opérations ayant eu lieu dans une zone spécifiée, ajoutez l'option --filter
.
gcloud compute operations list --filter="zone:(ZONE)"
Remplacez ZONE
par la zone pour laquelle vous souhaitez afficher la liste des opérations. Par exemple, pour afficher la liste des opérations de la zone us-cental1-c
, exécutez la commande suivante :
gcloud compute operations list --filter="zone:(us-central1-c)"
NAME TYPE TARGET HTTP_STATUS STATUS TIMESTAMP
systemevent-1543845145000... compute.instances.migrateOnHostMaintenance us-central1-c/instances/my-instance 200 DONE 2018-12-03T05:52:25.000-08:00
API
Les requêtes d'API pour les opérations doivent être spécifiées au niveau global, régional ou zonal. La migration à chaud, les arrêts d'instances et les redémarrages automatiques sont des opérations au niveau de la zone.
Pour les opérations de zone, envoyez une requête GET
à la méthode zoneOperations.list
.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/operations
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet pour cette requêteZONE
: zone de cette requête
Laissez le corps de la requête vide.
Voici un exemple de résultat d'une requête d'opération de zone. Les détails d'une migration d'hôte y sont affichés.
{ "kind": "compute#operation", "id": "3216798767364213712", "name": "systemevent-1543845145000-57c1e7574b840-a195b637-5ff74d9b", "zone": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-c", "operationType": "compute.instances.migrateOnHostMaintenance", "targetLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-c/instances/my-instance", "targetId": "3070988523247098025", "status": "DONE", "statusMessage": "Instance migrated during Compute Engine maintenance.", "user": "system", "progress": 100, "insertTime": "2018-12-03T05:52:25.000-08:00", "startTime": "2018-12-03T05:52:25.000-08:00", "endTime": "2018-12-03T05:52:25.000-08:00", "selfLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-c/operations/systemevent-1543845145000-57c1e7574b840-a195b637-5ff74d9b" }
Définir des règles de disponibilité
Configurez le comportement en cas de maintenance et le redémarrage automatique d'une instance à l'aide des propriétés onHostMaintenance
et automaticRestart
.
Toutes les instances sont configurées avec des valeurs par défaut sauf si vous les avez définies.
onHostMaintenance
: détermine le comportement en cas d'événement de maintenance susceptible de provoquer le redémarrage de l'instance.- [Par défaut]
MIGRATE
: entraîne la migration à chaud de l'instance par Compute Engine lors d'un événement de maintenance. TERMINATE
: arrête une instance au lieu de la migrer.
- [Par défaut]
automaticRestart
: détermine le comportement en cas de plantage ou d'arrêt d'une instance par le système.- [Par défaut]
true
: Compute Engine redémarre une instance si celle-ci plante ou est arrêtée. false
: Compute Engine ne redémarre pas une instance si celle-ci plante ou est arrêtée.
- [Par défaut]
Vous pouvez modifier les règles de disponibilité d'une instance lorsque vous créez une instance ou après la création de l'instance, à l'aide de la méthode setScheduling
.
Définir des options lors de la création d'une instance
Console
- Dans Cloud Console, accédez à la page Instances de VM.
- Cliquez sur Créer une instance.
- Sur la page Créer une instance, renseignez les propriétés de votre instance.
- Développez l'option Gestion, sécurité, disques, mise en réseau et location unique.
- Sous Règles de disponibilité, définissez les options Redémarrage automatique et Pendant la maintenance de l'hôte.
- Cliquez sur Créer pour créer l'instance.
gcloud
Pour spécifier les règles de disponibilité d'une nouvelle instance dans gcloud compute
, utilisez l'option --maintenance-policy
pour indiquer si l'instance est migrée ou arrêtée. Par défaut, les instances sont automatiquement configurées pour redémarrer, sauf si vous fournissez l'option --no-restart-on-failure
.
gcloud compute instances create INSTANCE_NAME \
--maintenance-policy MAINTENANCE_POLICY \
[--no-restart-on-failure]
Remplacez les éléments suivants :
INSTANCE_NAME
: nom de l'instanceMAINTENANCE_POLICY
: règle définie pour cette instance,TERMINATE
ouMIGRATE
API
Dans l'API, envoyez une requête POST
à l'URL suivante, en remplaçant le projet et la zone par votre ID de projet et la zone de l'instance :
https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances
avec les paramètres onHostMaintenance
et automaticRestart
dans le corps de la requête :
{
"name": "example-instance",
"description": "Front-end for real-time ingest; don't migrate.",
...
// User options for influencing this Instance’s life cycle.
"scheduling": {
"onHostMaintenance": "MIGRATE",
"automaticRestart": true
}
}
Pour plus d'informations, consultez la documentation de référence sur les instances.
Mettre à jour les options d'une instance
Console
- Accédez à la page "Instances de VM" de Google Cloud Console.
- Cliquez sur l'instance dont vous souhaitez modifier les paramètres. La page de détails de l'instance s'affiche.
- Sur la page des détails de l'instance, procédez comme suit :
- Cliquez sur le bouton Modifier en haut de la page.
- Sous Règles de disponibilité, mettez à jour les règles en fonction de vos besoins. Dans la section Règles de disponibilité, vous pouvez configurer les options Pendant la maintenance de l'hôte et Redémarrage automatique.
- Cliquez sur Enregistrer.
gcloud
Pour mettre à jour les règles de disponibilité d'une instance, utilisez la commande instances set-scheduling
avec les mêmes paramètres et indicateurs que ceux utilisés dans la commande de création d'instance ci-dessus :
gcloud compute instances set-scheduling INSTANCE_NAME \
--maintenance-policy MAINTENANCE_POLICY \
[--no-restart-on-failure | --restart-on-failure]
Remplacez les éléments suivants :
INSTANCE_NAME
: nom de l'instanceMAINTENANCE_POLICY
: règle définie pour cette instance,TERMINATE
ouMIGRATE
API
Dans l'API, vous pouvez envoyer une requête à l'URL suivante, en remplaçant l'ID du projet, la zone et le nom de l'instance par vos propres ID de projet, zone et nom d'instance :
https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-f/instances/example-instance/setScheduling
Le corps de votre requête doit contenir la nouvelle valeur pour les règles de disponibilité :
{
"onHostMaintenance": "MIGRATE",
"automaticRestart": true
}
Pour plus d'informations, consultez la documentation de référence de instances().setScheduling
.
Tester les règles de disponibilité
Après avoir défini les règles de disponibilité, vous pouvez simuler des événements de maintenance pour tester les effets de ces règles sur vos applications. Par exemple, vous pouvez simuler un événement de maintenance sur vos instances dans l'une des situations suivantes :
- Vous avez des instances configurées de telle manière qu'elles migrent à chaud lors des événements de maintenance, et vous devez tester les effets de la migration à chaud sur vos applications.
- Vous avez des tâches par lot exécutées sur des instances de VM préemptives, et vous devez tester la manière dont les applications gèrent la préemption et l'arrêt d'une ou plusieurs instances.
- Vos instances sont configurées de telle manière qu'elles s'arrêtent et redémarrent au lieu de migrer à chaud lors des événements de maintenance, et vous devez tester la manière dont les applications gèrent ce processus d'arrêt et de redémarrage.
Les événements de maintenance simulés sont soumis à des limites relatives à l'API spécifiques.
Vous pouvez simuler un événement de maintenance sur une instance à l'aide de l'outil de ligne de commande gcloud
ou d'une requête API.
gcloud
Exécutez la commande instances simulate-maintenance-event
pour forcer une instance à activer sa règle de maintenance configurée :
gcloud compute instances simulate-maintenance-event INSTANCE_NAME \
--zone ZONE
Remplacez les éléments suivants :
INSTANCE_NAME
: nom de l'instance sur laquelle vous souhaitez simuler l'événement de maintenance. Vous pouvez spécifier plusieurs noms d'instance séparés par des espaces pour simuler des événements de maintenance sur plusieurs instances dans la même zone. Exemple :instance-1 instance-2 instance-3
ZONE
: zone où se trouve l'instance
API
Dans l'API, envoyez une requête à la méthode compute.instances.simulateMaintenanceEvent
de l'API Compute Engine :
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/simulateMaintenanceEvent
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet pour cette requêteINSTANCE_NAME
: nom de l'instance sur laquelle vous souhaitez simuler l'événement de maintenanceZONE
: zone où se trouve l'instance
Pour plus d'informations sur cette méthode, consultez la documentation de référence de instances().simulateMaintenanceEvent
.
Étape suivante
- Cliquez ici pour en savoir plus sur la migration à chaud.
- Apprenez à détecter un événement de migration à chaud.