La configurazione dei dischi permanenti come stateful ti consente di usufruire della riparazione automatica delle istanze VM e degli aggiornamenti automatici, preservando al contempo lo stato dei dischi.
Puoi configurare qualsiasi disco definito nel modello di istanza in modo che sia stateful per tutte le istanze di un gruppo di istanze gestite aggiungendo il nome del dispositivo del disco al criterio stateful del gruppo di istanze gestite.
Puoi anche configurare i dischi permanenti stateful singolarmente per le istanze in un MIG impostando le configurazioni per istanza. Questi dischi non devono essere definiti nel modello di istanza.
Prima di iniziare
- Scopri quando utilizzare i gruppi di istanze gestite stateful e come funzionano.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:
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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Non puoi utilizzare la scalabilità automatica se il gruppo di istanze gestite ha una configurazione stateful.
- Se vuoi utilizzare gli aggiornamenti incrementali automatici, devi impostare il metodo di sostituzione su
RECREATE
. - Per i gruppi di istanze gestite regionali stateful, devi
disattivare la ridistribuzione proattiva
(imposta il tipo di ridistribuzione su
NONE
) per impedire l'eliminazione delle istanze stateful tramite la ridistribuzione automatica tra zone. Se utilizzi una configurazione per tutte le istanze per eseguire l'override delle proprietà del modello di istanza, non puoi specificarle in nessuna configurazione per istanza e contemporaneamente nella configurazione per tutte le istanze del gruppo.
Un gruppo di istanze gestite regionale stateful non orchestra automaticamente il failover tra zone. Quando utilizzi un gruppo di istanze gestite regionale, puoi rendere la tua applicazione con stato resiliente ai guasti zonali implementando repliche ridondanti in più zone e facendo affidamento sulla funzionalità di replica dei dati dell'applicazione.
- Puoi riparare un disco di avvio danneggiato ricreandolo dall'immagine originale. La riparazione automatica esegue queste riparazioni automaticamente.
- Puoi aggiornare un disco di avvio all'immagine più recente con nuove versioni e patch di sicurezza.
Nella console Google Cloud, vai alla pagina Gruppi di istanze.
Seleziona il progetto e fai clic su Continua.
Fai clic su Crea gruppo di istanze.
Seleziona Nuovo gruppo di istanze gestite (stateful).
Specifica un Nome per il gruppo di istanze.
Seleziona un modello di istanza. Se non sono disponibili modelli, crea un modello di istanza.
In Numero di istanze, specifica il numero di istanze per il gruppo di istanze.
La sezione Configurazione stateful mostra i dischi specificati nel modello di istanza. Fai clic su un disco per modificarne la configurazione con stato.
- In Stateful, seleziona Sì.
Dal menu a discesa Con l'eliminazione definitiva dell'istanza, seleziona l'azione da eseguire sul disco stateful quando viene eliminata l'istanza VM. Le opzioni disponibili sono:
- Scollega disco (impostazione predefinita). Non eliminare mai il disco, scollegalo quando viene eliminata la VM.
- Elimina disco: elimina il disco con stato quando la relativa VM viene eliminata definitivamente dal gruppo di istanze, ad esempio quando l'istanza gestita viene eliminata manualmente o quando la dimensione del gruppo viene ridotta.
Al termine della configurazione con stato, fai clic su Fine.
Fai clic su Crea.
INSTANCE_GROUP_NAME
: il nome del gruppo di istanze gestite da creare.INSTANCE_TEMPLATE
: il nome del modello di istanza da utilizzare per la creazione delle istanze.SIZE
: il numero iniziale di VM necessarie in questo gruppo.DEVICE_NAME
: il nome del dispositivo di un disco specificato nel modello di istanza.DELETE_RULE
: un valore che prescrive cosa deve succedere a un disco con stato quando viene eliminata una VM. Le opzioni disponibili sono:never
: (valore predefinito). Non eliminare mai il disco, ma scollegalo quando viene eliminata la VM.on-permanent-instance-deletion
: elimina il disco quando la relativa istanza VM viene eliminata definitivamente dal gruppo di istanze, ad esempio quando l'istanza gestita viene eliminata manualmente o quando la dimensione del gruppo viene ridotta.
Indipendentemente dal valore della regola di eliminazione, i dischi stateful vengono sempre conservati nelle operazioni di riparazione automatica, aggiornamento e ricreazione delle VM.
Crea un modello di istanza con un disco di avvio stateless basato sull'immagine
img-example-db-v01
, che ha un sistema operativo e un database preinstallati, e con un disco di dati stateful:gcloud compute instance-templates create example-database-template-v01 \ --image img-example-db-v01 \ --create-disk device-name=data-disk,mode=rw,image=empty10GBext4
Il flag
--create-disk
indica al gruppo di istanze gestite di:- Crea un nuovo disco da 10 GB per ogni istanza VM da un'immagine ext4 vuota preparata in precedenza.
- Collega il disco alla VM in modalità di lettura/scrittura utilizzando il nome del dispositivo
data-disk
.
Crea un gruppo di istanze gestite dal modello di istanza e definisci il disco di dati come stateful:
gcloud compute instance-groups managed create example-database-group \ --template example-database-template-v01 \ --base-instance-name shard \ --size 12 \ --stateful-disk device-name=data-disk,auto-delete=on-permanent-instance-deletion
Il nome del dispositivo
data-disk
viene preso dal modello di istanza. Il disco dati è configurato per essere eliminato insieme all'istanza VM quando la VM viene eliminata definitivamente (a causa dell'eliminazione manuale dell'istanza o della diminuzione manuale della dimensione del gruppo). Il disco dati viene conservato durante la riparazione automatica, gli aggiornamenti e la ricreazione delle VM.Verifica che il disco dati sia configurato nel criterio con stato:
gcloud compute instance-groups managed describe example-database-group baseInstanceName: shard ... name: example-database-group ... statefulPolicy: preservedState: disks: data-disk: autoDelete: ON_PERMANENT_INSTANCE_DELETION ...
Puoi vedere che il criterio stateful dichiara i dischi con il nome del dispositivo
data-disk
come stateful, con una regola per eliminarli al momento dell'eliminazione definitiva della VM.PROJECT
: l'ID progetto per la richiesta.ZONE
: la zona in cui si trova il gruppo di istanze gestite (si applica a un gruppo di istanze gestite a livello di zona).- Per un gruppo di istanze gestite a livello di regione, sostituisci
zones/ZONE
conregions/REGION
e specifica la regione del gruppo di istanze gestite.
- Per un gruppo di istanze gestite a livello di regione, sostituisci
NAME
: il nome del gruppo di istanze gestite da creare.TEMPLATE
: il nome del modello di istanza da utilizzare per la creazione delle istanze.SIZE
: il numero iniziale di istanze necessarie in questo gruppo.DEVICE_NAME
: il nome del dispositivo di un disco specificato nel modello di istanza.DELETE_RULE
: un valore che prescrive cosa deve accadere al disco con stato quando viene eliminata l'istanza VM. Le opzioni disponibili sono:never
: (valore predefinito). Non eliminare mai il disco, scollegalo quando viene eliminata la VM.on_permanent_instance_deletion
: elimina il disco con stato quando la VM viene eliminata definitivamente dal gruppo di istanze, ad esempio quando l'istanza gestita viene eliminata manualmente o quando la dimensione del gruppo viene ridotta.
Crea un modello di istanza con un disco di avvio stateless basato sull'immagine
img-example-db-v01
, con sistema operativo e database preinstallati e con un disco dati stateful utilizzando il metodoinstanceTemplates.insert
:POST https://compute.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates { "name": "example-database-template-v01", "properties": { "machineType":"e2-standard-2", "disks": [ { "boot": true, "deviceName": "boot-disk", "initializeParams": { "sourceImage": "projects/example-project/global/images/mg-example-db-v01" } }, { "deviceName": "data-disk", "mode": "READ_WRITE", "initializeParams": { "sourceImage": "projects/example-project/global/images/empty10GBext4" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ] } }
Il disco dati nel modello di istanza ha il nome del dispositivo
data-disk
ed è configurato per essere creato da un'immagine ext4 vuota, preparata in precedenza, e per essere collegato in modalità di lettura/scrittura.Crea un gruppo di istanze gestite dal modello di istanza e definisci il disco dati come stateful utilizzando il metodo
instanceGroupManagers.insert
:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers { "name": "example-database-group", "baseInstanceName": "shard", "versions": [ { "instanceTemplate": "global/instanceTemplates/example-database-template-v01" } ], "targetSize": 12, "statefulPolicy": { "preservedState": { "disks": { "data-disk": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" } } } } }
Il gruppo di istanze gestite crea 12 istanze, ciascuna con un disco con le seguenti proprietà:
- Un nome del dispositivo,
data-disk
, preso dal modello di istanza. - Una regola di eliminazione per eliminare il disco dati quando viene eliminata la VM (a causa dell'eliminazione manuale dell'istanza o della diminuzione manuale della dimensione del gruppo).
- Una voce nello stato conservato dal criterio
(
preservedStateFromPolicy
) di ogni istanza gestita in modo che il disco di dati venga conservato in caso di riparazione automatica, aggiornamenti e ricreazione delle istanze.
- Un nome del dispositivo,
Utilizza il metodo
instanceGroupManagers.get
per verificare che il disco dati sia configurato nel criterio stateful della nuova risorsainstanceGroupManagers
:GET https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-group
{ "name": "example-database-group", "baseInstanceName": "shard", ... "statefulPolicy": { "preservedState": { "disks": { "data-disk": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" } } } } ... }
Puoi vedere che il criterio stateful dichiara i dischi con il nome del dispositivo
data-disk
come stateful con la regola per eliminarli al momento dell'eliminazione permanente dell'istanza.- Aggiungi i dischi definiti nel modello di istanza al criterio stateful di un MIG esistente per dichiararli stateful. In questo modo, i dischi con il nome del dispositivo specificato vengono contrassegnati come con stato per tutte le istanze esistenti e future nel gruppo di istanze gestite.
- Aggiorna il criterio stateful per modificare la configurazione stateful per i dischi.
Nella console Google Cloud, vai alla pagina Gruppi di istanze.
Fai clic sul nome del gruppo di istanze in cui vuoi specificare la configurazione stateful per il disco.
Fai clic su Modifica per modificare il gruppo di istanze gestite.
In Configurazione stateful, espandi il disco che vuoi fare stateful.
- In Stateful, seleziona Sì.
Dal menu a discesa Con l'eliminazione definitiva dell'istanza, seleziona l'azione da eseguire sul disco stateful quando viene eliminata l'istanza VM.
- Scollega disco (impostazione predefinita). Non eliminare mai il disco, scollegalo quando viene eliminata la VM.
Elimina disco: elimina il disco con stato quando la relativa VM viene eliminata definitivamente dal gruppo di istanze, ad esempio quando l'istanza gestita viene eliminata manualmente o quando la dimensione del gruppo viene ridotta.
Dopo aver aggiornato la configurazione con stato, fai clic su Fine.
Fai clic su Salva per completare l'aggiornamento.
NAME
: il nome del gruppo di istanze gestite da aggiornare.DEVICE_NAME
: il nome del dispositivo di un disco specificato nel modello di istanza.DELETE_RULE
: un valore che prescrive cosa deve accadere al disco con stato quando viene eliminata un'istanza VM. Le opzioni disponibili sono:never
: (valore predefinito). Non eliminare mai il disco, scollegalo quando viene eliminata la relativa istanza.on-permanent-instance-deletion
: elimina il disco con stato quando la relativa istanza viene eliminata definitivamente dal gruppo di istanze, ad esempio quando l'istanza gestita viene eliminata manualmente o quando la dimensione del gruppo viene ridotta.
Aggiorna il gruppo di istanze gestite per definire il disco dati come stateful utilizzando il seguente comando:
gcloud compute instance-groups managed update example-database-group \ --stateful-disk device-name=data-disk,auto-delete=never
Di conseguenza, il gruppo di istanze gestite applica gli aggiornamenti della configurazione dei criteri stateful automaticamente e in modo asincrono ai dischi di dati di tutte le istanze. Ora i dischi dati vengono conservati durante la riparazione automatica, gli aggiornamenti e la ricreazione delle istanze e vengono scollegati durante l'eliminazione delle istanze perché la regola
auto-delete
è impostata sunever
.Verifica che il disco dati sia configurato nel criterio stateful eseguendo il comando
gcloud compute instance-groups managed describe example-database-group
.PROJECT
: l'ID progetto per la richiesta.ZONE
: la zona in cui si trova il gruppo di istanze gestite (si applica a un gruppo di istanze gestite a livello di zona).- Per un gruppo di istanze gestite a livello di regione, sostituisci
zones/ZONE
conregions/REGION
e specifica la regione del gruppo di istanze gestite.
- Per un gruppo di istanze gestite a livello di regione, sostituisci
NAME
: il nome del gruppo di istanze gestite da actualizare.DEVICE_NAME
: il nome del dispositivo di un disco, specificato nel modello di istanza, per il quale vuoi aggiornare la configurazione con stato.DELETE_RULE
: un valore che prescrive cosa deve accadere al disco con stato quando viene eliminata un'istanza VM. Le opzioni disponibili sono:never
: (valore predefinito). Non eliminare mai il disco, scollegalo quando viene eliminata la relativa istanza.on-permanent-instance-deletion
: elimina il disco stateful quando la relativa istanza viene eliminata definitivamente dal gruppo di istanze, ad esempio quando l'istanza viene eliminata manualmente o quando la dimensione del gruppo viene ridotta.
Esegui il patching del gruppo di istanze gestite per definire il disco dati come stateful:
PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-group { "statefulPolicy": { "preservedState": { "disks": { "data-disk": {"autoDelete": "NEVER" } } } } }
Il gruppo di istanze gestite applica questa configurazione con stato automaticamente e asincrono ai dischi di dati di tutte le istanze. I dischi di dati verranno conservati durante la riparazione automatica, gli aggiornamenti e la ricreazione delle istanze. I dischi di dati verranno scollegati all'eliminazione dell'istanza perché la regola
autoDelete
è impostata suNEVER
.Verifica che il disco di dati sia configurato nel criterio stateful visualizzando la risorsa
instanceGroupManagers
, restituita dal metodoinstanceGroupManagers.get
.- Se riarchitetti l'app per spostare lo stato dal disco.
- Se hai configurato il disco come stateful per errore e vuoi ripristinarlo.
Nella console Google Cloud, vai alla pagina Gruppi di istanze.
Fai clic sul nome del gruppo di istanze da cui vuoi rimuovere la configurazione con stato per i dischi.
Fai clic su Modifica per modificare il gruppo di istanze gestite.
In Configurazione stateful, espandi i dischi stateful che vuoi rendere stateless.
- Imposta l'opzione Stateful su No.
- Fai clic su Fine.
Dopo aver apportato le modifiche, fai clic su Salva.
NAME
: il nome del gruppo di istanze gestite da actualizare.DEVICE_NAME
: il nome del dispositivo di un disco da rimuovere dal criterio con stato e da trattare come senza stato. Puoi fornire uno o più nomi di dispositivi nell'elenco.PROJECT
: l'ID progetto per la richiesta.ZONE
: la zona in cui si trova il gruppo di istanze gestite (si applica a un gruppo di istanze gestite a livello di zona).- Per un gruppo di istanze gestite a livello di regione, sostituisci
zones/ZONE
conregions/REGION
e specifica la regione del gruppo di istanze gestite.
- Per un gruppo di istanze gestite a livello di regione, sostituisci
NAME
: il nome del gruppo di istanze gestite da actualizare.DEVICE_NAME
: il nome del dispositivo di un disco che vuoi rimuovere dal criterio con stato. Se fornisci un valorenull
, la configurazione stateful per il disco viene rimossa. Puoi fornire uno o più nomi di dispositivi da rimuovere.- Rimuovi la configurazione stateful del disco dal criterio stateful. In questo modo, i dischi con il nome del dispositivo specificato non hanno stato.
- Scollega i dischi dalle VM se vuoi comunque conservarli.
- Implementa un nuovo modello di istanza che non definisce più il disco con il nome del dispositivo specificato.
- Esegui la migrazione dei carichi di lavoro esistenti (importa i dischi esistenti) dalle VM autonome ai gruppi di istanze gestite stateful per usufruire della riparazione automatica e di aggiornamenti semplici.
- Ripristina i backup dei dischi, configurati singolarmente per le VM.
- Collega temporaneamente altri dischi con stato a una VM specifica per testare, eseguire il debug o copiare i dati.
- Crea un modello di istanza con una configurazione comune per tutte le istanze VM.
- Scollega i dischi di dati dalle istanze autonome ed eliminale. Puoi anche sganciare i dischi di avvio se contengono uno stato che deve essere preservato.
- Crea un gruppo di istanze gestite vuoto utilizzando il modello di istanza creato in precedenza.
Crea istanze nel gruppo di istanze gestite con i nomi appropriati e i dischi associati del passaggio precedente. Il MIG risponde alla tua richiesta con le seguenti azioni:
- Crea una VM dal modello di istanza utilizzando il nome dell'istanza fornito.
- Un gruppo di istanze gestite a livello di regione crea la VM nella stessa zona in cui si trova il disco. Se il disco è regionale, il gruppo di istanze gestite regionale crea la VM in una delle zone di replica del disco.
- Crea una configurazione per istanza con la configurazione stateful fornita per i dischi.
- Collega i dischi alla nuova istanza.
- Crea una VM dal modello di istanza utilizzando il nome dell'istanza fornito.
NAME
: il nome del gruppo di istanze gestite in cui devi creare un'istanza.VM_NAME
: il nome della nuova istanza da creare.ZONE
: la zona in cui si trova il gruppo di istanze gestite (si applica a un gruppo di istanze gestite a livello di zona).REGION
: la regione in cui si trova il gruppo di istanze gestite (si applica a un gruppo di istanze gestite a livello di regione).DEVICE_NAME
: il nome del dispositivo da utilizzare quando colleghi il disco.DISK
: l'URI di un disco permanente esistente da collegare alDEVICE_NAME
specificato nel formatoprojects/project-id/zones/zone/disks/disk-name
per un disco a livello di zona eprojects/project-id/regions/region/disks/disk-name
per un disco a livello di area geografica.MODE
: specifica la modalità del disco. Le opzioni supportate sono:ro
: di sola lettura.rw
: (valore predefinito). Lettura/scrittura.
DELETE_RULE
: un valore che prescrive cosa deve accadere a un disco con stato quando viene eliminata un'istanza VM. Le opzioni disponibili sono:never
: (valore predefinito). Non eliminare mai il disco, ma scollegalo quando viene eliminata l'istanza.on-permanent-instance-deletion
: elimina il disco stateful quando la relativa istanza viene eliminata definitivamente dal gruppo di istanze, ad esempio quando l'istanza viene eliminata manualmente o quando la dimensione del gruppo viene ridotta.
Indipendentemente dal valore della regola di eliminazione, i dischi stateful vengono sempre conservati nelle operazioni di riparazione automatica, aggiornamento e ricreazione delle istanze.
- Arresta la VM
db-instance
durante un periodo di manutenzione. - Crea un modello di istanza
denominato
db-template
utilizzando la configurazionedb-instance
. - Scollega
db-data-disk-1
dadb-instance
ed eliminadb-instance
. - Crea un gruppo di istanze gestite vuoto,
example-database-mig
, dadb-template
e configura la riparazione automatica. Crea un'istanza gestita con il nome
db-instance
originale e collegadb-data-disk-1
come disco con stato:gcloud compute instance-groups managed create-instance example-database-mig \ --instance db-instance \ --zone us-east1-c \ --stateful-disk device-name=data-disk,source=projects/example-project/zones/us-east1-c/disks/db-data-disk-1,auto-delete=never
Il comando crea un'istanza,
db-instance
, nel gruppo di istanze gestite, una configurazione per istanza corrispondente con il disco statefuldb-data-disk-1
e collega il disco alla nuova VM utilizzandodata-disk
come nome del dispositivo.PROJECT_ID
: ID progetto per la richiesta.ZONE
: la zona in cui si trova il gruppo di istanze gestite (si applica a un gruppo di istanze gestite a livello di zona).- Per un gruppo di istanze gestite a livello di regione, sostituisci
zones/ZONE
conregions/REGION
e specifica la regione del gruppo di istanze gestite.
- Per un gruppo di istanze gestite a livello di regione, sostituisci
NAME
: il nome del gruppo di istanze gestite in cui creare un'istanza.VM_NAME
: il nome dell'istanza da creare.DEVICE_NAME
: il nome del dispositivo da usare quando colleghi il disco.DISK
: l'URI di un disco permanente esistente da collegare alDEVICE_NAME
specificato nel formatoprojects/project-id/zones/zone/disks/disk-name
per un disco a livello di zona oprojects/project-id/regions/region/disks/disk-name
per un disco a livello di area geografica.MODE
: specifica la modalità del disco. Le opzioni supportate sono:READ_ONLY
: di sola lettura.READ_WRITE
: (valore predefinito). Lettura/scrittura.
DELETE_RULE
: un valore che prescrive cosa deve succedere a un disco con stato quando viene eliminata una VM. Le opzioni disponibili sono le seguenti:never
: (valore predefinito). Non eliminare mai il disco, ma scollegalo quando viene eliminata la VM.on-permanent-instance-deletion
: elimina il disco stateful quando la relativa istanza viene eliminata definitivamente dal gruppo di istanze, ad esempio quando l'istanza viene eliminata manualmente o quando la dimensione del gruppo viene ridotta.
Indipendentemente dal valore della regola di eliminazione, i dischi stateful vengono sempre conservati nelle operazioni di riparazione automatica, aggiornamento e ricreazione delle istanze.
- Arresta la VM
db-instance
durante un periodo di manutenzione. - Crea un modello di istanza
denominato
db-template
utilizzando la configurazionedb-instance
. - Scollega
db-data-disk-1
dadb-instance
ed eliminadb-instance
. - Crea un gruppo di istanze gestite vuoto,
example-database-mig
, dadb-template
e configura la riparazione automatica. Crea un'istanza con il nome
db-instance
originale e collegadb-data-disk-1
come disco stateful:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/createInstances { "instances": [ { "name": "db-instance", "preservedState" : { "disks": { "data-disk" : { "source": "projects/example-project/zones/us-east1-c/disks/db-data-disk-1", "mode": "READ_WRITE", "autoDelete": "never" } } } } ] }
Il metodo crea un'istanza,
db-instance
, nel gruppo di istanze gestite, una configurazione per istanza corrispondente con il disco statefuldb-data-disk-1
e collega il disco alla nuova istanza utilizzandodata-disk
come nome del dispositivo.- Aggiunta di un disco stateful dall'esterno di un gruppo di istanze gestite a una VM all'interno del gruppo.
- Dichiarazione di un disco precedentemente stateless come stateful per una VM in un gruppo di istanze gestite.
- Sostituzione di un disco stateful con un altro disco per una VM in un gruppo di istanze gestite.
NAME
: il nome del gruppo di istanze gestite.VM_NAME
: il nome dell'istanza VM per cui configurare i dischi con stato.DEVICE_NAME
: il nome del dispositivo utilizzato per collegare il disco.DISK
: l'URI di un disco permanente esistente da collegare inDEVICE_NAME
specificato, nel formatoprojects/project-id/zones/zone/disks/disk-name
per un disco a livello di zona eprojects/project-id/regions/region/disks/disk-name
per un disco a livello di regione.Il flag secondario
source=DISK
è facoltativo se il dispositivo è già definito nella configurazione per istanza dell'istanza. In caso contrario, è obbligatorio.Se omesso, l'URI del disco attualmente configurato rimane invariato.
MODE
: specifica la modalità del disco. Puoi specificaremode
solo se specifichi anchesource
. Le opzioni supportate sono:ro
: di sola lettura.rw
: (valore predefinito). Lettura/scrittura.
Se omesso, il valore predefinito viene impostato per una nuova configurazione del disco con stato; il valore rimane invariato in una configurazione esistente.
DELETE_RULE
: un valore che prescrive cosa deve succedere a un disco con stato quando viene eliminata una VM. Le opzioni disponibili sono le seguenti:never
: (valore predefinito). Non eliminare mai il disco, ma scollegalo quando viene eliminata l'istanza.on-permanent-instance-deletion
: elimina il disco con stato quando la relativa istanza viene eliminata definitivamente dal gruppo di istanze, ad esempio quando l'istanza viene eliminata manualmente o quando la dimensione del gruppo viene ridotta.
Se omesso, il valore predefinito viene impostato per una nuova configurazione del disco con stato; il valore rimane invariato in una configurazione esistente.
Indipendentemente dal valore della regola di eliminazione, i dischi stateful vengono sempre conservati nelle operazioni di riparazione automatica, aggiornamento e ricreazione delle istanze.
MINIMAL_ACTION
: esegui almeno l'azione specificata quando applichi l'aggiornamento della configurazione per istanza all'istanza. Deve essere utilizzato insieme al flag--update-instance
. Il valore deve essere uno dei seguenti:none
: nessuna azione.refresh
: applica gli aggiornamenti che è possibile applicare senza interrompere la VM.restart
: arresta la VM e riavviala.replace
: ricrea la VM.
Se omesso, viene utilizzata l'azione meno invasiva richiesta dall'aggiornamento.
- Aggiorna la configurazione per istanza per
db-instance-1
:- Aggiorna l'origine del disco con il nome del dispositivo
data-disk
dadata-disk-1
(ultima configurazione) adata-disk-2
(nuova configurazione). - Mantiene la regola di eliminazione automatica per non eliminare mai il disco perché il parametro
auto-delete
viene omesso nel flag--stateful-disk
e, per impostazione predefinita, la regola di eliminazione ènever
.
- Aggiorna l'origine del disco con il nome del dispositivo
- L'aggiornamento della configurazione per istanza viene applicato immediatamente alla VM
db-instance-1
perché è incluso il flag--update-instance
. Il gruppo di istanze gestite scollegadata-disk-1
e collegadata-disk-2
con lo stesso nome del dispositivo,data-disk
. - Poiché l'azione minima è impostata su
restart
, il gruppo di istanze gestite riavvia l'istanzadb-instance-1
per aggiornare la VM, il che aiuta l'applicazione del database a iniziare a utilizzare il nuovo disco. PROJECT_ID
: l'ID progetto per la richiesta.ZONE
: la zona in cui si trova il gruppo di istanze gestite (si applica a un gruppo di istanze gestite a livello di zona).- Per un gruppo di istanze gestite a livello di regione, sostituisci
zones/ZONE
conregions/REGION
e specifica la regione del gruppo di istanze gestite.
- Per un gruppo di istanze gestite a livello di regione, sostituisci
NAME
: il nome del gruppo di istanze gestite.VM_NAME
: il nome della VM per cui configurare i dischi con stato.DEVICE_NAME
: il nome del dispositivo utilizzato per collegare il disco.DISK
: l'URI di un disco permanente esistente da collegare inDEVICE_NAME
specificato, nel formatoprojects/project-id/zones/zone/disks/disk-name
per un disco a livello di zona eprojects/project-id/regions/region/disks/disk-name
per un disco a livello di regione.Il campo
"source": "DISK"
è facoltativo se il dispositivo è già definito nella configurazione per istanza dell'istanza. In caso contrario, è obbligatorio.Se il campo
source
viene omesso, l'URI del disco attualmente configurato rimane invariato.MODE
: (facoltativo) Specifica la modalità del disco.mode
può essere specificato solo se è specificatosource
. Le opzioni supportate sono:READ_ONLY
: di sola lettura.READ_WRITE
: (valore predefinito). Lettura/scrittura.
Se omesso, il valore predefinito viene impostato per una nuova configurazione del disco con stato; il valore rimane invariato in una configurazione esistente.
DELETE_RULE
: (facoltativo) Un valore che prescrive cosa deve accadere a un disco con stato quando viene eliminata una VM. Le opzioni disponibili sono le seguenti:- never: (valore predefinito). Non eliminare mai il disco, ma scollegalo quando viene eliminata l'istanza.
on-permanent-instance-deletion
: elimina il disco stateful quando la relativa istanza viene eliminata definitivamente dal gruppo di istanze, ad esempio quando l'istanza viene eliminata manualmente o quando la dimensione del gruppo viene ridotta.
Se il campo
autoDelete
viene omesso, il valore predefinito viene impostato per una nuova configurazione del disco stateful. Il valore rimane invariato in una configurazione esistente.Indipendentemente dal valore della regola di eliminazione, i dischi stateful vengono sempre conservati nelle operazioni di riparazione automatica, aggiornamento e ricreazione delle istanze.
FINGERPRINT
: (facoltativo). L'impronta per la configurazione specificata, se esistente. Utilizzato per il blocco ottimistico. Per visualizzare la impronta più recente, invia una richiestaget()
per recuperare la risorsa.- Aggiorna
source
per un disco con nome dispositivodata-disk
dadata-disk-1
(ultima configurazione) adata-disk-2
(nuova configurazione). - Mantiene invariati i parametri
mode
eautoDelete
perché vengono omessi nella richiesta. - Se riarchitetti l'app per spostare lo stato dal disco.
- Se configuri il disco come stateful per errore e vuoi ripristinarlo.
- Se il disco non è definito nel modello di istanza, il MIG lo scollega.
- Il MIG non elimina il disco quando elimini la relativa configurazione dalla configurazione per istanza, indipendentemente dalla regola di eliminazione automatica nella configurazione.
- Se il disco è definito dal modello di istanza, il gruppo di istanze gestite lo tratta come statoless, il che significa che lo ricrea dalla relativa origine nel modello di istanza in caso di eventi di ricreazione, aggiornamento o riparazione automatica delle istanze successivi.
NAME
: il nome del gruppo di istanze gestite.VM_NAME
: il nome della VM da cui rimuovere la configurazione con stato.DEVICE_NAME
: il nome del dispositivo utilizzato per collegare il disco.MINIMAL_ACTION
: esegui almeno l'azione specificata quando aggiorni la VM con la relativa configurazione per istanza. Può essere utilizzato solo insieme a--update-instance
. Il valore deve essere uno tra i seguenti:none
: nessuna azione.refresh
: applica gli aggiornamenti che è possibile applicare senza interrompere la VM.restart
: arresta la VM e riavviala.replace
: ricrea la VM.
Se omesso, viene utilizzata l'azione meno invasiva richiesta dall'aggiornamento.
- Rimuove la configurazione del disco con il nome del dispositivo
boot-disk
dalla configurazione per istanza pernode-1
. - L'aggiornamento della configurazione per istanza viene applicato immediatamente alla VM
node-1
perché è incluso il flag--update-instance
. Il gruppo di istanze gestiterimuove il disco di avvio dapreservedStateFromConfig
dell'istanza gestita e lo tratta come stateless, il che significa che il gruppo di istanze gestite ricrea il disco dalla relativa immagine di avvio nel modello di istanza in seguito a eventi di ricreazione, aggiornamento o riparazione automatica dell'istanza. PROJECT_ID
: l'ID progetto per la richiesta.ZONE
: la zona in cui si trova il gruppo di istanze gestite (si applica a un gruppo di istanze gestite a livello di zona).- Per un gruppo di istanze gestite a livello di regione, sostituisci
zones/ZONE
conregions/REGION
e specifica la regione del gruppo di istanze gestite.
- Per un gruppo di istanze gestite a livello di regione, sostituisci
NAME
: il nome del gruppo di istanze gestite.VM_NAME
: il nome della VM da cui rimuovere la configurazione con stato.DEVICE_NAME
: il nome del dispositivo utilizzato per collegare il disco.FINGERPRINT
: l'impronta per la configurazione specificata, se esistente. Utilizzato per il blocco ottimistico. Per visualizzare la impronta più recente, invia una richiestaget()
per recuperare la risorsa.Chiama il metodo
patchPerInstanceConfigs
per le istanze, ad esempio pernode-1
con un valorenull
per il disco di avvio:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group/patchPerInstanceConfigs { "perInstanceConfigs": [ { "name": "node-1", "preservedState" : { "disks": { "boot-disk" : null } } } ] }
Il metodo rimuove la configurazione del disco con il nome del dispositivo
boot- disk
dalla configurazione per istanza dinode-1
. L'aggiornamento della configurazione non è ancora stato applicato all'istanza VMnode-1
. L'aggiornamento della configurazione verrà applicato al successivo aggiornamento o alla successiva creazione dell'istanza.Per applicare l'aggiornamento della configurazione per istanza all'istanza VM
node-1
, chiama il metodoinstanceGroupManagers.applyUpdatesToInstances
per l'istanza:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group/applyUpdatesToInstances { "instances": ["/zones/us-east1-c/instances/node-1"] }
Il gruppo di istanze gestite rimuove il disco di avvio dal
preservedStateFromConfig
per l'istanzanode-1
e tratta il disco come stateless. In altre parole, il gruppo di istanze gestite ricrea il disco dall'immagine di avvio nel modello di istanza in caso di eventi di ricreazione, aggiornamento o riparazione automatica delle istanze successivi.- Configura i metadati stateful per le VM in un gruppo di istanze gestite.
- Scopri di più su come applicare, visualizzare e rimuovere la configurazione stateful.
- Ottieni informazioni su un gruppo di istanze gestite specifico e sulle relative istanze gestite, inclusi lo stato e le proprietà delle VM.
- Scopri di più sulle MIG e sull'utilizzo delle istanze gestite.
Terraform
Per utilizzare gli esempi di Terraform in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per ulteriori informazioni, consulta Set up authentication for a local development environment.
REST
Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
Limitazioni
Un gruppo di istanze gestite con dischi stateful presenta le seguenti limitazioni:
Un gruppo di istanze gestite con configurazione stateful, ovvero un gruppo di istanze gestite stateful, presenta le seguenti limitazioni:
Quando utilizzare i dischi permanenti stateful
Utilizza i dischi permanenti stateful per sfruttare la riparazione automatica e gli aggiornamenti automatici delle VM, conservando al contempo i dati sui dischi. Per ulteriori informazioni, consulta i casi d'uso per i gruppi di istanze gestite stateful.
Quando configuri i dischi stateful, questi vengono conservati tramite la riparazione automatica, gli aggiornamenti e la ricreazione delle istanze VM. Ciò significa anche che i dischi con stato non possono essere ricreati dall'immagine originale o aggiornati a una nuova immagine.
Come best practice, ti consigliamo di mantenere i dischi di avvio senza stato.
Mantenere il disco di avvio stateless presenta i seguenti vantaggi:
Per ulteriori informazioni, scopri come la riparazione automatica e l'aggiornamento gestiscono lo stato preservato.
Configurazione di dischi permanenti stateful per tutte le VM in un MIG
Configura qualsiasi disco definito in un modello di istanza in modo che sia stateful aggiungendo il nome del dispositivo del disco al criterio stateful del gruppo di istanze gestite. Il gruppo di istanze gestite tratta i dischi con quel nome dispositivo come stateful per tutte le istanze VM esistenti e future.
Configurazione dei dischi stateful al momento della creazione del gruppo di istanze gestite
Console
gcloud
Per specificare quali dischi di un modello di istanza devono essere stateful al momento della creazione del gruppo di istanze gestite, utilizza il flag
--stateful-disk
con il comandogcloud compute instance-groups managed create
:gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --template INSTANCE_TEMPLATE \ --size SIZE \ --stateful-disk device-name=DEVICE_NAME[,auto-delete=DELETE_RULE]
Sostituisci quanto segue:
Esempio
Vuoi eseguire il deployment di un database con 12 shard, ciascuno con un disco di avvio senza stato che contiene i binari del sistema operativo e del database e ciascuno con un disco di dati con stato. Procedi nel seguente modo:
Terraform
Se non hai già creato un modello di istanza che specifica il tipo di macchina, l'immagine del disco di avvio, la rete e altre proprietà della VM che vuoi per ogni VM nel tuo gruppo di istanze gestite, crea un modello di istanza.
Il seguente esempio crea un gruppo di istanze gestite a livello di zona con un disco stateful. Per specificare il disco del modello di istanza che deve essere stateful alla creazione del MIG, includi il blocco
stateful_disk
. Per ulteriori informazioni sulla risorsa utilizzata nel sample, consulta la risorsagoogle_compute_instance_group_manager
. Per creare un gruppo di istanze gestite a livello di regione, utilizza la risorsagoogle_compute_region_instance_group_manager
.Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
REST
Per specificare quali dischi del modello di istanza devono essere stateful al momento della creazione del MIG, includili nel campo
statefulPolicy
nel corpo della richiesta del metodoinstanceGroupManagers.insert
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers { "name": "NAME", "versions": [ { "instanceTemplate": "global/instanceTemplates/TEMPLATE" } ], "targetSize": SIZE, "statefulPolicy": { "preservedState": { "disks": { "DEVICE_NAME": {"autoDelete": "DELETE_RULE" }, "DEVICE_NAME": {"autoDelete": "DELETE_RULE" } } } } }
Sostituisci quanto segue:
Esempio
Vuoi eseguire il deployment di un database con 12 shard, ciascuno con un disco di avvio senza stato che contiene i binari del sistema operativo e del database e ciascuno con un disco di dati con stato. Procedi nel seguente modo.
Impostazione e aggiornamento della configurazione stateful per i dischi in un gruppo di istanze gestite esistente
Se esegui un'applicazione stateful su un gruppo di istanze gestite stateless (un gruppo di istanze gestite senza configurazione stateful), puoi configurare i dischi esistenti definiti nel modello di istanza in modo che siano stateful per tutte le istanze di questo gruppo di istanze gestite. In questo modo, puoi conservare i dischi durante le operazioni di ricreazione, riparazione automatica e aggiornamento delle istanze e, facoltativamente, durante le operazioni di eliminazione.
Puoi eseguire le seguenti operazioni:
Il gruppo di istanze gestite applica la configurazione aggiornata nel criterio stateful automaticamente e in modo asincrono a tutte le istanze. Gli aggiornamenti alle configurazioni dei dischi in un criterio stateful non interrompono le VM in esecuzione. Per ulteriori informazioni, consulta applicazione di aggiornamenti dei criteri con stato.
Per un gruppo di istanze gestite regionale, devi disattivare la ridistribuzione proattiva delle istanze tra zone prima di poter configurare i dischi stateful. Per ulteriori informazioni, consulta come i gruppi di regioni gestiscono lo stato preservato.
Console
gcloud
Per specificare quali dischi del modello di istanza devono essere stateful o per aggiornare la configurazione dei dischi stateful per un gruppo di istanze gestite esistente, utilizza uno o più flag
--stateful-disk
con il comandogcloud compute instance-groups managed update
:gcloud compute instance-groups managed update NAME \ --stateful-disk device-name=DEVICE_NAME[,auto-delete=DELETE_RULE]
Sostituisci quanto segue:
Se un nome dispositivo specificato è già configurato nel criterio con stato, il comando aggiorna la configurazione.
Esempio
Esegui un database con più shard su un MIG denominato
example-database- group
. Ogni VM nel gruppo di istanze gestite archivia uno shard su un disco aggiuntivo con il nome del dispositivodata-disk
, definito dal modello di istanza. Il gruppo di istanze gestite non ha una configurazione stateful e vuoi conservare i dischi di dati durante la ricreazione, la riparazione automatica e gli aggiornamenti delle istanze. Inoltre, vuoi proteggere i dischi di dati dall'eliminazione quando viene eliminata una VM.REST
Per specificare quali dischi del modello di istanza devono essere stateful o per aggiornare la configurazione dei dischi stateful per un gruppo di istanze gestite esistente, configura i dischi nel criterio stateful del gruppo di istanze gestite utilizzando il metodo
instanceGroupManagers.patch
:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers/NAME { "statefulPolicy": { "preservedState": { "disks": { "DEVICE_NAME": {"autoDelete": "DELETE_RULE" }, "DEVICE_NAME": {"autoDelete": "DELETE_RULE" } } } } }
Sostituisci quanto segue:
Se il nome del dispositivo specificato è già configurato nel criterio con stato, il metodo
patch
aggiorna la relativa configurazione.Esempio
Esegui un database con più shard su un MIG denominato
example-database- group
. Ogni VM nel gruppo di istanze gestite archivia uno shard su un disco aggiuntivo con il nome del dispositivodata-disk
, definito dal modello di istanza. Il gruppo di istanze gestite non ha una configurazione stateful e vuoi conservare i dischi di dati durante la ricreazione, la riparazione automatica e gli aggiornamenti delle istanze. Inoltre, vuoi proteggere i dischi di dati dall'eliminazione quando viene eliminata una VM.Dichiarare come stateless i dischi permanenti precedentemente stateful
Potresti dover configurare un disco stateful in modo che venga trattato come stateless. Ad esempio:
Per dichiarare come stateless tutti i dischi con un determinato nome del dispositivo, rimuovi la configurazione del disco dal criterio stateful.
Il gruppo di istanze gestite applica la modifica al criterio stateful automaticamente e asincrono a tutte le istanze. Gli aggiornamenti alla configurazione del disco in un criterio con stato non interrompono le istanze VM in esecuzione.
Per ulteriori informazioni, consulta Applicare aggiornamenti dei criteri con stato.
Console
gcloud
Per specificare quali dischi del criterio stateful di un gruppo di istanze gestite devono essere impostati come stateless, utilizza il flag
--remove-stateful-disks
con il comandogcloud compute instance-groups managed update
:gcloud compute instance-groups managed update NAME \ --remove-stateful-disks DEVICE_NAME[,DEVICE_NAME,...]
Sostituisci quanto segue:
Esempio
Esegui un'applicazione precedente con più nodi su un gruppo di istanze gestite denominato
example-legacy-group
. Ogni VM nel gruppo di istanze gestite archivia i dati dell'applicazione su un disco di avvio con il nome dispositivoboot-disk
, che hai configurato come stateful nel criterio stateful del gruppo di istanze gestite. Hai spostato i dati dell'applicazione su un altro disco e ora vuoi rendere il disco di avvio stateless per semplificare l'aggiornamento alle nuove immagini.Per rimuovere la configurazione con stato del disco di avvio, aggiorna il gruppo di istanze gestite:
gcloud compute instance-groups managed update example-legacy-group \ --remove-stateful-disks boot-disk
Il gruppo di istanze gestite rimuove la configurazione stateful per il nome del dispositivo
boot-disk
automaticamente e in modo asincrono per i dischi di avvio di tutte le istanze del gruppo. I dischi di avvio rimangono collegati alle istanze, ma non sono più stateful. Quando ri crei o aggiorni le istanze o quando queste vengono riparate automaticamente, il gruppo MIG ricrea i dischi di avvio dall'immagine specificata nel modello di istanza.REST
Per specificare quali dischi del criterio stateful di un gruppo di istanze gestite devono essere impostati come stateless,rimuovi la configurazione di ciascun disco dal criterio stateful del gruppo di istanze gestite utilizzando il metodo
instanceGroupManagers.patch
:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers/NAME { "statefulPolicy": { "preservedState": { "disks": { "DEVICE_NAME": null, ... } } } }
Sostituisci quanto segue:
Esempio
Esegui un'applicazione precedente con più nodi su un gruppo di istanze gestite denominato
example-legacy-group
. Ogni VM nel gruppo di istanze gestite archivia i dati dell'applicazione su un disco di avvio con il nome dispositivoboot-disk
, che hai configurato come stateful nel criterio stateful del gruppo di istanze gestite. Hai spostato i dati dell'applicazione su un disco aggiuntivo e ora vuoi rendere il disco di avvio stateless per semplificare l'aggiornamento alle nuove immagini.Per rimuovere la configurazione con stato del disco di avvio, applica la patch al gruppo di istanze gestite:
PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group { "statefulPolicy": { "preservedState": { "disks": { "boot-disk": null } } } }
Il gruppo di istanze gestite rimuove la configurazione stateful per il nome del dispositivo
boot-disk
automaticamente e in modo asincrono per i dischi di avvio di tutte le istanze del gruppo. I dischi di avvio rimangono collegati alle istanze, ma non sono più stateful. Quando ri crei o aggiorni le istanze o quando queste vengono riparate automaticamente, il gruppo MIG ricrea i dischi di avvio dall'immagine specificata nel modello di istanza.Rimuovere i dischi permanenti stateful da un gruppo di istanze gestite
Potrebbe essere necessario rimuovere completamente un disco con stato dalle istanze di un MIG, ad esempio se hai ridefinito l'architettura dell'applicazione e spostato lo stato da quel disco.
I gruppi di istanze gestite non consentono di rimuovere i dischi stateful, quindi devi svolgere i seguenti passaggi:
Configurazione dei dischi permanenti stateful singolarmente per una VM in un gruppo di istanze gestite
Configura i dischi permanenti stateful per una VM specifica in un GIM aggiungendo il nome del dispositivo del disco alla configurazione per istanza della VM. Aggiorna la VM per applicare la configurazione per istanza e renderla effettiva.
La configurazione dei dischi permanenti stateful singolarmente per VM specifiche in un gruppo di istanze gestite è utile se devi:
Aggiunta di dischi stateful esistenti a nuove VM in un gruppo di istanze gestite
Puoi aggiungere dischi stateful esistenti a nuove istanze create manualmente in un MIG. Questa operazione è utile per eseguire la migrazione di un'applicazione stateful dalle VM autonome esistenti a un gruppo di istanze gestite stateful, ad esempio:
Aggiungi i dischi stateful esistenti quando crei manualmente istanze specifiche in un MIG utilizzando l'interfaccia alla gcloud CLI o REST. Il gruppo di istanze gestite applica la configurazione immediatamente alla creazione della VM.
gcloud
Per creare una VM con un nome personalizzato e collegare uno o più dischi stateful esistenti alla VM, utilizza il comando
gcloud compute instance-groups managed create-instance
con uno o più flag--stateful-disk
.gcloud compute instance-groups managed create-instance NAME \ --instance VM_NAME \ [--zone ZONE | --region REGION] \ --stateful-disk device-name=DEVICE_NAME,source=DISK[,mode=MODE][,auto-delete=DELETE_RULE]
Sostituisci quanto segue:
Esempio
Vuoi attivare la riparazione automatica per un server database attualmente in esecuzione su una VM autonoma denominata
db-instance
e che attualmente memorizza i dati su un disco denominatodb-data-disk-1
.Crea un gruppo di istanze gestite stateful con riparazione automatica, crea una VM simile all'interno del gruppo di istanze gestite e collega il disco di dati esistente
db-data-disk-1
alla nuova istanza come disco stateful:REST
Per creare una o più istanze in un gruppo di istanze gestite, impostare nomi VM personalizzati e collegare uno o più dischi stateful esistenti a queste istanze, utilizza il metodo
instanceGroupManagers.createInstances
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/createInstances { "instances": [ { "name": "VM_NAME", "preservedState" : { "disks": { "DEVICE_NAME" : { "source": "DISK", "mode": "MODE", "autoDelete": "DELETE_RULE" }, ... } } }, ... ] }
Sostituisci quanto segue:
Esempio
Vuoi attivare la riparazione automatica per un server database attualmente in esecuzione su una VM autonoma denominata
db-instance
e che attualmente memorizza i dati su un disco denominatodb-data-disk-1
.Crea un gruppo di istanze gestite stateful con riparazione automatica, crea un'istanza simile all'interno del gruppo di istanze gestite e collega il disco dati esistente
db-data-disk-1
alla nuova VM come disco stateful:Aggiunta, dichiarazione e sostituzione dei dischi stateful singolarmente per le VM in un gruppo di istanze gestite
Configura i dischi stateful singolarmente per un'istanza gestita aggiungendo o aggiornando una configurazione del disco stateful nella configurazione per istanza associata. Aggiorna l'istanza per applicare la configurazione per istanza alla VM.
La configurazione dei dischi stateful singolarmente è utile per le seguenti attività:
Aggiunta di un disco stateful dall'esterno di un gruppo di istanze gestite a una VM all'interno del gruppo. Puoi collegare qualsiasi disco esterno a un'istanza gestita aggiungendo la configurazione stateful del disco alla configurazione per istanza associata. Dopo aver applicato la configurazione, il gruppo di istanze gestite collega automaticamente il disco all'istanza e lo tratta come stateful.
Dichiarare un disco permanente precedentemente stateless come stateful. Puoi dichiarare un disco precedentemente senza stato, attualmente collegato a una VM, come con stato aggiungendo la configurazione con stato per questo disco, inclusi il nome e l'URI del dispositivo, alla configurazione per istanza associata. Dopo aver applicato la configurazione, il gruppo di istanze gestite inizia a conservare il disco come stateful.
Sostituzione di un disco stateful con un altro disco. La sostituzione di un disco con stato con un altro disco con stato può essere utile, ad esempio, se devi accedere a un backup recuperato. Puoi sostituire un disco con stato con un altro aggiornando l'URI del disco mantenendo lo stesso nome del dispositivo nella configurazione per istanza. Dopo aver applicato la configurazione per istanza aggiornata, il gruppo di istanze gestite scollega il vecchio disco e collega quello nuovo utilizzando lo stesso nome del dispositivo. Quando applichi l'aggiornamento, scegli se mantenere l'istanza in esecuzione, riavviare o riecrearla. Lo scambio di un disco di avvio richiede almeno un riavvio della VM.
gcloud
Per configurare i dischi stateful singolarmente per una VM in un gruppo di istanze gestite, aggiungi o aggiorna la configurazione dei dischi stateful nella configurazione per istanza associata. Aggiorna quindi l'istanza per applicare la configurazione.
Se non esiste ancora una configurazione per istanza per l'istanza, utilizza il comando
gcloud compute instance-groups managed instance-configs create
con uno o più flag--stateful-disk
:gcloud compute instance-groups managed instance-configs create NAME \ --instance VM_NAME \ --stateful-disk device-name=DEVICE_NAME[,source=DISK][,mode=MODE][,auto-delete=DELETE_RULE] \ [--no-update-instance | --update-instance] \ [--instance-update-minimal-action MINIMAL_ACTION]
Se per l'istanza esiste già una configurazione per istanza, utilizza il comando
gcloud compute instance-groups managed instance-configs update
con uno o più flag--stateful-disk
.Il flag
--update-instance
(valore predefinito) applica immediatamente le modifiche all'istanza. Se utilizzi--no-update-instance
, le modifiche rimangono non applicate e vengono applicate al successivo ricreare o aggiornare l'istanza.gcloud compute instance-groups managed instance-configs update NAME \ --instance VM_NAME \ --stateful-disk device-name=DEVICE_NAME[,source=DISK][,mode=MODE][,auto-delete=DELETE_RULE] \ [--no-update-instance | --update-instance] \ [--instance-update-minimal-action MINIMAL_ACTION]
Sostituisci quanto segue:
Esempio
I dati su un disco con stato attualmente collegato,
data-disk-1
, sono stati danneggiati e vuoi ripristinarli dall'ultimo backup. Hai creato un disco,data-disk-2
, da uno snapshot per sostituire il disco danneggiato nell' istanza,db-instance-1
, gestita da un gruppo di istanze gestite stateful,example-database-mig
. Il disco originaledata-disk-1
è collegato al nome del dispositivodata-disk
con una regola di eliminazione automatica che ne impedisce l'eliminazione.Per sostituire
data-disk-1
condata-disk-2
, esegui il seguente comando:gcloud compute instance-groups managed instance-configs update example-database-mig \ --instance db-instance-1 \ --stateful-disk device-name=data-disk,source=projects/example-project/zones/us-east1-c/disks/data-disk-2 \ --update-instance \ --instance-update-minimal-action restart
Il comando esegue le seguenti operazioni:
Terraform
Per configurare i dischi stateful singolarmente per una VM in un gruppo di istanze gestite, aggiungi la configurazione dei dischi stateful nella configurazione per istanza associata. Aggiorna quindi l'istanza per applicare la configurazione.
Per aggiungere la configurazione per istanza di una VM, utilizza la risorsa
google_compute_per_instance_config
e includi il bloccopreserved_state
come mostrato nell'esempio seguente.Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
REST
Per configurare i dischi stateful singolarmente per le VM in un gruppo di istanze gestite, aggiungi o aggiornate la configurazione dei dischi stateful nelle configurazioni per istanza associate. Aggiorna quindi le istanze per applicare la configurazione.
Se le configurazioni per istanza non esistono ancora per le VM specificate, utilizza il metodo
instanceGroupManagers.updatePerInstanceConfigs
o il metodoregionInstanceGroupManagers.updatePerInstanceConfigs
con configurazione stateful per uno o più dischi:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/updatePerInstanceConfigs { "perInstanceConfigs": [ { "name": "VM_NAME", "preservedState" : { "disks": { "DEVICE_NAME" : { "source": "DISK", "mode": "MODE", "autoDelete": "DELETE_RULE" }, ... } }, "fingerprint: "FINGERPRINT" }, ... ] }
Se esistono già configurazioni per istanza per le VM specificate, utilizza il metodo
instanceGroupManagers.patchPerInstanceConfigs
o il metodoregionInstanceGroupManagers.patchPerInstanceConfigs
con configurazione stateful per uno o più dischi:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/patchPerInstanceConfigs { "perInstanceConfigs": [ { "name": "VM_NAME", "preservedState" : { "disks": { "DEVICE_NAME" : { "source": "DISK", "mode": "MODE", "autoDelete": "DELETE_RULE" }, ... } }, "fingerprint: "FINGERPRINT" }, ... ] }
Sostituisci quanto segue:
I metodi
updatePerInstanceConfigs
epatchPerInstanceConfigs
aggiornano le configurazioni per istanza specificate, ma non applicano gli aggiornamenti della configurazione alle VM gestite associate. Le modifiche vengono applicate a un'istanza quando al gruppo di istanze gestite viene chiesto di ricrearla o aggiornarla. Puoi anche aggiornare selettivamente l'istanza per applicare le modifiche.Esempio
I dati su un disco con stato attualmente collegato,
data-disk-1
, sono stati danneggiati e vuoi ripristinarli dall'ultimo backup. Hai creato un disco,data-disk-2
, da uno snapshot per sostituire il disco danneggiato nell' istanza,db-instance-1
, gestita da un gruppo di istanze gestite stateful,example-database-mig
. Il disco originaledata-disk-1
è collegato al nome del dispositivodata-disk
con una regola di eliminazione automatica che ne impedisce l'eliminazione.Per aggiornare la configurazione per istanza di
db-instance-1
con il nuovo disco, chiama il metodopatchPerInstanceConfigs
:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/patchPerInstanceConfigs { "perInstanceConfigs": [ { "name": "db-instance-1", "preservedState" : { "disks": { "data-disk" : { "source": "projects/example-project/zones/us-east1-c/disks/data-disk-2" } } } } ] }
Il metodo applica patch alla configurazione per istanza per
db-instance-1
:L'aggiornamento della configurazione non è ancora stato applicato alla VM
db-instance-1
. Il gruppo di istanze gestite applica l'aggiornamento della configurazione quando ricrei o aggiorni l'istanza.Per applicare l'aggiornamento della configurazione per istanza alla VM
db-instance-1
, chiama il metodoinstanceGroupManagers.applyUpdatesToInstances
per l'istanza:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/applyUpdatesToInstances { "instances": ["/zones/us-east1-c/instances/db-instance-1"], "minimalAction": "RESTART" }
Il metodo aggiorna lo stato preservato dell'istanza gestita, scollegando
data-disk-1
e collegandodata-disk-2
con lo stesso nome dispositivodata-disk
. PoichéminimalAction
è impostato suRESTART
, il metodo riavvia la VMdb-instance-1
, che consente all'applicazione di database di iniziare a utilizzare il nuovo disco.Scollegare un disco con stato o dichiararlo senza stato per una singola VM
Potresti dover scollegare un disco con stato o configurarlo in modo che venga trattato come senza stato per una singola VM. Ad esempio:
Scollega un disco con stato o impostalo come senza stato per una singola VM rimuovendo la configurazione con stato del disco dalla configurazione per istanza associata o eliminando l'intera configurazione per istanza. Quando applici la modifica:
La rimozione di una configurazione del disco da una configurazione per istanza non riavvia un'istanza VM in esecuzione, a meno che tu non scelga esplicitamente di farlo.
Per ulteriori informazioni, consulta la pagina relativa all'applicazione degli aggiornamenti delle configurazioni per istanza.
gcloud
Per scollegare i dischi con stato o dichiararli senza stato singolarmente per una VM in un gruppo di istanze gestite, rimuovi la configurazione dei dischi con stato dalla configurazione per istanza associata o elimina l'intera configurazione per istanza se non contiene altri stati. Aggiorna l'istanza per applicare la configurazione.
Per rimuovere una configurazione di dischi con stato dalla configurazione per istanza associata, utilizza il comando
gcloud compute instance-groups managed instance-configs update
con il flag--remove-stateful-disks
. Il flag--update-instance
(valore predefinito) applica immediatamente le modifiche all'istanza. Se utilizzi--no-update-instance
, le modifiche rimangono non applicate e vengono applicate al successivo ricreare o aggiornare l'istanza.gcloud compute instance-groups managed instance-configs update NAME \ --instance VM_NAME \ --remove-stateful-disks DEVICE_NAME[,DEVICE_NAME,...] \ [--no-update-instance | --update-instance] \ [--instance-update-minimal-action MINIMAL_ACTION]
Sostituisci quanto segue:
Esempio
Esegui un'applicazione legacy su un gruppo di istanze gestite denominato
example-legacy-group
. Ogni VM nel gruppo di istanze gestite memorizza i dati dell'applicazione su un disco di avvio con il nome dispositivoboot-disk
. Utilizzando le configurazioni per istanza, hai configurato ogni disco di avvio in modo che sia stateful. Ora hai spostato i dati dell'applicazione su un disco aggiuntivo e vuoi rendere il disco di avvio stateless per ogni VM per facilitare l'aggiornamento alle nuove immagini.Per ogni istanza, ad esempio per
node-1
, esegui il comando:gcloud compute instance-groups managed instance-configs update example-legacy-group \ --instance node-1 \ --remove-stateful-disks boot-disk \ --update-instance
Il comando esegue le seguenti operazioni:
REST
Per scollegare i dischi con stato o dichiararli senza stato singolarmente per una VM in un gruppo di istanze gestite, rimuovi la configurazione dei dischi con stato dalla configurazione per istanza associata o elimina l'intera configurazione per istanza se non contiene altri stati. Aggiorna l'istanza per applicare la configurazione.
Per rimuovere una configurazione di un disco con stato dalla configurazione per istanza associata, utilizza il metodo
instanceGroupManagers.patchPerInstanceConfigs
o il metodoregionInstanceGroupManagers.patchPerInstanceConfigs
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/patchPerInstanceConfigs { "perInstanceConfigs": [ { "name": "VM_NAME", "preservedState" : { "disks": { "DEVICE_NAME" : null }, ... }, "fingerprint: "FINGERPRINT" ... } ] }
Sostituisci quanto segue:
Il metodo
patchPerInstanceConfigs
applica patch alle configurazioni per istanza specificate, ma non applica le modifiche alle VM associate. Le modifiche vengono applicate a una VM quando ricrei o aggiorni l'istanza. Puoi applicare le modifiche manualmente o utilizzare aggiornamenti graduali automatici.Esempio
Esegui un'applicazione legacy su un gruppo di istanze gestite denominato
example-legacy-group
. Ogni VM nel gruppo di istanze gestite archivia i dati dell'applicazione su un disco di avvio con il nome dispositivoboot-disk
. Hai configurato il disco di avvio come stateful nelle configurazioni per istanza del gruppo di istanze gestite durante la migrazione delle VM autonome nel gruppo di istanze gestite. Hai spostato i dati dell'applicazione su un disco aggiuntivo e ora vuoi rendere il disco di avvio stateless per ogni VM per semplificare l'aggiornamento alle nuove immagini.Feedback
Vorremmo conoscere i tuoi casi d'uso, le tue sfide e i tuoi feedback sulle MIG stateful. Condividi il tuo feedback con il nostro team all'indirizzo mig-discuss@google.com.
Passaggi successivi
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2024-12-22 UTC.
-