Questo documento spiega come arrestare, riavviare, reimpostare o riavviare manualmente un'istanza di macchina virtuale (VM). Queste operazioni sono utili nei seguenti scenari:
Arresta una VM se non la utilizzi più o se vuoi modificarne una o più proprietà; ad esempio, se vuoi rinominare la VM, cambiarne il tipo di macchina, aggiungere o rimuovere dischi collegati oppure cambiare la piattaforma CPU minima. Dopo aver arrestato la VM, riavviala per riprendere il carico di lavoro o eliminala se non ti serve più.
Reimposta una VM se, ad esempio, non risponde o il sistema operativo guest ha un arresto anomalo. Dopo aver reimpostato la VM, puoi riprendere il carico di lavoro.
Riavvia una VM dall'interno del sistema operativo guest se, ad esempio, vuoi cancellare la memoria della VM e reinizializzarla riportandola allo stato di avvio originale. Dopo aver riavviato una VM dal suo sistema operativo guest, puoi riprendere il carico di lavoro.
Prima di iniziare
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.
Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.
gcloud
-
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
- Imposta una regione e una zona predefinite.
Go
Per utilizzare gli esempi Go in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per utilizzare gli esempi Java in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per utilizzare gli esempi Node.js in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per utilizzare gli esempi PHP in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per utilizzare gli esempi Python in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
-
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per arrestare e riavviare una VM, chiedi all'amministratore di concederti il ruolo IAM Amministratore istanze Compute (v1) (roles/compute.instanceAdmin.v1
) sul progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Questo ruolo predefinito contiene le autorizzazioni necessarie per arrestare e riavviare una VM. Per visualizzare le autorizzazioni esatte necessarie, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per arrestare e riavviare una VM sono necessarie le seguenti autorizzazioni:
-
Per arrestare una VM:
compute.instances.stop
sulla VM -
Per arrestare una VM dall'interno del sistema operativo guest:
compute.instances.setMetadata
sulla VM se utilizza chiavi SSH pubbliche a livello di istanza. -
Per riavviare una VM:
compute.instances.start
sulla VM -
Per riavviare una VM che utilizza chiavi di crittografia:
compute.instances.startWithEncryptionKey
sulla VM -
Per reimpostare una VM:
compute.instances.reset
sulla VM -
Per riavviare una VM dall'interno del sistema operativo guest:
compute.instances.setMetadata
sulla VM
Potresti anche essere in grado di ottenere queste autorizzazioni con i ruoli personalizzati o altri ruoli predefiniti.
Arresta una VM
Quando arresti una VM in esecuzione, si verifica quanto segue:
Compute Engine invia il segnale di arresto ACPI alla VM e attende breve tempo prima che il sistema operativo guest esegua un arresto pulito. Quindi, Compute Engine imposta prima lo stato della VM su
STOPPING
, quindi lo trasferisce aTERMINATED
entro un minuto.La VM viene ripristinata allo stato di accensione e conserva i propri IP, indirizzi MAC, impostazioni di configurazione e metadati interni. Tuttavia, la VM perde i dati in memoria e lo stato. Se devi conservare i dati in memoria e lo stato della VM, sospendi la VM.
Inoltre, se hai collegato risorse alla VM, queste rimangono collegate finché non le dissoci manualmente o non elimini la VM. Se alla VM sono collegati dischi SSD locali, l'arresto della VM elimina tutti i dati sui dischi SSD locali per impostazione predefinita. Per conservare i dati sui dischi SSD locali, devi arrestare la VM utilizzando gcloud CLI con il flag --discard-local-ssd=false
.
Per maggiori informazioni, consulta
Arrestare una VM con SSD locale.
Per arrestare una VM, seleziona uno dei metodi descritti in questo documento:
Dopo aver arrestato una VM, puoi riavviarla o eliminarla. Se non prevedi di riavviare la VM, ti consigliamo di eliminarla.
Arresta una VM tramite Google Cloud
Per arrestare più di una VM alla volta, utilizza la console Google Cloud.
Console
Per arrestare una o più VM:
Nella console Google Cloud, vai alla pagina Istanze VM.
Seleziona le VM da arrestare.
Fai clic su
Interrompi e poi su Interrompi per confermare.
gcloud
Per arrestare una VM, utilizza il comando gcloud compute instances stop
.
gcloud compute instances stop VM_NAME \
--project=PROJECT_ID \
--zone=ZONE
Sostituisci quanto segue:
VM_NAME
: il nome della VM.PROJECT_ID
: l'ID del progetto in cui si trova la VM.ZONE
: la zona in cui si trova la VM.
Se hai collegato un disco SSD locale alla VM e vuoi conservare i dati
SSD locali dopo l'arresto della VM, utilizza il
comando gcloud beta compute instances stop
con il flag --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
Per arrestare una VM, invia una richiesta POST
al metodo instances.stop
.
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
Sostituisci quanto segue:
VM_NAME
: il nome della VM.PROJECT_ID
: l'ID del progetto in cui si trova la VM.ZONE
: la zona in cui si trova la VM.
Arresta una VM dall'interno del sistema operativo guest
Per arrestare una VM dal sistema operativo guest quando ti connetti alla VM, seleziona una delle seguenti schede.
Linux
Per arrestare una VM Linux, seleziona uno dei seguenti metodi:
Per un arresto pulito che consenta alla VM di eseguire script di arresto prima di inviare alla VM l'indicatore di arresto ACPI, esegui questo comando:
sudo shutdown -h now
In caso contrario, per forzare l'arresto, esegui questo comando:
sudo poweroff
Windows
Per arrestare una VM Windows, seleziona uno dei seguenti metodi:
Per un arresto pulito che consenta alla VM di eseguire script di arresto prima di inviare alla VM l'indicatore di arresto ACPI, esegui questo comando:
shutdown /s
In caso contrario, per forzare l'arresto, esegui questo comando:
shutdown /f
Riavvia una VM
Puoi riavviare una VM arrestata solo se si trova nello stato TERMINATED
. Per riavviare una VM, seleziona uno dei seguenti metodi descritti in questo documento:
Riavvia una VM senza dischi criptati (impostazione predefinita).
Riavvia una VM senza dischi criptati
Riavvia una VM arrestata che non utilizza dischi criptati (impostazione predefinita). Per riavviare più di una VM alla volta, utilizza la console Google Cloud.
Console
Per riavviare una o più VM:
Nella console Google Cloud, vai alla pagina Istanze VM.
Seleziona una o più VM.
Fai clic su
Avvia / Riprendi.
gcloud
Per riavviare una VM, utilizza il comando gcloud compute instances start
.
gcloud compute instances start VM_NAME \
--project=PROJECT_ID \
--zone=ZONE
Sostituisci quanto segue:
VM_NAME
: il nome della VM.PROJECT_ID
: l'ID del progetto in cui si trova la VM.ZONE
: la zona in cui si trova la VM.
Go
Java
Node.js
PHP
Python
REST
Per riavviare una VM, invia una richiesta POST
al metodo instances.start
.
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
Sostituisci quanto segue:
VM_NAME
: il nome della VM da riavviare.PROJECT_ID
: l'ID del progetto in cui si trova la VM.ZONE
: la zona in cui si trova la VM.
Riavvia una VM che utilizza dischi criptati
Puoi riavviare una VM arrestata che utilizza chiavi di crittografia fornite dal cliente per criptare i dischi permanenti collegati alla VM.
Console
Per riavviare una VM che utilizza dischi criptati:
Nella console Google Cloud, vai alla pagina Istanze VM.
Seleziona la VM da riavviare.
Fai clic su
Avvia / Riprendi.Specifica le chiavi di crittografia per ciascuno dei dischi criptati collegati a questa VM, quindi fai clic su Avvia.
gcloud
Per riavviare una VM che utilizza dischi criptati, utilizza il comando gcloud compute instances start
con il flag --csek-key-file
. Se utilizzi una chiave con wrapping RSA, usa invece il comando gcloud beta compute instances start
.
gcloud compute instances start VM_NAME \
--csek-key-file=ENCRYPTION_KEY_FILE \
--project=PROJECT_ID \
--zone=ZONE
Sostituisci quanto segue:
VM_NAME
: il nome della VM.ENCRYPTION_KEY_FILE
: il percorso relativo al file JSON che contiene la chiave di crittografia fornita dal cliente.PROJECT_ID
: l'ID del progetto in cui si trova la VM.ZONE
: la zona in cui si trova la VM.
Go
Java
Node.js
PHP
Python
REST
Per riavviare una VM che utilizza dischi criptati, effettua una richiesta POST
al metodo 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"
}
}
]
}
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto in cui si trova la VM.ZONE
: la zona in cui si trova la VM.VM_NAME
: il nome della VM.DISK_URL
: l'URL risorsa corrispondente al nome completo della risorsa del disco collegato, criptato con una chiave di crittografia fornita dal cliente.ENCRYPTION_TYPE
: il tipo di crittografia del disco in uso, che può essererawKey
,kmsKeyName
orsaEncryptedKey
. Se utilizzi il tiporsaEncryptedKey
, devi inviare una richiestaPOST
all'API beta anziché all'API v1.ENCRYPTION_KEY
: la chiave di crittografia utilizzata per criptare i dischi permanenti collegati alla VM. Le chiavirawKey
orsaEncryptedKey
devono essere con codifica Base64. Inoltre, per preparare una chiaversaEncryptedKey
, consulta wrapping di chiavi RSA.
Reimposta una VM
Il ripristino di una VM in esecuzione è un po' come eseguire un riavvio forzato sul computer, ad esempio premendo un pulsante di reset o tenendo premuto il tasto di accensione. Quando reimposti una VM, non la concedi il tempo di eseguire un arresto pulito del sistema operativo guest. Di conseguenza, questo potrebbe danneggiare i file system del disco. Google Cloud consiglia di reimpostare una VM solo se il sistema operativo guest si è arrestato in modo anomalo e non sono disponibili altre opzioni. Se vuoi reinizializzare una VM ed eseguire un arresto pulito, consulta Riavviare una VM in questo documento.
Quando reimposti una VM, si verifica quanto segue:
La VM viene reinizializzata al suo stato di avvio iniziale con i metadati, l'immagine e i dischi permanenti originali.
La VM cancella forzatamente i contenuti della memoria della macchina, a meno che non venga eseguito il backup dei dati.
Lo stato della VM rimane
RUNNING
durante il processo.
La reimpostazione di una VM non modifica nessuna delle sue proprietà VM. La VM conserva i relativi IP temporanei, IP esterni statici, dischi permanenti, dischi SSD locali (se presenti) e tipo di macchina.
Console
Per reimpostare una o più VM in esecuzione:
Nella console Google Cloud, vai alla pagina Istanze VM.
Seleziona le VM da reimpostare.
Fai clic su Reimposta, poi di nuovo su Reimposta.
gcloud
Per reimpostare una VM in esecuzione, utilizza il comando gcloud compute instances reset
.
gcloud compute instances reset VM_NAME \
--project=PROJECT_ID \
--zone=ZONE
Sostituisci quanto segue:
VM_NAME
: il nome della VM.PROJECT_ID
: l'ID del progetto in cui si trova la VM.ZONE
: la zona in cui si trova la VM.
Go
Java
Node.js
PHP
Python
REST
Per reimpostare una VM in esecuzione, invia una richiesta POST
al metodo instances.reset
.
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/reset
Sostituisci quanto segue:
VM_NAME
: il nome della VM.PROJECT_ID
: l'ID del progetto in cui si trova la VM.ZONE
: la zona in cui si trova la VM.
Riavvia una VM
Quando riavvii una VM dall'interno del sistema operativo guest, si verifica quanto segue:
La VM viene reinizializzata al suo stato di avvio iniziale con i metadati, l'immagine e i dischi permanenti originali.
La VM cancella i contenuti della memoria della macchina, a meno che non venga eseguito il backup dei dati.
Lo stato della VM rimane
RUNNING
durante il processo.
Rispetto al ripristino di una VM, il riavvio di una VM dal sistema operativo guest attende che la VM completi tutte le attività in esecuzione prima di inviare l'indicatore di arresto ACPI alla VM. Ciò consente alla VM di eseguire un arresto pulito.
Il riavvio di una VM non modifica nessuna delle relative proprietà VM. La VM conserva i relativi IP temporanei, IP esterni statici, dischi permanenti, dischi SSD locali (se presenti) e tipo di macchina.
Linux
Per reimpostare una VM Linux, riavvia il sistema operativo guest eseguendo questo comando:
sudo reboot
Windows
Per reimpostare una VM Windows, riavvia il sistema operativo guest eseguendo questo comando:
shutdown /r /t 0
Facoltativamente, per monitorare il processo di arresto e riavvio della VM, abilita il menu Boot Manager di Windows.
Fatturazione
Dopo l'arresto di una VM e l'impostazione dello stato di Compute Engine su TERMINATED
, non ti verrà più addebitato alcun costo per l'utilizzo della CPU. Tuttavia, ti verranno addebitati eventuali costi per le risorse collegate alla VM, come i dischi permanenti e gli indirizzi IP esterni.
Per non incorrere più in addebiti per le risorse collegate a una VM, esegui una delle seguenti operazioni:
Scollega queste risorse dalla VM arrestata.
Elimina la VM. Questa azione elimina anche eventuali risorse collegate alla VM.
Passaggi successivi
Scopri come pianificare l'avvio e l'arresto automatici delle VM.
Scopri come limitare il runtime di una VM.
Scopri come risolvere i problemi di una VM dopo un arresto imprevisto eseguendo una delle seguenti operazioni:
Risolvi i problemi della VM utilizzando la console seriale interattiva.
Scopri come modificare il tipo di macchina in una VM.