Un gruppo di istanze gestite stateful (MIG stateful) conserva lo stato univoco di ogni istanza di macchina virtuale (VM), tra cui il nome della VM, i dischi permanenti collegati, gli indirizzi IP e/o i metadati, in caso di riavvio, ricreazione, ripristino automatico o aggiornamento della macchina.
Questa pagina descrive il funzionamento dei MIG stateful. Consulta la sezione Configurazione dei MIG stateful per scoprire come configurarne uno.
Panoramica del funzionamento dei MIG stateful
Un MIG è considerato stateful se hai creato una configurazione stateful.
Una configurazione stateful si crea impostando una policy stateful non vuota e/o una o più configurazioni per istanza non vuote:
- Una policy stateful definisce gli elementi che vuoi conservare per tutte le istanze del MIG.
- Una configurazione per istanza definisce gli elementi da conservare per un'istanza VM specifica.
La configurazione diventa effettiva dopo che tu o il MIG la applicate:
- Un MIG applica automaticamente la configurazione delle policy stateful alle istanze nuove ed esistenti.
- Quando crei o aggiorni le configurazioni per istanza, puoi scegliere se applicare la nuova configurazione manualmente o automaticamente.
Dopo aver applicato la configurazione stateful (policy stateful e/o configurazioni per istanza), puoi verificarla controllando lo stato conservato di ogni istanza gestita.
Le modifiche successive alle dimensioni o alla configurazione stateful del MIG (ad esempio, la riduzione delle dimensioni del MIG o l'eliminazione o l'abbandono di istanze dal MIG) possono influire sugli stati conservati delle istanze.
Come viene applicata la configurazione stateful alle istanze gestite
La configurazione stateful diventa effettiva dopo che tu o il MIG la applicate. L'applicazione della configurazione stateful alle istanze di un MIG dipende dalla configurazione:
- Policy stateful: il MIG applica automaticamente la configurazione delle policy stateful alle istanze nuove ed esistenti.
- Configurazioni per istanza: quando crei o aggiorni configurazioni per istanza, puoi scegliere se applicare la nuova configurazione manualmente o automaticamente.
Come vengono applicati gli aggiornamenti della policy stateful alle istanze
Quando crei o aggiorni una policy stateful, ad esempio aggiungi o rimuovi un disco stateful, il MIG applica la configurazione della policy stateful a tutte le istanze gestite del gruppo automaticamente e in modo asincrono. Un MIG applica automaticamente la configurazione delle policy stateful alle nuove istanze durante la loro creazione, ad esempio quando viene aumentata la dimensione di un MIG o quando crei manualmente le istanze nel MIG.
Dopo aver applicato la configurazione, puoi vedere l'effetto dell'aggiornamento nello stato conservato dalla policy di ogni istanza gestita.
Gli aggiornamenti a una policy stateful non interrompono le VM in esecuzione.
Quando aggiorni una policy stateful per aggiungere un disco stateful, il MIG aggiorna ogni
risorsa VM,
modificando il valore del flag autoDelete
del disco
(instances.disks[].autoDelete
):
- Il MIG imposta
autoDelete
suFALSE
per i dischi configurati come stateful. In questo modo si impedisce che il disco venga eliminato durante la ricreazione dell'istanza tramite ripristino automatico, aggiornamento o ricreazione manuale. - Il MIG imposta
autoDelete
in modo che corrisponda alla configurazione del template di istanza (instanceTemplates.disks[].autoDelete
) per tutti i dischi che devono essere stateless.
La modifica del valore del flag autoDelete
non interrompe una VM in esecuzione.
Come vengono applicati gli aggiornamenti della configurazione per istanza alle istanze
Quando crei o aggiorni una configurazione per istanza, puoi scegliere se applicare la nuova configurazione manualmente o automaticamente. Per saperne di più, consulta la sezione Applicazione di una configurazione stateful a partire da configurazioni per istanza.
La tabella seguente mostra i livelli di interruzione richiesti per applicare diversi aggiornamenti di configurazione per istanza a una VM:
Aggiornamento della configurazione per istanza | Interruzione della VM richiesta per l'applicazione |
---|---|
Configura un disco, definito dal template di istanza, in modo che sia stateful (aggiunto alla configurazione per istanza) | AGGIORNA |
Configura un disco, definito dal template di istanza, in modo che sia stateless (rimosso dalla configurazione per istanza) | AGGIORNA |
Aggiungi un disco, non definito dal template di istanza, e collegalo alla VM | AGGIORNA |
Rimuovi un disco, non definito dal template di istanza, e scollegalo dalla VM | AGGIORNA |
Aggiungi una coppia chiave-valore dei metadati | AGGIORNA |
Rimuovi una coppia chiave-valore dei metadati | AGGIORNA |
Aggiungi un disco di avvio esterno, non creato dal template di istanza, e collegalo alla VM | SOSTITUISCI |
Rimuovi un disco di avvio esterno, non creato dal template di istanza, scollegalo dalla VM e crea un disco di avvio dal template di istanza | SOSTITUISCI |
Imposta un indirizzo IP interno | SOSTITUISCI |
Rimuovi un indirizzo IP interno | SOSTITUISCI |
Quando viene applicata una configurazione per istanza aggiornata alla VM corrispondente, il MIG esegue le seguenti azioni a seconda degli elementi stateful aggiornati:
- Aggiunge (o rimuove) dischi, indirizzi IP o metadati allo stato conservato dalla configurazione nell'istanza gestita corrispondente.
- Collega (o scollega) alla VM i dischi non definiti dal template di istanza.
- Imposta (o rimuove) coppie chiave-valore dei metadati specifiche per la VM.
- Assegna (o rimuove) gli indirizzi IP specificati all'istanza VM.
Dopo aver applicato una configurazione per istanza a una VM gestita corrispondente, puoi vedere l'effetto dell'aggiornamento nello stato conservato dalla configurazione dell'istanza.
Stato conservato di un'istanza gestita
Quando viene applicato, il MIG traduce il template di istanza e la configurazione stateful in uno "stato conservato" per ogni istanza gestita.
Puoi visualizzare lo stato conservato ispezionando un'istanza gestita.
Il MIG gestisce automaticamente gli stati conservati e li applica in automatico e in modo asincrono a ogni istanza VM effettiva corrispondente nel MIG.
Lo stato conservato descrive quali singoli elementi (dischi permanenti, indirizzi IP, metadati) sono stateful per una determinata istanza:
Lo stato conservato generato in base a una policy stateful viene archiviato separatamente rispetto allo stato conservato generato in base a una configurazione per istanza. Il MIG li combina entrambi durante la ricreazione di una VM, dando la priorità allo stato conservato da una configurazione per istanza.
Stato conservato in base alla policy stateful
Una policy stateful specifica gli elementi presenti in tutte le istanze e definiti nel template di istanza del MIG da conservare singolarmente per ogni istanza VM in un MIG.
Una volta applicata, il MIG traduce la policy stateful in
stati conservati specifici per l'istanza
(managedInstances[].preservedStateFromPolicy
). Il MIG gestisce
automaticamente gli stati conservati.
L'esempio seguente mostra un MIG con due istanze VM che utilizzano un disco stateful definito in una policy stateful applicata a ogni istanza. In questo esempio non sono presenti configurazioni per istanza.
La figura precedente mostra un MIG con due istanze:
- Il template di istanza definisce un disco di avvio con nome dispositivo
boot-disk
, e un disco con nome di dispositivodata-disk
per tutte le istanze nel MIG. - La policy stateful dichiara
data-disk
come stateful. Il disco di avvio rimane stateless. Tieni presente che il disco con il nome del dispositivodata-disk
deve essere e viene definito dal template di istanza. - Dopo che viene applicata la configurazione, il MIG traduce la policy stateful in
stati conservati specifici per ogni istanza gestita. Gli stati
conservati chiedono al MIG di conservare il disco
data-disk-1
per l'istanza VMnode-1
e il discodata-disk-2
per l'istanzanode-2
, in quanto per entrambi i dischi è configurato il nome del dispositivodata-disk
nella policy stateful. - Questo esempio non ha configurazioni per istanza.
Stato conservato in base alla configurazione per istanza
Una configurazione per istanza specifica gli elementi che devono essere conservati per una determinata VM. Questi elementi non devono essere definiti nel template di istanza del MIG.
Se applicato, il MIG traduce ogni configurazione per istanza in uno stato
conservato (preservedStateFromConfig
) per l'istanza corrispondente.
L'esempio seguente mostra un MIG con due istanze VM per le quali i metadati e i dischi stateful sono definiti nelle configurazioni per istanza (PIC) per ogni istanza. In questo esempio non è presente alcuna policy stateful.
Nella figura precedente:
- Il template di istanza definisce un disco di avvio con il nome del dispositivo
boot-disk
per tutte le istanze del MIG. Il disco di avvio è stateless per tutte le VM nel MIG. - Le configurazioni per istanza definiscono gli stati da conservare per due istanze nel
MIG:
node-1
enode-2
.- per l'istanza
node-1
, la configurazione per istanza definisce un discomy-legacy-1
con il nome di dispositivolegacy-disk
e i metadatinode-id:xyz273
- per l'istanza
node-2
, la configurazione per istanza definisce un discomy-logs-1
con il nome di dispositivologs-disk
e i metadatinode-id:pqr851
- per l'istanza
- Dopo l'applicazione della configurazione, il MIG traduce automaticamente
le configurazioni per istanza in stati conservati per ogni istanza gestita. Gli stati conservati ordinano al MIG di collegare e conservare quanto segue:
- disco permanente
my-legacy-1
e metadatinode-id:xyz273
per la VMnode-1
- disco permanente
my-logs-1
e metadatinode-id:pqr851
per la VMnode-2
- disco permanente
- Questo esempio non ha policy stateful.
Tieni presente che i dischi e i metadati nello stato conservato delle configurazioni per istanza non sono definiti dal template di istanza in questo esempio, ma solo dalle configurazioni per istanza. Questo perché la configurazione indicata in una configurazione per istanza è specifica per una determinata VM, il che significa che non deve essere presente nel template di istanza.
Le configurazioni per istanza hanno la priorità sulla policy stateful e sul template di istanza
In un MIG puoi configurare sia una policy stateful sia una o più configurazioni per istanza. Ad esempio, in una policy stateful puoi definire dischi stateful presenti in tutte le istanze e, nelle configurazioni per istanza, puoi definire metadati specifici per istanza.
La configurazione per istanza di un'istanza gestita ha la priorità sulla configurazione in conflitto nel template di istanza o in una policy stateful.
Se applichi una configurazione per istanza per aggiungere un disco o un'interfaccia di rete
che è già definita in una policy stateful, il MIG memorizza la configurazione stateful per quel disco o quell'interfaccia di rete nello stato conservato
dell'istanza gestita dalla configurazione per istanza (preservedStateFromConfig
) e
rimuove le voci in conflitto dal suo
stato conservato dalla policy
(preservedStateFromPolicy). Il MIG deve
aggiornare
la VM se il nuovo stato conservato è diverso da quello precedente. L'aggiornamento
potrebbe comportare la modifica dei metadati, dell'indirizzo IP esterno o lo scambio
del disco, per cui viene scollegato il disco dall'ultima configurazione dello stato conservato e si collega
il disco specificato alla nuova configurazione dello stato conservato.
Nell'esempio seguente, la configurazione per istanza per l'istanza VM node-1
ridefinisce:
- lo stato conservato per il disco con nome di dispositivo
logs-disk
, originariamente definito nella policy stateful - il valore per la chiave dei metadati
logmonth
, originariamente definito nel template di istanza.
Nella figura precedente:
- Il template di istanza definisce:
- Tre dischi per tutte le istanze del MIG, con nomi di dispositivo
boot-disk
,data-disk
,logs-disk
. - Metadati comuni a tutte le istanze:
logmonth:jan
.
- Tre dischi per tutte le istanze del MIG, con nomi di dispositivo
- La policy stateful dichiara che i dischi con i nomi di dispositivi
data-disk
elogs-disk
sono stateful; il disco di avvio rimane stateless. - Una configurazione per istanza per l'istanza
node-1
ridefinisce:- Configurazione stateful per un disco con nome di dispositivo
logs-disk
: indica al MIG di collegare il discopd-logs-feb
anode-1
sotto il nome di dispositivologs-disk
. - Metadati, definiti nel template di istanza, con la coppia chiave-valore
logmonth:jan
: indica al MIG di impostare il valorelogmonth:feb
sunode-1
.
- Configurazione stateful per un disco con nome di dispositivo
- Dopo aver applicato
la configurazione, il MIG traduce automaticamente la
policy stateful e la configurazione per istanza in uno stato conservato
specifico per l'istanza, archiviato nell'istanza gestita.
- Lo stato conservato dalla policy indica al MIG di conservare il
disco
data-disk-1
per la VMnode-1
. Tieni presente che lo stato conservato dalla policy non include la configurazione stateful per il disco con il nome di dispositivologs-disk
perché questa configurazione viene ignorata dalla configurazione perlogs-disk
nella configurazione per istanza. - Lo stato conservato dalla configurazione indica al MIG di collegare e
conservare il disco permanente
logs-disk
e di impostare e conservare i metadatilogmonth:feb
per l'istanza VMnode-1
. Tieni presente che lo stato conservato dalla configurazione sostituisce la configurazione perlogs-disk
dalla policy stateful e i metadatilogmonth:jan
dal template di istanza.
- Lo stato conservato dalla policy indica al MIG di conservare il
disco
In che modo la rimozione di una risorsa da una policy stateful influisce sullo stato conservato
Se rimuovi una configurazione della risorsa dalla policy stateful, il MIG
rimuove in automatico il
preservedStateFromPolicy
corrispondente per
tutte le istanze gestite. Le risorse di calcolo rimangono collegate alle istanze,
ma non sono più stateful.
Nell'esempio seguente, la rimozione di un disco dalla policy stateful ne comporta la rimozione dagli stati conservati dalla policy in tutte le VM gestite. I dischi rimangono collegati alle VM, ma non sono più stateful e potrebbero essere eliminati e ricreati alla successiva ricreazione della VM.
Se lo stesso elemento, ad esempio un disco permanente stateful, è presente sia nella policy stateful sia in una configurazione per istanza e rimuovi la relativa configurazione stateful solo dalla policy stateful, il MIG non lo rimuove dalla configurazione per istanza. Per la VM corrispondente, la risorsa configurata rimane stateful.
Nel seguente esempio, la rimozione del disco dalla policy stateful non comporta la rimozione del disco dalla configurazione per istanza. Il disco rimane stateful perché fa ancora parte dello stato conservato dalla configurazione.
In che modo la rimozione di elementi dalle configurazioni per istanza influisce sullo stato conservato
Se rimuovi la configurazione stateful da una configurazione per istanza e applichi
la modifica, il MIG rimuove automaticamente la configurazione stateful dallo
stato conservato dalla configurazione (preservedStateFromConfig
) nell'istanza
gestita corrispondente. Le risorse di calcolo che non fanno più parte di alcuno stato
conservato diventano stateless.
In che modo la rimozione della configurazione dei dischi stateful dalle configurazioni per istanza influisce sullo stato conservato
Se rimuovi un disco stateful da una configurazione per istanza e applichi la modifica all'istanza VM associata, il MIG esegue le seguenti operazioni:
- La configurazione del disco viene rimossa dallo stato conservato dalla configurazione dell'istanza.
- Se un disco con lo stesso nome di dispositivo è definito nel template di istanza, ma non è configurato in una policy stateful, il disco rimane collegato alla VM in questione. Tuttavia, il disco diventa stateless per la VM indicata e potrebbe essere ricreato in base alla configurazione del template di istanza alla successiva ricreazione, ripristino automatico o evento di aggiornamento della VM.
- Se nel template di istanza non è definito un disco con lo stesso nome di dispositivo, viene scollegato in automatico dalla VM immediatamente dopo che viene applicata alla VM associata la configurazione per istanza aggiornata, indipendentemente dalla configurazione di eliminazione automatica.
- Se un disco con lo stesso nome di dispositivo è configurato in una policy stateful, la relativa configurazione viene tradotta nello stato conservato dalla policy per suddetta istanza gestita e il disco rimane stateful.
Nell'esempio seguente, la rimozione di un disco blu e di uno verde dalla configurazione per istanza di node-1
comporta la rimozione di entrambi i dischi dallo stato conservato dell'istanza
gestita node-1
dalla configurazione.
- Il disco blu rimane collegato all'istanza VM
node-1
, ma ora è stateless e può essere ricreato alla successiva ricreazione della VM in base alla configurazione del template di istanza. - Il disco verde è scollegato dall'istanza VM
node-1
perché il template di istanza non definisce un disco con lo stesso nome del dispositivo.
In che modo la rimozione dei metadati stateful dalle configurazioni per istanza influisce sullo stato conservato
La rimozione dei metadati stateful da una configurazione per istanza e l'applicazione della modifica fanno sì che il MIG rimuova immediatamente i metadati stateful dallo stato conservato dell'istanza gestita corrispondente:
- Se hai definito i metadati con la stessa chiave nel template di istanza, il MIG applica immediatamente il valore del template all'istanza.
- Se i metadati con la stessa chiave non sono definiti nel template di istanza, il MIG rimuove immediatamente la coppia chiave-valore dall'istanza.
Nell'esempio seguente, la rimozione dei metadati mode:dev
e id:xyz273
dalla configurazione per istanza di node-1
comporta la rimozione di entrambe le coppie
chiave-valore dallo stato conservato dell'istanza gestita node-1
dalla configurazione.
mode:dev
viene sostituito damode:test
del template di istanza nella VM.id:xyz273
viene rimosso immediatamente dalla VM perché il template di istanza non contiene metadati con la stessa chiaveid
con cui sostituirlo.
In che modo la rimozione della configurazione IP stateful dalle configurazioni per istanza influisce sullo stato conservato
La rimozione della configurazione IP interno dalla configurazione per istanza rende stateless l'indirizzo IP della VM. Non vengono apportate modifiche automatiche a questa VM, ma l'indirizzo IP può cambiare dopo la sua ricreazione, aggiornamento o ripristino automatico.
Ripristino della policy stateful
Se rimuovi la configurazione stateful di una risorsa da una configurazione per istanza e hai configurato la stessa risorsa nella policy stateful, la risorsa rimane stateful nel rispetto della policy stateful.
Il MIG rimuove automaticamente la configurazione stateful dell'elemento da
preservedStateFromConfig
e la aggiunge a
preservedStateFromPolicy
per l'istanza gestita corrispondente.
Nell'esempio seguente, la rimozione di un disco dalla configurazione per istanza di node-1
non comporta la rimozione del disco dalla policy stateful. Il disco
rimane stateful in base alla policy stateful:
- Il MIG rimuove automaticamente il disco dal
preserveStateFromConfig
per l'istanza gestitanode-1
perché il disco non fa più parte della configurazione per istanza. - Il MIG aggiunge automaticamente il disco al
preserveStateFromPolicy
per l'istanza gestitanode-1
perché la configurazione delle policy stateful è ancora in vigore e non è più in conflitto con la configurazione per istanza dinode-1
.
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
- Scopri in che modo configurazioni e azioni dei MIG diverse influiscono sullo stato conservato.
- Per informazioni su come supportare i workload stateful conservando i nomi delle istanze, i dischi permanenti e i metadati nelle istanze gestite, consulta Configurazione di MIG stateful.
- Scopri di più su quando utilizzare i MIG stateful.
- Scopri come eseguire la migrazione di un workload esistente a un MIG stateful.
- Scopri di più sui MIG.
- Utilizza le istanze gestite.