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 (MIG) aggiungendo il nome dispositivo del disco alla policy stateful del MIG.
Puoi anche configurare singolarmente i dischi permanenti stateful per le istanze in un MIG impostando le configurazioni per istanza; questi dischi non devono essere definiti nel modello di istanza.
Prima di iniziare
- Rivedi quando utilizzare i MIG stateful e come funzionano i MIG stateful.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è
il processo mediante il quale la tua identità viene verificata per l'accesso a servizi e API di Trusted Cloud by S3NS .
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 Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.
gcloud
-
Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata. Dopo aver eseguito l'accesso, inizializza Google Cloud CLI eseguendo il seguente comando:
gcloud init
- Set a default region and zone.
Terraform
Per utilizzare gli esempi di Terraform in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura leCredenziali predefinite dell'applicazionee con le tue credenziali utente.
Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata.
Create local authentication credentials for your user account:
gcloud auth application-default login
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Per ulteriori informazioni, vedi Set up authentication for a local development environment.
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 accedi a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Trusted Cloud .
Limitazioni
Un MIG con dischi stateful presenta le seguenti limitazioni:
Un MIG con configurazione stateful, ovvero un MIG stateful, presenta le seguenti limitazioni:
- Non puoi utilizzare la scalabilità automatica se il MIG ha una configurazione stateful.
- Se vuoi utilizzare gli aggiornamenti in sequenza automatici, devi impostare il metodo di sostituzione su
RECREATE
. - Per i MIG stateful a livello di regione, devi disattivare la ridistribuzione proattiva (imposta il tipo di ridistribuzione su
NONE
) per impedire che la ridistribuzione automatica tra zone elimini istanze stateful. Se utilizzi una configurazione di tutte le istanze per eseguire l'override delle proprietà del modello di istanza, non puoi specificare queste proprietà in una configurazione per istanza e contemporaneamente nella configurazione di tutte le istanze del gruppo.
Un MIG stateful a livello di regione non orchestra automaticamente il failover tra zone. Quando utilizzi un MIG a livello di regione, puoi rendere la tua applicazione stateful resiliente agli errori a livello di zona eseguendo il deployment di repliche ridondanti in più zone e facendo affidamento sulla funzionalità di replica dei dati dell'applicazione.
Quando utilizzare dischi permanenti stateful
Utilizza dischi permanenti stateful per sfruttare la riparazione automatica e gli aggiornamenti automatici delle VM, conservando al contempo i dati sui dischi. Per saperne di più, consulta i casi d'uso per i MIG stateful.
Quando configuri dischi stateful, questi vengono conservati durante la riparazione automatica, gli aggiornamenti e la ricreazione dell'istanza VM. Ciò significa anche che i dischi stateful 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 offre i seguenti vantaggi:
- Puoi riparare un disco di avvio danneggiato ricreandolo dalla sua immagine originale. Il ripristino automatico esegue queste riparazioni automaticamente.
- Puoi aggiornare un disco di avvio all'ultima immagine con nuove versioni e patch di sicurezza.
Per ulteriori informazioni, scopri in che modo l'autoriparazione e l'aggiornamento gestiscono lo stato conservato.
Configurazione dei 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 dispositivo del disco alla policy stateful del MIG. Il MIG considera i dischi con quel nome dispositivo come stateful per tutte le istanze VM esistenti e future.
Configurazione dei dischi stateful durante la creazione del MIG
Console
Nella console Trusted 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 stateful.
- In Stateful, seleziona Sì.
Dal menu a discesa Con l'eliminazione definitiva dell'istanza, seleziona l'azione da eseguire sul disco stateful quando l'istanza VM viene eliminata. Le opzioni disponibili sono:
- Scollega disco: (valore predefinito) Il disco non viene mai eliminato, ma viene scollegato all'eliminazione della VM.
- Elimina disco: elimina il disco stateful 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.
Quando hai completato la configurazione stateful, fai clic su Fine.
Fai clic su Crea.
gcloud
Per specificare quali dischi di un modello di istanza devono essere stateful al momento della creazione del MIG, 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:
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 descrive la gestione prevista per un disco stateful quando viene eliminata una VM. Le opzioni disponibili sono:never
: (Valore predefinito) Il disco non viene mai eliminato, ma viene scollegato all'eliminazione della 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.
Esempio
Vuoi eseguire il deployment di un database con 12 shard, ognuno con un disco di avvio stateless che contiene il sistema operativo e i file binari del database e ognuno con un disco dati stateful. Segui questi passaggi:
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 relativa VM in modalità di lettura/scrittura utilizzando il nome del dispositivo
data-disk
.
Crea un MIG 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 tratto dal modello di istanza. Il disco di dati è configurato per essere eliminato insieme all'istanza VM quando la VM viene eliminata definitivamente (a causa dell'eliminazione manuale dell'istanza o della riduzione manuale delle dimensioni del gruppo). Il disco di dati viene conservato durante la riparazione automatica, gli aggiornamenti e la ricreazione della VM.Verifica che il disco di dati sia configurato nel criterio stateful:
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 ...
Come vedi, la policy stateful dichiara come stateful i dischi con il nome del dispositivo
data-disk
, con una regola per eliminare questi dischi al momento dell'eliminazione definitiva della VM.
Terraform
Se non hai già creato un modello di istanza che specifica il tipo di macchina, l'immagine disco di avvio, la rete e altre proprietà delle VM da applicare a ogni VM nel tuo MIG, crea un modello di istanza.
L'esempio seguente crea un MIG a livello di zona con un disco stateful. Per specificare quale disco del modello di istanza deve essere stateful al momento della creazione del MIG, includi il blocco
stateful_disk
. Per saperne di più sulla risorsa utilizzata nell'esempio, consulta la risorsagoogle_compute_instance_group_manager
. Per creare un MIG a livello di regione, utilizza la risorsagoogle_compute_region_instance_group_manager
.Per scoprire come applicare o rimuovere una configurazione Terraform, vedi 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 delinstanceGroupManagers.insert
metodo: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:
PROJECT
: l'ID progetto per la richiesta.ZONE
: la zona in cui si trova il MIG (si applica a un MIG a livello di zona).- Per un MIG a livello di regione, sostituisci
zones/ZONE
conregions/REGION
e specifica la regione del MIG.
- Per un MIG a livello di regione, sostituisci
NAME
: il nome del MIG 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 definisce la gestione prevista per un disco stateful quando viene eliminata l'istanza VM. Le opzioni disponibili sono:never
: (Valore predefinito) Il disco non viene mai eliminato, ma viene scollegato all'eliminazione della VM.on_permanent_instance_deletion
: elimina il disco stateful 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.
Esempio
Vuoi eseguire il deployment di un database con 12 shard, ognuno con un disco di avvio stateless che contiene il sistema operativo e i file binari del database e ognuno con un disco dati stateful. Segui questi passaggi.
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 di dati nel modello di istanza ha il nome del dispositivo
data-disk
ed è configurato per essere creato da un'immagine ext4 vuota, preparata in anticipo, e per essere collegato in modalità lettura/scrittura.Crea un MIG dal modello di istanza e definisci il disco di 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 MIG crea 12 istanze, ognuna con un disco con le seguenti proprietà:
- Un nome del dispositivo,
data-disk
, tratto dal modello di istanza. - Una regola di eliminazione per eliminare il disco di dati quando la VM viene eliminata (a causa dell'eliminazione manuale dell'istanza o della riduzione manuale delle dimensioni del gruppo).
- Una voce nello stato conservato dai criteri
(
preservedStateFromPolicy
) di ogni istanza gestita in modo che il disco di dati venga conservato in caso di riparazione automatica, aggiornamenti e ricreazione dell'istanza.
- Un nome del dispositivo,
Utilizza il metodo
instanceGroupManagers.get
per verificare che il disco di dati sia configurato nella policy 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 notare che la policy stateful dichiara i dischi con il nome del dispositivo
data-disk
come stateful con la regola per eliminare questi dischi al momento dell'eliminazione definitiva dell'istanza.
Impostazione e aggiornamento della configurazione stateful per i dischi in un MIG esistente
Se esegui un'applicazione stateful su un MIG stateless (un MIG senza configurazione stateful), puoi configurare i dischi esistenti definiti nel modello di istanza in modo che siano stateful per tutte le istanze in questo MIG. In questo modo puoi conservare i dischi nelle operazioni di ricreazione, riparazione automatica e aggiornamento dell'istanza e, facoltativamente, nelle operazioni di eliminazione.
Puoi eseguire le seguenti operazioni:
- Aggiungi i dischi definiti nel modello di istanza alla policy stateful di un MIG esistente per dichiararli stateful. In questo modo, i dischi con il nome dispositivo specificato vengono contrassegnati come stateful per tutte le istanze esistenti e future nel MIG.
- Aggiorna il criterio stateful per modificare la configurazione stateful per i dischi.
Il MIG applica la configurazione aggiornata nella policy stateful automaticamente e in modo asincrono a tutte le istanze. Gli aggiornamenti alle configurazioni dei dischi in una policy stateful non causano interruzioni delle VM in esecuzione. Per ulteriori informazioni, consulta Applicazione di aggiornamenti alla policy stateful.
Per un MIG regionale, devi disattivare la ridistribuzione proattiva delle istanze tra zone prima di poter configurare i dischi stateful. Per ulteriori informazioni, vedi in che modo i gruppi di regione gestiscono lo stato conservato.
Console
Nella console Trusted 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 rendere stateful.
- In Stateful, seleziona Sì.
Dal menu a discesa Con l'eliminazione definitiva dell'istanza, seleziona l'azione da eseguire sul disco stateful quando l'istanza VM viene eliminata.
- Scollega disco: (valore predefinito) Il disco non viene mai eliminato, ma viene scollegato all'eliminazione della VM.
Elimina disco: elimina il disco stateful 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.
Quando hai aggiornato la configurazione stateful, fai clic su Fine.
Fai clic su Salva per completare l'aggiornamento.
gcloud
Per specificare quali dischi del modello di istanza devono essere stateful o per aggiornare la configurazione stateful dei dischi per un MIG 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:
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 definisce la gestione prevista per un disco stateful quando viene eliminata un'istanza VM. Le opzioni disponibili sono:never
: (Valore predefinito) Il disco non viene mai eliminato, ma viene scollegato all'eliminazione dell'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 gestita viene eliminata manualmente o quando la dimensione del gruppo viene ridotta.
Se un nome dispositivo specificato è già configurato nella policy stateful, il comando aggiorna la configurazione.
Esempio
Esegui un database con più shard su un MIG denominato
example-database- group
. Ogni VM nel MIG archivia uno shard su un disco aggiuntivo con nome dispositivodata-disk
, definito dal modello di istanza. Il MIG non ha una configurazione stateful e vuoi conservare i dischi di dati in caso di ricreazione, riparazione automatica e aggiornamenti dell'istanza. Vuoi anche proteggere i dischi di dati dall'eliminazione quando viene eliminata una VM.Aggiorna il MIG 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 MIG applica gli aggiornamenti della configurazione della policy stateful automaticamente e in modo asincrono ai dischi di dati per tutte le istanze. I dischi di dati vengono ora conservati in caso di riparazione automatica, aggiornamenti e ricreazione dell'istanza e vengono scollegati in caso di eliminazione dell'istanza perché la regola
auto-delete
è impostata sunever
.Verifica che il disco di dati sia configurato nella policy stateful eseguendo il comando
gcloud compute instance-groups managed describe example-database-group
.
REST
Per specificare quali dischi del modello di istanza devono essere stateful o per aggiornare la configurazione dei dischi stateful per un MIG esistente, configura i dischi nella policy stateful del MIG 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:
PROJECT
: l'ID progetto per la richiesta.ZONE
: la zona in cui si trova il MIG (si applica a un MIG a livello di zona).- Per un MIG a livello di regione, sostituisci
zones/ZONE
conregions/REGION
e specifica la regione del MIG.
- Per un MIG a livello di regione, sostituisci
NAME
: il nome del MIG da aggiornare.DEVICE_NAME
: il nome del dispositivo di un disco specificato nel modello di istanza per il quale vuoi aggiornare la configurazione stateful.DELETE_RULE
: un valore che definisce la gestione prevista per un disco stateful quando viene eliminata un'istanza VM. Le opzioni disponibili sono:never
: (Valore predefinito) Il disco non viene mai eliminato, ma viene scollegato all'eliminazione dell'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 nome del dispositivo specificato è già configurato nella policy stateful, il metodo
patch
aggiorna la configurazione.Esempio
Esegui un database con più shard su un MIG denominato
example-database- group
. Ogni VM nel MIG archivia uno shard su un disco aggiuntivo con nome dispositivodata-disk
, definito dal modello di istanza. Il MIG non ha una configurazione stateful e vuoi conservare i dischi di dati in caso di ricreazione, riparazione automatica e aggiornamenti dell'istanza. Vuoi anche proteggere i dischi di dati dall'eliminazione quando viene eliminata una VM.Applica la patch al MIG 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 MIG applica questa configurazione stateful automaticamente e in modo asincrono ai dischi di dati per tutte le istanze. I dischi di dati verranno conservati in caso di riparazione automatica, aggiornamenti e ricreazione dell'istanza. I dischi di dati verranno scollegati in caso di eliminazione dell'istanza perché la regola
autoDelete
è impostata suNEVER
.Verifica che il disco di dati sia configurato nella policy stateful visualizzando la risorsa
instanceGroupManagers
, restituita dal metodoinstanceGroupManagers.get
.
Dichiarazione di dischi permanenti precedentemente stateful come stateless
Potrebbe essere necessario configurare un disco stateful in modo che venga trattato come stateless. Ad esempio:
- Se riprogetti l'app per spostare lo stato dal disco.
- Se hai configurato il disco come stateful per errore e vuoi ripristinarlo.
Per dichiarare tutti i dischi con un determinato nome dispositivo come stateless, rimuovi la configurazione del disco dalla policy stateful.
Il MIG applica la modifica alla policy stateful automaticamente e in modo asincrono a tutte le istanze. Gli aggiornamenti alla configurazione del disco in una policy stateful non causano interruzioni delle istanze VM in esecuzione.
Per ulteriori informazioni, consulta Applicazione di aggiornamenti alla policy stateful.
Console
Nella console Trusted Cloud , vai alla pagina Gruppi di istanze.
Fai clic sul nome del gruppo di istanze da cui vuoi rimuovere la configurazione stateful 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 avere apportato le modifiche, fai clic su Salva.
gcloud
Per specificare quali dischi della policy stateful di un MIG rendere 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:
NAME
: il nome del MIG da aggiornare.DEVICE_NAME
: Il nome del dispositivo di un disco da rimuovere dalla policy stateful e da trattare come stateless. Puoi fornire uno o più nomi di dispositivi nell'elenco.
Esempio
Esegui un'applicazione legacy con più nodi su un MIG denominato
example-legacy-group
. Ogni VM nel MIG archivia i dati dell'applicazione su un disco di avvio con il nome dispositivoboot-disk
, che hai configurato come stateful nella policy stateful del MIG. Hai spostato i dati dell'applicazione su un disco aggiuntivo e ora vuoi rendere stateless il disco di avvio per semplificare l'aggiornamento alle nuove immagini.Per rimuovere la configurazione stateful 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 MIG rimuove la configurazione stateful per il nome 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 ricrei o aggiorni le istanze o quando vengono riparate automaticamente, il MIG ricrea i dischi di avvio dall'immagine specificata nel modello di istanza.REST
Per specificare quali dischi della policy stateful di un MIG rendere stateless, rimuovi la configurazione di ciascun disco dalla policy stateful del MIG 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:
PROJECT
: l'ID progetto per la richiesta.ZONE
: la zona in cui si trova il MIG (si applica a un MIG a livello di zona).- Per un MIG a livello di regione, sostituisci
zones/ZONE
conregions/REGION
e specifica la regione del MIG.
- Per un MIG a livello di regione, sostituisci
NAME
: il nome del MIG da aggiornare.DEVICE_NAME
: il nome del dispositivo di un disco che vuoi rimuovere dalla policy stateful. Se fornisci un valorenull
, la configurazione stateful per quel disco viene rimossa. Puoi fornire uno o più nomi di dispositivi da rimuovere.
Esempio
Esegui un'applicazione legacy con più nodi su un MIG denominato
example-legacy-group
. Ogni VM nel MIG memorizza i dati dell'applicazione su un disco di avvio con nome dispositivoboot-disk
, che hai configurato come stateful nella policy stateful del MIG. Hai spostato i dati dell'applicazione su un disco aggiuntivo e ora vuoi rendere stateless il disco di avvio per semplificare l'aggiornamento a nuove immagini.Per rimuovere la configurazione stateful del disco di avvio, applica una 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 MIG rimuove la configurazione stateful per il nome 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 ricrei o aggiorni le istanze o quando vengono riparate automaticamente, il MIG ricrea i dischi di avvio dall'immagine specificata nel modello di istanza.Rimozione di dischi permanenti stateful da un MIG
Potresti dover rimuovere completamente un disco stateful dalle istanze in un MIG, ad esempio se hai riprogettato l'applicazione e spostato lo stato fuori dal disco.
I MIG non consentono la rimozione dei dischi stateful, quindi devi seguire questi passaggi:
- Rimuovi la configurazione stateful del disco dalla policy stateful. In questo modo i dischi con il nome del dispositivo specificato diventano stateless.
- 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.
Configurazione individuale dei dischi permanenti stateful per una VM in un MIG
Configura i dischi permanenti stateful per una VM specifica in un MIG 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 individuale dei dischi permanenti stateful per VM specifiche in un MIG è utile se devi:
- Esegui la migrazione dei workload esistenti (trasferendo i dischi esistenti) da VM autonome a MIG stateful per usufruire della riparazione automatica e di aggiornamenti semplici.
- Ripristina i backup dei dischi, configurati singolarmente per le VM.
- Collega temporaneamente dischi stateful aggiuntivi a una VM specifica per test, debug o copia dei dati.
Aggiunta di dischi stateful esistenti a nuove VM in un MIG
Puoi aggiungere dischi stateful esistenti alle nuove istanze che crei manualmente in un MIG. Questa operazione è utile per eseguire la migrazione di un'applicazione stateful da VM autonome esistenti a un MIG stateful, ad esempio:
- Crea un modello di istanza con una configurazione comune per tutte le istanze VM.
- Scollega i dischi di dati dalle istanze autonome ed elimina queste istanze. Puoi anche scollegare i dischi di avvio se contengono uno stato che deve essere conservato.
- Crea un gruppo di istanze gestite vuoto utilizzando il modello di istanza creato in precedenza.
Crea istanze nel MIG con i nomi appropriati e i dischi associati del passaggio precedente. Il gruppo di istanze gestite risponde alla tua richiesta con le seguenti azioni:
- Crea una VM dal modello di istanza utilizzando il nome dell'istanza fornito.
- Un MIG regionale 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 qualsiasi 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.
Aggiungi dischi stateful esistenti quando crei manualmente istanze specifiche in un MIG utilizzando gcloud CLI o REST. Il MIG 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 a questa 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:
NAME
: il nome del MIG in cui devi creare un'istanza.VM_NAME
: il nome della nuova istanza da creare.ZONE
: la zona in cui si trova il MIG (si applica a un MIG a livello di zona).REGION
: la regione in cui si trova il MIG (si applica a un MIG 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 di zona eprojects/project-id/regions/region/disks/disk-name
per un disco regionale.MODE
: specifica la modalità del disco. Le opzioni supportate sono:ro
: di sola lettura.rw
: (Valore predefinito) Lettura/scrittura.
DELETE_RULE
: un valore che definisce la gestione prevista per un disco stateful quando viene eliminata un'istanza VM. Le opzioni disponibili sono:never
: (Valore predefinito) Il disco non viene mai eliminato, ma viene scollegato all'eliminazione dell'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 dell'istanza.
Esempio
Vuoi la riparazione automatica per un server di database attualmente in esecuzione su una VM autonoma denominata
db-instance
e che attualmente archivia i dati su un disco denominatodb-data-disk-1
.Crea un MIG stateful con riparazione automatica, crea una VM simile all'interno del MIG e collega il disco di dati esistente
db-data-disk-1
alla nuova istanza come disco stateful:- 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 MIG 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 stateful: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 MIG, crea 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.
REST
Per creare una o più istanze in un MIG, 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:
PROJECT_ID
: l'ID progetto per la richiesta.ZONE
: la zona in cui si trova il MIG (si applica a un MIG a livello di zona).- Per un MIG a livello di regione, sostituisci
zones/ZONE
conregions/REGION
e specifica la regione del MIG.
- Per un MIG a livello di regione, sostituisci
NAME
: il nome del MIG in cui creare un'istanza.VM_NAME
: il nome dell'istanza da creare.DEVICE_NAME
: il nome del dispositivo da utilizzare 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 di zona oprojects/project-id/regions/region/disks/disk-name
per un disco regionale.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 descrive la gestione prevista per un disco stateful quando viene eliminata una VM. Le opzioni disponibili sono le seguenti:never
: (Valore predefinito) Il disco non viene mai eliminato, ma viene scollegato all'eliminazione della 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 dell'istanza.
Esempio
Vuoi la riparazione automatica per un server di database attualmente in esecuzione su una VM autonoma denominata
db-instance
e che attualmente archivia i dati su un disco denominatodb-data-disk-1
.Crea un MIG stateful con riparazione automatica, crea un'istanza simile all'interno del MIG e collega il disco di dati esistente
db-data-disk-1
alla nuova VM come disco stateful:- 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 MIG 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 MIG, crea 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, dichiarazione e sostituzione dei dischi stateful singolarmente per le VM in un MIG
Configura i dischi stateful singolarmente per un'istanza gestita aggiungendo o aggiornando una configurazione del disco stateful nella configurazione per istanza associata. Aggiorna quindi l'istanza per applicare la configurazione per istanza alla VM.
La configurazione individuale dei dischi stateful è utile per le seguenti attività:
- Aggiunta di un disco stateful esterno a un MIG a una VM in quel MIG.
- Dichiarazione di un disco precedentemente stateless come stateful per una VM in un MIG.
- Sostituzione di un disco stateful con un disco diverso per una VM in un MIG.
Aggiunta di un disco stateful esterno a un MIG a una VM in quel MIG. Puoi collegare qualsiasi disco esterno a un MIG a un'istanza gestita aggiungendo la configurazione stateful per il disco alla configurazione per istanza associata. Dopo aver applicato la configurazione, il MIG collega automaticamente il disco all'istanza e lo considera stateful.
Dichiarazione di un disco permanente precedentemente stateless come stateful. Puoi dichiarare un disco senza stato precedente, attualmente collegato a una VM, come stateful aggiungendo la configurazione stateful per questo disco, inclusi il nome e l'URI del dispositivo, alla configurazione per istanza associata. Dopo aver applicato la configurazione, il MIG inizia a conservare il disco come stateful.
Sostituzione di un disco stateful con un altro disco. La sostituzione di un disco stateful con un altro può essere utile, ad esempio, se devi accedere a un backup recuperato. Puoi scambiare un disco stateful 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 MIG 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, riavviarla o ricrearla. Lo scambio di un disco di avvio richiede almeno il riavvio della VM.
gcloud
Per configurare i dischi stateful singolarmente per una VM in un MIG, 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
(impostazione predefinita) applica immediatamente le modifiche all'istanza. Se utilizzi--no-update-instance
, le modifiche rimangono non applicate e vengono applicate quando ricrei o aggiorni 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:
NAME
: il nome del gruppo di istanze gestite.VM_NAME
: il nome dell'istanza VM per cui configurare i dischi stateful.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 regionale.Il flag secondario
source=DISK
è facoltativo se il dispositivo è già definito nella configurazione per istanza dell'istanza. Altrimenti, è 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 stateful; il valore rimane invariato in una configurazione esistente.
DELETE_RULE
: un valore che descrive la gestione prevista per un disco stateful quando viene eliminata una VM. Le opzioni disponibili sono le seguenti:never
: (Valore predefinito) Il disco non viene mai eliminato, ma viene scollegato all'eliminazione dell'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 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 dell'istanza.
MINIMAL_ACTION
: esegue almeno l'azione specificata quando all'istanza viene applicato l'aggiornamento della configurazione per 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 arrestare la VM.restart
: arresta la VM e riavviala.replace
: ricrea la VM.
Se omesso, viene utilizzata l'azione meno invasiva richiesta dall'aggiornamento.
Esempio
I dati su un disco stateful 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'istanzadb-instance-1
gestita da un MIG stateful,example-database-mig
. Il disco originaledata-disk-1
è collegato al nome del dispositivodata-disk
con una regola di eliminazione automatica per non eliminare mai il disco.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 queste operazioni:
- 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
- Applica immediatamente l'aggiornamento della configurazione per istanza alla VM
db-instance-1
perché è incluso il flag--update-instance
. Il MIG scollegadata-disk-1
e collegadata-disk-2
con lo stesso nome del dispositivo,data-disk
. - Poiché l'azione minima è impostata su
restart
, il MIG riavvia l'istanzadb-instance-1
per aggiornare la VM, il che aiuta l'applicazione di database a iniziare a utilizzare il nuovo disco.
Terraform
Per configurare i dischi stateful singolarmente per una VM in un MIG, 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 per 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, vedi Comandi Terraform di base.
REST
Per configurare i dischi stateful singolarmente per le VM in un MIG, aggiungi o aggiorna la configurazione dei dischi stateful nelle configurazioni per istanza associate. Aggiorna quindi le istanze per applicare la configurazione.
Se non esistono ancora configurazioni per istanza 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:
PROJECT_ID
: l'ID progetto per la richiesta.ZONE
: la zona in cui si trova il MIG (si applica a un MIG a livello di zona).- Per un MIG a livello di regione, sostituisci
zones/ZONE
conregions/REGION
e specifica la regione del MIG.
- Per un MIG a livello di regione, sostituisci
NAME
: il nome del MIG.VM_NAME
: il nome della VM per cui configurare i dischi stateful.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 regionale.Il campo
"source": "DISK"
è facoltativo se il dispositivo è già definito nella configurazione per istanza dell'istanza. Altrimenti, è 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 è indicatosource
. 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 stateful; il valore rimane invariato in una configurazione esistente.
DELETE_RULE
: (Facoltativo) Un valore che definisce la gestione prevista per un disco stateful quando viene eliminata una VM. Le opzioni disponibili sono le seguenti:- mai: (valore predefinito) Il disco non viene mai eliminato, ma viene scollegato all'eliminazione dell'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 dell'istanza.
FINGERPRINT
: (Facoltativo). L'impronta per la configurazione specificata, se esistente. Utilizzata per il blocco ottimistico. Per visualizzare l'impronta più recente, invia una richiestaget()
per recuperare la risorsa.
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 MIG viene chiesto di ricrearla o aggiornarla. Puoi anche aggiornare selettivamente l'istanza per applicare le modifiche.Esempio
I dati su un disco stateful 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'istanzadb-instance-1
gestita da un MIG stateful,example-database-mig
. Il disco originaledata-disk-1
è collegato al nome del dispositivodata-disk
con una regola di eliminazione automatica per non eliminare mai il disco.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
:- Aggiorna
source
per un disco con nome dispositivodata-disk
dadata-disk-1
(ultima configurazione) adata-disk-2
(nuova configurazione). - Mantiene i parametri
mode
eautoDelete
invariati perché vengono omessi nella richiesta.
L'aggiornamento della configurazione non è stato ancora applicato alla VM
db-instance-1
. Il MIG 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 conservato 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
, consentendo all'applicazione di database di iniziare a utilizzare il nuovo disco.Scollegamento di un disco stateful o dichiarazione che non ha stato per una singola VM
Potresti dover scollegare un disco stateful o configurarlo in modo che venga trattato come senza stato per una singola VM. Ad esempio:
- Se riprogetti l'app per spostare lo stato dal disco.
- Se configuri il disco come stateful per errore e vuoi ripristinarlo.
Scollega un disco stateful o rendilo stateless per una singola VM rimuovendo la configurazione stateful del disco dalla configurazione per istanza associata o eliminando l'intera configurazione per istanza. Quando applichi la modifica:
- 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 MIG lo considera stateless, il che significa che lo ricrea dalla sua origine nel modello di istanza in occasione di successivi eventi di ricreazione, aggiornamento o riparazione automatica delle istanze.
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, vedi Applicazione degli aggiornamenti delle configurazioni per istanza.
gcloud
Per scollegare i dischi stateful o dichiararli stateless singolarmente per una VM in un MIG, rimuovi la configurazione dei dischi stateful 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 del disco stateful 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
(impostazione predefinita) applica immediatamente le modifiche all'istanza. Se utilizzi--no-update-instance
, le modifiche rimangono non applicate e vengono applicate quando ricrei o aggiorni 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:
NAME
: il nome del MIG.VM_NAME
: il nome della VM da cui rimuovere la configurazione stateful.DEVICE_NAME
: Il nome del dispositivo utilizzato per collegare il disco.MINIMAL_ACTION
: esegue almeno l'azione specificata quando la VM viene aggiornata con la relativa configurazione per istanza. Può essere utilizzato solo insieme a--update-instance
. Il valore deve essere uno dei seguenti:none
: nessuna azione.refresh
: applica gli aggiornamenti che è possibile applicare senza arrestare la VM.restart
: arresta la VM e riavviala.replace
: ricrea la VM.
Se omesso, viene utilizzata l'azione meno invasiva richiesta dall'aggiornamento.
Esempio
Esegui un'applicazione legacy su un MIG denominato
example-legacy-group
. Ogni VM nel MIG archivia i dati dell'applicazione su un disco di avvio con il nome del 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 a 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 queste operazioni:
- Rimuove la configurazione per il disco con il nome del dispositivo
boot-disk
dalla configurazione per istanza dinode-1
. - Applica immediatamente l'aggiornamento della configurazione per istanza alla VM
node-1
perché è incluso il flag--update-instance
. Il MIG rimuove il disco di avvio dall'istanza gestitapreservedStateFromConfig
e lo considera stateless, il che significa che il MIG ricrea il disco dalla sua immagine di avvio nel modello di istanza in successivi eventi di ricreazione, aggiornamento o riparazione automatica delle istanze.
REST
Per scollegare i dischi stateful o dichiararli stateless singolarmente per una VM in un MIG, rimuovi la configurazione del disco stateful dalla configurazione per istanza associata o elimina l'intera configurazione per istanza se non contiene altri stati. Aggiorna quindi l'istanza per applicare la configurazione.
Per rimuovere una configurazione stateful del disco 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:
PROJECT_ID
: l'ID progetto per la richiesta.ZONE
: la zona in cui si trova il MIG (si applica a un MIG a livello di zona).- Per un MIG a livello di regione, sostituisci
zones/ZONE
conregions/REGION
e specifica la regione del MIG.
- Per un MIG a livello di regione, sostituisci
NAME
: il nome del MIG.VM_NAME
: il nome della VM da cui rimuovere la configurazione stateful.DEVICE_NAME
: Il nome del dispositivo utilizzato per collegare il disco.FINGERPRINT
: L'impronta per la configurazione specificata, se esistente. Utilizzata per il blocco ottimistico. Per visualizzare l'impronta più recente, invia una richiestaget()
per recuperare la risorsa.
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 automatici in sequenza.Esempio
Esegui un'applicazione legacy su un MIG denominato
example-legacy-group
. Ogni VM nel MIG archivia i dati dell'applicazione su un disco di avvio con il nome del dispositivoboot-disk
. Hai configurato il disco di avvio come stateful nelle configurazioni per istanza del MIG durante la migrazione delle VM autonome nel MIG. 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 a nuove immagini.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 nome dispositivo
boot- disk
dalla configurazione per istanza dinode-1
. L'aggiornamento della configurazione non è stato ancora applicato all'istanza VMnode-1
. L'aggiornamento della configurazione verrà applicato la prossima volta che l'istanza viene ricreata o aggiornata.Per applicare l'aggiornamento della configurazione per istanza all'istanza VM
node-1
, chiama ilinstanceGroupManagers.applyUpdatesToInstances
metodo 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 MIG rimuove il disco di avvio da
preservedStateFromConfig
per l'istanzanode-1
e tratta il disco come stateless. ovvero il MIG ricrea il disco dalla relativa immagine di avvio nel modello di istanza in occasione di successivi eventi di ricreazione, aggiornamento o riparazione automatica delle istanze.
Feedback
Vogliamo conoscere i tuoi casi d'uso, le tue sfide e i tuoi feedback sui MIG stateful. Condividi il tuo feedback con il nostro team all'indirizzo mig-discuss@google.com.
Passaggi successivi
- Configura i metadati stateful per le VM in un MIG.
- Scopri di più su come applicare, visualizzare e rimuovere la configurazione stateful.
- Visualizza le informazioni su un MIG specifico e sulle relative istanze gestite, inclusi stato e proprietà delle VM.
- Scopri di più sui MIG e sull'utilizzo delle istanze gestite.
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 2025-08-08 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-08-08 UTC."],[[["Stateful persistent disks in managed instance groups (MIGs) allow for VM autohealing and automated updates while preserving disk data."],["Disks can be configured as stateful for all VMs in a MIG through the stateful policy in the instance template, or individually through per-instance configurations."],["Stateful disks are preserved during VM autohealing, updates, and recreation, but they cannot be recreated from or updated to a new image."],["Boot disks are recommended to remain stateless so that they can be repaired or updated, while stateful disks should be used to preserve data."],["MIGs with stateful configurations have limitations, including not being able to use autoscaling and needing the `RECREATE` method for automated rolling updates."]]],[]] -