Questo documento spiega come arrestare o riavviare manualmente un'istanza Compute Engine. In alternativa, per automatizzare l'arresto o il riavvio di un'istanza di computing, consulta quanto segue:
È possibile arrestare manualmente un'istanza di computing. Al termine di un'operazione di arresto e quando lo stato dell'istanza di computing passa a TERMINATED, puoi riavviare l'istanza di computing per riprendere il workload o eliminarla definitivamente se non ne hai più bisogno. L'arresto manuale di un'istanza di computing è utile quando vuoi:
Risparmia sui costi mantenendo le configurazioni: non vuoi più eseguire workload sull'istanza di computing. Tuttavia, vuoi conservare l'istanza di computing e i dischi, le impostazioni di configurazione, gli indirizzi IP, gli indirizzi MAC e i metadati collegati. Se devi anche conservare i dati in memoria e lo stato dell'applicazione, sospendi l'istanza di computing.
Aggiorna le proprietà: vuoi modificare una o più proprietà che richiedono l'arresto e il riavvio dell'istanza di computing prima che le modifiche possano avere effetto, ad esempio vuoi modificare il tipo di macchina o scollegare un disco. Per saperne di più, consulta Proprietà che puoi aggiornare.
Limitazioni
Quando arresti un'istanza di computing, si applicano le seguenti limitazioni:
Puoi arrestare o riavviare un'istanza di computing solo se lo stato dell'istanza di computing lo consente.
Puoi riavviare un'istanza di computing solo se sono presenti risorse sufficienti nella zona in cui si trova l'istanza di computing.
Non puoi riavviare le istanze di computing TPU. Dopo aver arrestato le istanze di computing TPU, puoi solo eliminarle.
Prima di iniziare
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione verifica la tua identità per l'accesso ad API e servizi Google Cloud . Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:
Seleziona la scheda in base a come prevedi di utilizzare gli esempi in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi e alle API Google Cloud , non devi configurare l'autenticazione.
gcloud
-
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:
gcloud initSe utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
- Imposta una regione e una zona predefinite.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea le credenziali di autenticazione locale per il tuo account utente:
gcloud auth application-default login
Non è necessario farlo se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver eseguito l'accesso a gcloud CLI con la tua identità federata.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea le credenziali di autenticazione locale per il tuo account utente:
gcloud auth application-default login
Non è necessario farlo se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver eseguito l'accesso a gcloud CLI con la tua identità federata.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea le credenziali di autenticazione locale per il tuo account utente:
gcloud auth application-default login
Non è necessario farlo se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver eseguito l'accesso a gcloud CLI con la tua identità federata.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea le credenziali di autenticazione locale per il tuo account utente:
gcloud auth application-default login
Non è necessario farlo se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver eseguito l'accesso a gcloud CLI con la tua identità federata.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea le credenziali di autenticazione locale per il tuo account utente:
gcloud auth application-default login
Non è necessario farlo se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver eseguito l'accesso a gcloud CLI con la tua identità federata.
Vai
Per utilizzare gli esempi di Go in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per utilizzare gli esempi di Java in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per utilizzare gli esempi di Node.js in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per utilizzare gli esempi PHP in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per utilizzare gli esempi di Python in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per saperne di più, 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, utilizzi le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI.
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Google Cloud .
Ruoli obbligatori
Per ottenere le autorizzazioni
necessarie per arrestare o riavviare un'istanza di computing,
chiedi all'amministratore di concederti il ruolo IAM
Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) nel progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene le autorizzazioni necessarie per arrestare o riavviare un'istanza di computing. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per arrestare o riavviare un'istanza di computing sono necessarie le seguenti autorizzazioni:
-
Per arrestare un'istanza di computing:
compute.instances.stopsull'istanza di computing -
Per arrestare un'istanza di computing dal sistema operativo guest:
compute.instances.setMetadatasull'istanza di computing se utilizza chiavi SSH pubbliche a livello di istanza. -
Per riavviare un'istanza di computing:
compute.instances.startsull'istanza di computing -
Per riavviare un'istanza di computing che utilizza le chiavi di crittografia:
compute.instances.startWithEncryptionKeysull'istanza di computing
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Arresta un'istanza di computing
Per arrestare l'istanza di computing, utilizza uno dei seguenti metodi. L'approccio migliore per il tuo caso d'uso dipende dalla presenza o meno di dischi SSD locali collegati all'istanza di computing e da come vuoi gestire eventuali script di arresto:
Arresta un'istanza di computing da Google Cloud. Puoi arrestare contemporaneamente una o più istanze di computing da Google Cloud. Se alle istanze di computing sono collegati dischi SSD locali, puoi scegliere se eliminare o conservare (anteprima) i dati dell'SSD locale. L'esecuzione di eventuali script di arresto nell'istanza di computing deve terminare prima che l'istanza di computing venga arrestata. Per istruzioni, consulta uno dei seguenti articoli:
Arresta un'istanza di computing dal sistema operativo guest. Questo approccio garantisce che l'esecuzione degli script di arresto termini prima dell'arresto dell'istanza di computing. Se hai attivato l'arresto normale, puoi saltarlo o terminarlo. Tuttavia, l'arresto di un'istanza di computing dal sistema operativo guest comporta l'eliminazione dei dati su tutti i dischi SSD locali collegati, a meno che non esegua prima il backup dei dati in un'archiviazione durevole. Per le istruzioni, vedi Arresta un'istanza di computing dal sistema operativo guest.
Arresta un'istanza di computing senza dischi SSD locali
Per arrestare un'istanza di computing senza dischi SSD locali collegati, esamina le seguenti opzioni:
Se hai attivato l'arresto normale nell'istanza di computing, puoi risparmiare sui costi saltando o terminando un arresto normale in corso. Per farlo, utilizza la console Google Cloud , gcloud CLI o l'API REST.
Per arrestare più istanze di computing contemporaneamente, utilizza la consoleGoogle Cloud o, per le istanze di computing che si trovano nella stessa zona, gcloud CLI.
Per arrestare una o più istanze di computing, seleziona una delle seguenti opzioni:
Console
Nella console Google Cloud , vai alla pagina Istanze VM.
Seleziona le istanze di computing in esecuzione da arrestare.
Fai clic su Arresta. Se non è presente l'opzione Arresta, fai clic su Altre azioni e seleziona Arresta.
Nella finestra di dialogo visualizzata, procedi nel seguente modo:
(Facoltativo) Per arrestare le istanze di computing senza ricorrere all'arresto normale o terminare un arresto normale in corso, seleziona la casella di controllo Salta arresto normale (se applicabile).
Per confermare, fai clic su Arresta.
gcloud
Per arrestare una o più istanze di computing che si trovano nella stessa zona, utilizza il
comando gcloud compute instances stop:
gcloud compute instances stop INSTANCE_NAMES \
--zone=ZONE
Sostituisci quanto segue:
INSTANCE_NAMES: un elenco di nomi di istanze di computing che vuoi arrestare, separati da spazi. Ad esempio, specificainstance-01 instance-02 instance-03.ZONE: la zona in cui si trovano le istanze di computing.
Se vuoi saltare o terminare un arresto normale in corso, utilizza lo stesso comando con il flag --no-graceful-shutdown:
gcloud compute instances stop INSTANCE_NAMES \
--no-graceful-shutdown \
--zone=ZONE
Vai
Java
Node.js
PHP
Python
REST
Per arrestare un'istanza di computing, effettua una richiesta POST al
metodo instances.stop:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/stop
Sostituisci quanto segue:
INSTANCE_NAME: il nome dell'istanza di computing.PROJECT_ID: l'ID del progetto in cui si trova l'istanza di computing.ZONE: la zona in cui si trova l'istanza di computing.
Se vuoi saltare o terminare un arresto normale in corso, includi il parametro di query noGracefulShutdown=true nell'URL della richiesta:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop?noGracefulShutdown=true
Arresta un'istanza di computing con dischi SSD locali
Il metodo migliore per arrestare un'istanza di computing con dischi SSD locali collegati dipende dal caso d'uso. Utilizza una delle seguenti opzioni:
Se hai attivato l'arresto normale in un'istanza di computing, puoi risparmiare sui costi saltando o terminando un arresto normale in corso. Per farlo, utilizza la console Google Cloud , gcloud CLI o l'API REST.
Per conservare i dati dell'SSD locale (esclusi i tipi di macchine che utilizzano Titanium SSD), utilizza gcloud CLI o l'API REST.
Per arrestare più istanze di computing contemporaneamente, utilizza la consoleGoogle Cloud o, per le istanze di computing che si trovano nella stessa zona, gcloud CLI.
Per arrestare una o più istanze di computing con dischi SSD locali collegati, seleziona una delle seguenti opzioni:
Console
Nella console Google Cloud , vai alla pagina Istanze VM.
Seleziona le istanze di computing in esecuzione da arrestare.
Fai clic su Arresta. Se non è presente l'opzione Arresta, fai clic su Altre azioni e seleziona Arresta.
Nella finestra di dialogo visualizzata, procedi nel seguente modo:
(Facoltativo) Per arrestare le istanze di computing senza ricorrere all'arresto normale o terminare un arresto normale in corso, seleziona la casella di controllo Salta arresto normale (se applicabile).
Per confermare, fai clic su Arresta.
gcloud
Quando arresti una o più istanze di computing nella stessa zona con dischi SSD locali collegati, specifica se desideri eliminare o conservare i dati dell'SSD locale come segue:
Per eliminare i dati dell'SSD locale, utilizza il comando
gcloud compute instances stopcon il flag--discard-local-ssd=true:gcloud compute instances stop INSTANCE_NAMES \ --discard-local-ssd=true \ --zone=ZONEPer conservare i dati dell'SSD locale, utilizza il comando
gcloud beta compute instances stopcon il flag--discard-local-ssd=false:gcloud beta compute instances stop INSTANCE_NAMES \ --discard-local-ssd=false \ --zone=ZONE
Sostituisci quanto segue:
INSTANCE_NAMES: un elenco di nomi di istanze di computing che vuoi arrestare, separati da spazi. Ad esempio, specificainstance-01 instance-02 instance-03.ZONE: la zona in cui si trovano le istanze di computing.
Se vuoi saltare o terminare un arresto normale in corso, includi il
flag --no-graceful-shutdown nel comando:
gcloud compute instances stop INSTANCE_NAMES \
--discard-local-ssd=DISCARD_LOCAL_SSD \
--no-graceful-shutdown \
--zone=ZONE
Sostituisci DISCARD_LOCAL_SSD con true per eliminare i dati
nei dischi SSD locali o con false per conservarli. Se specifichi false, devi utilizzare il comando gcloud beta compute instances stop.
REST
Quando arresti una o più istanze di computing nella stessa zona con dischi SSD locali collegati, specifica se desideri eliminare o conservare i dati dell'SSD locale come segue:
Per eliminare i dati dell'SSD locale, effettua una richiesta
POSTal metodoinstances.stop. Nell'URL della richiesta, includi il parametro di querydiscardLocalSsdimpostato sutrue:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/stop?discardLocalSsd=truePer conservare i dati dell'SSD locale, invia una richiesta
POSTal metodobeta.instances.stop. Nell'URL della richiesta, includi il parametro di querydiscardLocalSsdimpostato sufalse:POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/stop?discardLocalSsd=false
Sostituisci quanto segue:
PROJECT_ID: l'ID del progetto in cui si trova l'istanza di computing.ZONE: la zona in cui si trova l'istanza di computing.INSTANCE_NAME: il nome dell'istanza di computing.
Se vuoi saltare o terminare un arresto normale in corso, includi il parametro di query noGracefulShutdown=true nell'URL della richiesta:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop?discardLocalSsd=DISCARD_LOCAL_SSD&noGracefulShutdown=true
Sostituisci DISCARD_LOCAL_SSD con true per eliminare i dati
nei dischi SSD locali o con false per conservarli. Se specifichi
false, devi inviare una richiesta POST al
metodo beta.instances.stop.
Arresta un'istanza di computing dal sistema operativo guest
Se a un'istanza di computing sono collegati dischi SSD locali, l'arresto del sistema operativo guest comporta l'eliminazione automatica dei dati dell'SSD locale. Per conservarli, copiali manualmente in una soluzione di archiviazione permanente prima di arrestare l'istanza di computing.
Per arrestare un'istanza di computing dal sistema operativo guest, seleziona una delle seguenti opzioni:
Linux
Se non l'hai ancora fatto, connettiti all'istanza di computing.
Per arrestare l'istanza di computing dal sistema operativo guest, seleziona uno dei seguenti metodi:
Per arrestare correttamente il sistema operativo guest solo dopo che tutti gli script di arresto hanno terminato l'esecuzione, esegui il seguente comando:
sudo shutdown -h nowPer forzare l'arresto del sistema operativo guest, esegui il seguente comando:
sudo poweroff
Windows
Se non l'hai già fatto, connettiti all'istanza di computing utilizzando uno dei seguenti metodi:
Per arrestare l'istanza di computing dal sistema operativo guest, seleziona uno dei seguenti metodi:
Per arrestare correttamente il sistema operativo guest solo dopo che tutti gli script di arresto hanno terminato l'esecuzione, esegui il seguente comando:
shutdown /sPer forzare l'arresto del sistema operativo guest, esegui il seguente comando:
shutdown /f
Riavvia un'istanza di computing
Puoi riavviare un'istanza di computing che è stata completamente arrestata, vale a dire quando
lo stato dell'istanza di computing è TERMINATED. Se hai scelto di conservare i dati dell'SSD locale quando hai arrestato l'istanza di computing, potresti dover rimontare i dischi SSD locali dopo aver riavviato l'istanza di computing. Per ulteriori informazioni, consulta Formatta e monta un dispositivo SSD locale.
Per riavviare un'istanza di computing, utilizza uno dei seguenti metodi. Il metodo migliore per il tuo caso d'uso dipende dal fatto che l'istanza di computing abbia dischi criptati con chiavi di crittografia fornite dal cliente (CSEK):
Riavviare un'istanza di computing che non dispone di dischi crittografati con CSEK
Riavvia un'istanza di computing con dischi criptati con CSEK
Riavvia un'istanza di computing senza dischi criptati con CSEK
Per riavviare più istanze di computing contemporaneamente in zone diverse, utilizza la console Google Cloud . Per le istanze di computing che si trovano nella stessa zona, puoi utilizzare gcloud CLI. Altrimenti, per altri scenari di riavvio, seleziona una delle seguenti opzioni:
Console
Nella console Google Cloud , vai alla pagina Istanze VM.
Seleziona le istanze di computing che vuoi riavviare.
Fai clic su Avvia/Riprendi.
gcloud
Per riavviare una o più istanze di computing che si trovano nella stessa zona, utilizza il
comando gcloud compute instances start:
gcloud compute instances start INSTANCE_NAMES \
--zone=ZONE
Sostituisci quanto segue:
INSTANCE_NAMES: un elenco di nomi di istanze di computing che vuoi riavviare, separati da spazi. Ad esempio, specificainstance-01 instance-02 instance-03.ZONE: la zona in cui si trovano le istanze di computing.
Vai
Java
Node.js
PHP
Python
REST
Per riavviare un'istanza di computing, effettua una richiesta POST al
metodo instances.start:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/start
Sostituisci quanto segue:
INSTANCE_NAME: il nome dell'istanza di computing.PROJECT_ID: l'ID del progetto in cui si trova l'istanza di computing.ZONE: la zona in cui si trova l'istanza di computing.
Riavvia un'istanza di computing con dischi criptati con CSEK
Quando riavvii un'istanza di computing arrestata collegata a dischi criptati tramite chiavi di crittografia fornite dal cliente, devi fornire le informazioni sulle chiavi di crittografia.
Per riavviare più istanze di computing contemporaneamente in zone diverse, utilizza la console Google Cloud . Per le istanze di computing che si trovano nella stessa zona, puoi utilizzare gcloud CLI. Altrimenti, per altri scenari di riavvio, seleziona una delle seguenti opzioni:
Console
Nella console Google Cloud , vai alla pagina Istanze VM.
Seleziona le istanze di computing che vuoi riavviare.
Fai clic su Avvia/Riprendi.
Nella finestra di dialogo visualizzata, procedi nel seguente modo:
Specifica le chiavi di crittografia per ciascuno dei dischi criptati collegati alle istanze di computing.
Fai clic su Avvia.
gcloud
Per riavviare una o più istanze di computing che utilizzano dischi criptati esistenti
nella stessa zona, utilizza il
comando gcloud compute instances start
con il flag --csek-key-file. Se invece utilizzi una chiave con wrapping RSA, utilizza il
comando gcloud beta compute instances start
con il flag --csek-key-file:
gcloud compute instances start INSTANCE_NAMES \
--csek-key-file=ENCRYPTION_KEY_FILE \
--zone=ZONE
Sostituisci quanto segue:
INSTANCE_NAMES: un elenco di nomi di istanze di computing che vuoi riavviare, separati da spazi. Ad esempio, specificainstance-01 instance-02 instance-03.ENCRYPTION_KEY_FILE: il percorso relativo al file JSON contenente la chiave di crittografia fornita dal cliente. Puoi riavviare più istanze di computing contemporaneamente solo se le istanze utilizzano la stessa chiave di crittografia fornita dal cliente. Il formato del file è descritto in Formato file chiave.ZONE: la zona in cui si trovano le istanze di computing.
Vai
Java
Node.js
PHP
Python
REST
Per riavviare un'istanza di computing che utilizza dischi criptati, invia una richiesta POST
al
metodo instances.startWithEncryptionKey:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/startWithEncryptionKey
{
"disks": [
{
"source": "DISK_URL",
"diskEncryptionKey": {
"ENCRYPTION_TYPE": "ENCRYPTION_KEY"
}
}
]
}
Sostituisci quanto segue:
PROJECT_ID: l'ID del progetto in cui si trova l'istanza di computing.ZONE: la zona in cui si trova l'istanza di computing.INSTANCE_NAME: il nome dell'istanza di computing.DISK_URL: l'URL della risorsa corrispondente al nome completo della risorsa del disco collegato, che è stato criptato con una chiave di crittografia fornita dal cliente.ENCRYPTION_TYPE: il tipo di crittografia del disco che utilizzi, che può essere uno dei seguenti:rawKey,kmsKeyNameorsaEncryptedKey. Se utilizzi il tiporsaEncryptedKey, invia una richiestaPOSTal metodobeta.instances.startWithEncryptionKey.ENCRYPTION_KEY: la chiave di crittografia utilizzata per criptare i Persistent Disk collegati all'istanza di computing. Le chiavirawKeyorsaEncryptedKeydevono essere codificate in Base64. Inoltre, per preparare una chiaversaEncryptedKey, consulta Wrapping delle chiavi RSA.
Passaggi successivi
Risolvi i problemi di arresto e riavvio delle istanze di computing
Risolvi i problemi relativi all'istanza di computing utilizzando la console seriale