Ce document explique comment arrêter et redémarrer manuellement une instance de machine virtuelle (VM), et comment réinitialiser ou redémarrer une VM.
Arrêtez une VM si vous ne l'utilisez plus, ou si vous souhaitez modifier une ou plusieurs de ses propriétés. Par exemple, si vous souhaitez renommer la VM, modifier son type de machine, ajouter ou supprimer des disques associés, ou modifier la configuration minimale de la plate-forme du processeur. Après avoir arrêté la VM, redémarrez-la pour reprendre votre charge de travail ou supprimez la VM si vous n'en avez plus besoin.
Réinitialisez une VM si, par exemple, elle ne répond pas ou si le système d'exploitation (OS) invité a planté. Après avoir réinitialisé la VM, vous pouvez reprendre votre charge de travail.
Redémarrez une VM à partir du système d'exploitation invité si, par exemple, vous souhaitez effacer la mémoire de la VM et la réinitialiser à son état de démarrage d'origine. Après avoir redémarré une VM à partir de son système d'exploitation invité, vous pouvez reprendre votre charge de travail.
Avant de commencer
-
Si ce n'est pas déjà fait, configurez l'authentification.
L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud.
Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :
Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :
Console
Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Définissez une région et une zone par défaut.
Go
Pour utiliser les exemples Go de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Pour en savoir plus, consultez les sections sur Configurer l'authentification pour un environnement de développement local.
Java
Pour utiliser les exemples Java de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Pour en savoir plus, consultez les sections sur Configurer l'authentification pour un environnement de développement local.
Node.js
Pour utiliser les exemples Node.js de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Pour en savoir plus, consultez les sections sur Configurer l'authentification pour un environnement de développement local.
PHP
Pour utiliser les exemples PHP de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Pour en savoir plus, consultez les sections sur Configurer l'authentification pour un environnement de développement local.
Python
Pour utiliser les exemples Python de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Pour en savoir plus, consultez les sections sur Configurer l'authentification pour un environnement de développement local.
REST
Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
Rôles requis
Pour obtenir les autorisations nécessaires pour arrêter et redémarrer une VM, demandez à votre administrateur de vous accorder le rôle Administrateur d'instances Compute (v1) (roles/compute.instanceAdmin.v1
) sur le projet.
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
Ce rôle prédéfini contient les autorisations requises pour arrêter et redémarrer une VM. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour arrêter et redémarrer une VM:
-
Pour arrêter une VM :
compute.instances.stop
sur la VM -
Pour arrêter une VM depuis le système d'exploitation invité :
compute.instances.setMetadata
sur la VM si elle utilise des clés SSH publiques au niveau de l'instance. -
Pour redémarrer une VM :
compute.instances.start
sur la VM -
Pour redémarrer une VM qui utilise des clés de chiffrement :
compute.instances.startWithEncryptionKey
sur la VM -
Pour réinitialiser une VM :
compute.instances.reset
sur la VM -
Pour redémarrer une VM à partir du système d'exploitation invité :
compute.instances.setMetadata
sur la VM
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Arrêter une VM
Voici ce qui se produit lorsque vous arrêtez une VM en cours d'exécution:
Compute Engine envoie le signal d'arrêt ACPI à la VM et attend un court instant jusqu'à ce que le système d'exploitation invité effectue un arrêt normal. Compute Engine définit ensuite l'état de la VM sur
STOPPING
, puis la transfère versTERMINATED
dans la minute qui suit.La VM revient à son état de mise sous tension et conserve ses adresses IP internes, ses adresses MAC, ses paramètres de configuration et ses métadonnées. Cependant, la VM perd ses données en mémoire et son état. Si vous devez conserver les données en mémoire et l'état de la VM, suspendez plutôt la VM.
En outre, si vous avez associé des ressources à la VM, elles le restent jusqu'à ce que vous les dissociez manuellement ou que vous supprimiez la VM. Si des disques SSD locaux sont associés à la VM, l'arrêt de la VM supprime par défaut toutes les données stockées sur ces disques. Pour conserver les données sur les disques SSD locaux, vous devez arrêter la VM en utilisant gcloud CLI avec l'option --discard-local-ssd=false
.
Pour en savoir plus, consultez la page Arrêter une VM avec un disque SSD local.
Pour arrêter une VM, sélectionnez l'une des méthodes décrites dans ce document:
Après avoir arrêté une VM, vous pouvez la redémarrer ou la supprimer. Si vous n'envisagez pas de redémarrer la VM, il est recommandé de la supprimer.
Arrêter une VM via Google Cloud
Pour arrêter plusieurs VM à la fois, utilisez la console Google Cloud.
Console
Pour arrêter une ou plusieurs VM, procédez comme suit:
Dans Google Cloud Console, accédez à la page Instances de VM.
Sélectionnez les VM à arrêter.
Cliquez sur
Arrêter, puis sur Arrêter pour confirmer.
gcloud
Pour arrêter une VM, utilisez la commande gcloud compute instances stop
.
gcloud compute instances stop VM_NAME \
--project=PROJECT_ID \
--zone=ZONE
Remplacez les éléments suivants :
VM_NAME
: nom de la VM.PROJECT_ID
: ID du projet dans lequel se trouve la VM.ZONE
: zone où se trouve la VM.
Si vous avez associé un disque SSD local à la VM et que vous souhaitez conserver les données des disques SSD locaux après avoir arrêté la VM, exécutez la commande gcloud beta compute instances stop
avec --discard-local-ssd=false
.
gcloud beta compute instances stop VM_NAME \
--discard-local-ssd=false \
--project=PROJECT_ID \
--zone=ZONE
Go
Java
Node.js
PHP
Python
REST
Pour arrêter une VM, envoyez une requête POST
à la méthode instances.stop
.
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
Remplacez les éléments suivants :
VM_NAME
: nom de la VM.PROJECT_ID
: ID du projet dans lequel se trouve la VM.ZONE
: zone où se trouve la VM.
Arrêter une VM depuis le système d'exploitation invité
Pour arrêter une VM depuis le système d'exploitation invité lorsque vous êtes connecté à cette VM, sélectionnez l'un des onglets suivants.
Linux
Pour arrêter une VM Linux, sélectionnez l'une des méthodes suivantes:
Pour un arrêt normal permettant à la VM d'exécuter des scripts d'arrêt avant d'envoyer le signal ACPI d'arrêt à la VM, exécutez la commande suivante:
sudo shutdown -h now
Sinon, pour forcer un arrêt, exécutez la commande suivante:
sudo poweroff
Windows
Pour arrêter une VM Windows, sélectionnez l'une des méthodes suivantes:
Pour un arrêt normal permettant à la VM d'exécuter des scripts d'arrêt avant d'envoyer le signal ACPI d'arrêt à la VM, exécutez la commande suivante:
shutdown /s
Sinon, pour forcer un arrêt, exécutez la commande suivante:
shutdown /f
Redémarrer une VM
Vous ne pouvez redémarrer une VM arrêtée que si elle est à l'état TERMINATED
. Pour redémarrer une VM, sélectionnez l'une des méthodes suivantes décrites dans ce document:
Redémarrer une VM sans disques chiffrés (option par défaut).
Redémarrer une VM sans disques chiffrés
Redémarrer une VM arrêtée qui n'utilise aucun disque chiffré (par défaut). Pour redémarrer plusieurs VM à la fois, utilisez la console Google Cloud.
Console
Pour redémarrer une ou plusieurs VM, procédez comme suit:
Dans Google Cloud Console, accédez à la page Instances de VM.
Sélectionnez une ou plusieurs VM.
Cliquez sur
Démarrer/Réactiver.
gcloud
Pour arrêter une VM, utilisez la commande gcloud compute instances start
:
gcloud compute instances start VM_NAME \
--project=PROJECT_ID \
--zone=ZONE
Remplacez les éléments suivants :
VM_NAME
: nom de la VM.PROJECT_ID
: ID du projet dans lequel se trouve la VM.ZONE
: zone où se trouve la VM.
Go
Java
Node.js
PHP
Python
REST
Pour redémarrer une VM, envoyez une requête POST
à la méthode instances.start
.
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
Remplacez les éléments suivants :
VM_NAME
: nom de la VM à redémarrer.PROJECT_ID
: ID du projet dans lequel se trouve la VM.ZONE
: zone où se trouve la VM.
Redémarrer une VM associée à des disques chiffrés
Vous pouvez redémarrer une VM arrêtée qui utilise des clés de chiffrement fournies par le client pour chiffrer les disques persistants associés à la VM.
Console
Pour redémarrer une VM qui utilise des disques chiffrés, procédez comme suit:
Dans Google Cloud Console, accédez à la page Instances de VM.
Sélectionnez la VM à redémarrer.
Cliquez sur
Démarrer/Réactiver.Spécifiez la clé de chiffrement de chaque disque chiffré associé à cette VM, puis cliquez sur Démarrer.
gcloud
Pour redémarrer une VM qui utilise des disques chiffrés, exécutez la commande gcloud compute instances start
avec l'option --csek-key-file
. Si vous utilisez une clé encapsulée en RSA, exécutez plutôt la commande gcloud beta compute instances start
.
gcloud compute instances start VM_NAME \
--csek-key-file=ENCRYPTION_KEY_FILE \
--project=PROJECT_ID \
--zone=ZONE
Remplacez les éléments suivants :
VM_NAME
: nom de la VM.ENCRYPTION_KEY_FILE
: chemin d'accès relatif au fichier JSON contenant la clé de chiffrement fournie par le client.PROJECT_ID
: ID du projet dans lequel se trouve la VM.ZONE
: zone où se trouve la VM.
Go
Java
Node.js
PHP
Python
REST
Pour redémarrer une VM qui utilise des disques chiffrés, envoyez une requête POST
à la méthode instances.startWithEncryptionKey
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/startWithEncryptionKey
{
"disks": [
{
"source": "DISK_URL",
"diskEncryptionKey": {
"ENCRYPTION_TYPE": "ENCRYPTION_KEY"
}
}
]
}
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet dans lequel se trouve la VM.ZONE
: zone où se trouve la VM.VM_NAME
: nom de la VM.DISK_URL
: URL de la ressource correspondant au nom complet de la ressource du disque associé qui est chiffré avec une clé de chiffrement fournie par le client.ENCRYPTION_TYPE
: type de chiffrement de disque que vous utilisez, à savoirrawKey
,kmsKeyName
oursaEncryptedKey
. Si vous utilisez le typersaEncryptedKey
, vous devez envoyer une requêtePOST
à l'API bêta, et non à l'API v1.ENCRYPTION_KEY
: clé de chiffrement utilisée pour chiffrer les disques persistants associés à la VM. Les clésrawKey
oursaEncryptedKey
doivent être encodées en base64. En outre, pour préparer une clérsaEncryptedKey
, consultez la section Encapsuler une clé RSA.
Réinitialiser une VM
La réinitialisation d'une VM en cours d'exécution revient à effectuer une réinitialisation matérielle sur votre ordinateur, par exemple lorsque vous appuyez sur un bouton de réinitialisation ou appuyez de manière prolongée sur le bouton Marche/Arrêt. Lorsque vous réinitialisez une VM, vous ne lui laissez pas le temps d'effectuer un arrêt normal du système d'exploitation invité. Par conséquent, cela peut corrompre les systèmes de fichiers du disque. Google Cloud recommande de ne réinitialiser une VM que si le système d'exploitation invité a planté et que vous n'avez pas d'autres options. Si vous souhaitez réinitialiser une VM et effectuer un arrêt normal, consultez la section Redémarrer une VM du présent document.
Lorsque vous réinitialisez une VM, voici ce qui se produit:
La VM se réinitialise à son état de démarrage initial avec les métadonnées, l'image et les disques persistants d'origine.
La VM efface de force le contenu de la mémoire de la machine, sauf si vous sauvegardez les données.
L'état de la VM reste
RUNNING
tout au long du processus.
La réinitialisation d'une VM ne modifie aucune de ses propriétés de VM. La VM conserve ses adresses IP éphémères, ses adresses IP externes statiques, ses disques persistants, ses disques SSD locaux (le cas échéant) et son type de machine.
Console
Pour réinitialiser une ou plusieurs VM en cours d'exécution, procédez comme suit:
Dans Google Cloud Console, accédez à la page Instances de VM.
Sélectionnez les VM à réinitialiser.
Cliquez sur Réinitialiser, puis à nouveau sur Réinitialiser.
gcloud
Pour réinitialiser une VM en cours d'exécution, utilisez la commande gcloud compute instances reset
.
gcloud compute instances reset VM_NAME \
--project=PROJECT_ID \
--zone=ZONE
Remplacez les éléments suivants :
VM_NAME
: nom de la VM.PROJECT_ID
: ID du projet dans lequel se trouve la VM.ZONE
: zone où se trouve la VM.
Go
Java
Node.js
PHP
Python
REST
Pour réinitialiser une VM en cours d'exécution, envoyez une requête POST
à la méthode instances.reset
.
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/reset
Remplacez les éléments suivants :
VM_NAME
: nom de la VM.PROJECT_ID
: ID du projet dans lequel se trouve la VM.ZONE
: zone où se trouve la VM.
Redémarrer une VM
Lorsque vous redémarrez une VM à partir du système d'exploitation invité, voici ce qui se produit:
La VM se réinitialise à son état de démarrage initial avec les métadonnées, l'image et les disques persistants d'origine.
La VM efface le contenu de la mémoire de la machine, sauf si vous sauvegardez les données.
L'état de la VM reste
RUNNING
tout au long du processus.
Par rapport à la réinitialisation d'une VM, le redémarrage d'une VM à partir du système d'exploitation invité attend que la VM ait terminé toutes les tâches en cours d'exécution avant d'envoyer le signal ACPI d'arrêt à la VM. Cela permet à la VM d'effectuer un arrêt normal.
Le redémarrage d'une VM ne modifie aucune de ses propriétés de VM. La VM conserve ses adresses IP éphémères, ses adresses IP externes statiques, ses disques persistants, ses disques SSD locaux (le cas échéant) et son type de machine.
Linux
Pour réinitialiser une VM Linux, redémarrez le système d'exploitation invité en exécutant la commande suivante:
sudo reboot
Windows
Pour réinitialiser une VM Windows, redémarrez le système d'exploitation invité en exécutant la commande suivante:
shutdown /r /t 0
Vous pouvez également surveiller le processus d'arrêt et de redémarrage de la VM en activant le menu du gestionnaire de démarrage Windows.
Facturation
Une fois qu'une VM est arrêtée et que Compute Engine définit son état sur TERMINATED
, l'utilisation du processeur n'est plus facturée. Toutefois, les ressources associées à la VM, telles que les disques persistants et les adresses IP externes, continuent de vous être facturées.
Pour arrêter de payer des frais pour les ressources associées à une VM, effectuez l'une des opérations suivantes:
Dissociez ces ressources de la VM arrêtée.
Supprimez la VM. Cette action supprime également toutes les ressources associées à la VM.
Étapes suivantes
Découvrez comment programmer automatiquement le démarrage et l'arrêt de vos VM.
Découvrez comment limiter l'environnement d'exécution d'une VM.
Découvrez comment dépanner une VM après un arrêt inattendu en effectuant l'une des opérations suivantes:
Résolvez les problèmes liés aux arrêts et aux redémarrages de VM.
Résolvez les problèmes liés à la VM à l'aide de la console série interactive.
Apprendre à modifier le type de machine d'une VM.