Questo documento spiega i vari scenari che possono interrompere il funzionamento dei dischi regionali e come gestirli.
Prima di iniziare
- Esamina le nozioni di base sui dischi regionali e sul failover. Per saperne di più, vedi Informazioni sulla replica sincrona dei dischi.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione verifica la tua identità per l'accesso ad API e servizi Google Cloud . Per eseguire
codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
Compute Engine selezionando una delle seguenti opzioni:
Seleziona la scheda relativa a come intendi utilizzare i campioni in questa pagina:
gcloud
-
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:
gcloud initSe utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
- Imposta una regione e una zona predefinite.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI.
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Google Cloud .
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per eseguire la migrazione dei dati del disco regionale utilizzando un checkpoint di recupero della replica, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Per eseguire la migrazione dei dati del disco regionale utilizzando un checkpoint di recupero delle repliche:
Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1) sul progetto -
Per visualizzare le metriche dei dischi regionali (una delle seguenti):
-
Monitoring viewer (
roles/monitoring.viewer) sul progetto -
Editor Monitoring (
roles/monitoring.editor) sul progetto
-
Monitoring viewer (
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per eseguire la migrazione dei dati del disco regionale utilizzando un checkpoint di recupero della replica. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per eseguire la migrazione dei dati del disco regionale utilizzando un checkpoint di recupero della replica sono necessarie le seguenti autorizzazioni:
-
Per creare uno snapshot standard dal checkpoint di recupero delle repliche:
-
sul progettocompute.snapshots.create -
sul discocompute.disks.createSnapshot
-
-
Per creare un nuovo disco regionale dallo snapshot standard:
sul progetto in cui vuoi creare il nuovo discocompute.disks.create -
Per eseguire la migrazione delle VM al nuovo disco:
-
sull'istanza VMcompute.instances.attachDisk -
sul disco appena creatocompute.disks.use permission
-
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Limitazioni
Non puoi utilizzare le operazioni force-attach sui dischi in modalità multi-writer.
Scenari di errore
Con i dischi regionali, quando il dispositivo è completamente replicato, i dati vengono replicati automaticamente in due zone di una regione. Una scrittura viene confermata a un'istanza di computing quando viene salvata in modo permanente in entrambe le repliche.
Se la replica in una zona non riesce o è molto lenta per un po' di tempo, lo stato di replica del disco passa a degraded. In questa modalità, la scrittura viene riconosciuta dopo essere stata salvata in modo duraturo in una replica.
Quando Compute Engine rileva che la replica può essere ripresa, i dati scritti in una replica dopo che l'altra replica è entrata nello stato di errore vengono sincronizzati in entrambe le zone e il disco torna a uno stato completamente replicato. Questa transizione è completamente automatizzata.
RPO e RTO non sono definiti quando un dispositivo è in stato di degrado. Per ridurre al minimo la perdita di dati e disponibilità in caso di guasto di un disco che funziona in uno stato di degrado, ti consigliamo di eseguire regolarmente il backup dei dischi regionali utilizzando gli snapshot standard. Puoi recuperare un disco ripristinando lo snapshot.
Errori a livello di zona
Un disco replicato o regionale viene replicato in modo sincrono nelle repliche del disco nelle zone primaria e secondaria. Gli errori a livello di zona si verificano quando una replica zonale non è più disponibile. Gli errori di zona possono verificarsi nella zona principale o in quella secondaria per uno dei seguenti motivi:
- Si è verificata un'interruzione di corrente nella zona.
- La replica presenta una lentezza eccessiva nelle operazioni di scrittura.
La tabella seguente fornisce i vari scenari di errore di zona che potresti riscontrare per i dischi regionali e l'azione consigliata per ogni scenario. In ognuno di questi scenari, si presuppone che la replica zonale principale sia integra e sincronizzata durante lo stato iniziale.
| Stato iniziale del disco | Errore in | Nuovo stato del disco | Conseguenze del mancato rispetto dei requisiti | Azione da intraprendere |
|---|---|---|---|---|
|
Replica primaria: sincronizzata Replica secondaria: sincronizzata Stato disco: completamente replicato Disco collegato in: zona primaria |
Zona principale |
Replica primaria: non sincronizzata o non disponibile Replica secondaria: sincronizzata Stato disco: degradato Disco collegato in: zona primaria |
|
Esegui il failover del disco collegandolo forzatamente a una VM nella zona secondaria integra. |
|
Replica primaria: sincronizzata Replica secondaria: sincronizzata Stato disco: completamente replicato Disco collegato in: zona primaria |
Zona secondaria |
Replica primaria: sincronizzata Replica secondaria: non sincronizzata o non disponibile Stato disco: degradato Disco collegato in: zona primaria |
|
Nessuna azione necessaria. Compute Engine sincronizza di nuovo la replica non integra nella zona secondaria dopo che è di nuovo disponibile. |
|
Replica primaria: sincronizzata Replica secondaria:non sincronizzata e non disponibile Stato disco: degradato Disco collegato in: zona primaria |
Zona principale |
Replica primaria:sincronizzata ma non disponibile Replica secondaria:non sincronizzata Stato del disco:non disponibile Disco collegato in: zona primaria |
|
Google consiglia di utilizzare uno snapshot standard esistente e creare un nuovo disco per recuperare i dati. Come best practice, esegui regolarmente il backup dei dischi regionali utilizzando gli snapshot standard. |
|
Replica primaria: sincronizzata Replica secondaria: Recupero in corso, ma disponibile Stato disco: recupero in corso Disco collegato in: zona primaria |
Zona principale |
Replica primaria:non disponibile Replica secondaria: Recupero in corso, ma disponibile Stato del disco:non disponibile Disco collegato in: zona primaria |
|
|
|
Replica primaria: sincronizzata Replica secondaria: non sincronizzata, ma disponibile Stato disco: degradato Disco collegato in: zona primaria |
Zona principale |
Replica primaria:non disponibile Replica secondaria: non sincronizzata, ma disponibile Stato del disco:non disponibile Disco collegato in: zona primaria |
|
|
Errori di applicazioni e VM
In caso di interruzioni causate da una configurazione errata della VM, da un upgrade del sistema operativo non riuscito o da altri errori dell'applicazione, puoi force-attach il disco regionale a un'istanza di Compute nella stessa zona della replica integra.
| Categoria di errore e (probabilità) | Tipi di errori | Azione |
|---|---|---|
| Errore dell'applicazione (alto) |
|
Il control plane dell'applicazione può attivare il failover in base alle soglie del controllo di integrità. |
| Errore della VM (medio) |
|
Le VM vengono in genere ripristinate automaticamente. Il control plane dell'applicazione può attivare il failover in base alle soglie del controllo di integrità. |
| Corruzione dell'applicazione (bassa-media) |
Danneggiamento dei dati dell'applicazione (ad esempio, a causa di bug dell'applicazione o di un upgrade del sistema operativo non riuscito) |
Recupero dell'applicazione:
|
Esegui il failover di un disco a livello di regione utilizzando force-attach
Nel caso in cui la zona principale non funzioni, puoi eseguire il failover del volume Persistent Disk a livello di regione o Hyperdisk bilanciato ad alta affidabilità a un'istanza di Compute in un'altra zona utilizzando un'operazione di collegamento forzato.
Quando si verifica un errore nella zona primaria, potresti non essere in grado di scollegare il disco dall'istanza perché non è possibile raggiungere l'istanza per eseguire l'operazione di scollegamento. L'associazione forzata consente di collegare un volume Persistent Disk regionale o Hyperdisk bilanciato ad alta affidabilità a un'istanza di computing anche se il volume è collegato a un'altra istanza.
Dopo aver completato l'operazione di collegamento forzato, Compute Engine impedisce all'istanza originale di scrivere sul disco regionale. L'utilizzo dell'operazione force-attach ti consente di recuperare in modo sicuro l'accesso ai tuoi dati e ripristinare il tuo servizio. Hai anche la possibilità di arrestare manualmente l'istanza VM dopo aver eseguito l'operazione di collegamento forzato.
Per forzare il collegamento di un disco esistente a un'istanza di computing, seleziona una delle seguenti attività:
Console
Vai alla pagina Istanze VM.
Seleziona il progetto.
Fai clic sul nome dell'istanza da modificare.
Nella pagina dei dettagli, fai clic su Modifica.
Nella sezione Dischi aggiuntivi, fai clic su Collega disco aggiuntivo.
Seleziona il disco replicato a livello regionale o in modo sincrono dall'elenco a discesa.
Per forzare il collegamento del disco, seleziona la casella di controllo Forza collegamento disco.
Fai clic su Fine e poi su Salva.
Puoi eseguire gli stessi passaggi per force-attach un disco all'istanza di calcolo originale dopo la risoluzione dell'errore.
gcloud
In gcloud CLI, utilizza il
comando instances attach-disk
per collegare il disco di replica a un'istanza di computing. Includi
il flag --disk-scope e impostalo su regional.
gcloud compute instances attach-disk VM_NAME \
--disk DISK_NAME --disk-scope regional \
--force-attach
Sostituisci quanto segue:
VM_NAME: il nome della nuova istanza di computing nella regioneDISK_NAME: il nome del disco a livello di regione
Dopo aver force-attach il disco, monta i file system sul disco,
se necessario. L'istanza di Compute può utilizzare il disco collegato forzatamente per
continuare le operazioni di lettura e scrittura sul disco.
REST
Crea una richiesta POST al
metodo compute.instances.attachDisk
e includi l'URL del disco a livello di regione che hai appena creato.
Per collegare il disco alla nuova istanza di calcolo, è necessario il parametro di query forceAttach=true se l'istanza di calcolo principale ha ancora il disco collegato.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/attachDisk?forceAttach=true
{
"source": "projects/PROJECT_ID/regions/REGION/disks/DISK_NAME"
}
Sostituisci quanto segue:
PROJECT_ID: il tuo ID progettoZONE: la posizione dell'istanza di computingVM_NAME: il nome dell'istanza di computing in cui stai aggiungendo il disco a livello di regioneREGION: la regione in cui si trova il disco regionaleDISK_NAME: il nome del disco a livello di regione
Dopo aver collegato il disco a livello di regione, monta i file system sui dischi se necessario. L'istanza di calcolo può utilizzare il disco di replica per continuare le operazioni di lettura e scrittura sul disco.
Eseguire il failover di un disco di avvio su un'istanza secondaria
Puoi collegare un solo disco di avvio a un'istanza di computing. Quando esegui il failover di un disco di avvio a livello di regione, utilizza uno dei seguenti metodi, a seconda che l'istanza di computing secondaria esista già:
Se non hai una VM di standby attiva, crea una nuova istanza nella zona secondaria. Quando crei la seconda istanza, utilizza il disco regionale per il disco di avvio, come descritto in Crea una nuova VM con un disco di avvio a livello di regione.
Se hai una VM di standby nella zona secondaria, sostituisci il disco di avvio della VM di standby con il disco di avvio a livello di regione, come descritto in Collega un disco di avvio a livello di regione a una VM.
Utilizzare il checkpoint di recupero delle repliche per recuperare i dischi a livello di regione
Un checkpoint di recupero della replica rappresenta il punto nel tempo più recente coerente con gli arresti anomali di un volume Persistent Disk regionale o Hyperdisk bilanciato ad alta affidabilità completamente replicato. Compute Engine ti consente di creare snapshot standard dal checkpoint di recupero delle repliche per i dischi regionali con prestazioni ridotte.
In rari scenari, quando il disco è danneggiato, anche la replica a livello di zona sincronizzata con i dati più recenti del disco può non riuscire prima che la replica non sincronizzata si aggiorni. Non potrai forzare il collegamento del disco alle istanze di calcolo in nessuna delle due zone. Il disco replicato non è più disponibile e devi eseguire la migrazione dei dati su un nuovo disco. In questi scenari, se non hai snapshot standard esistenti disponibili per il disco, potresti comunque essere in grado di recuperare i dati del disco dalla replica incompleta utilizzando uno snapshot standard creato dal checkpoint di recupero delle repliche. Per i passaggi dettagliati, consulta Procedura per eseguire la migrazione e il recupero dei dati del disco.
Procedura per eseguire la migrazione e il recupero dei dati del disco
Per recuperare ed eseguire la migrazione dei dati di un disco regionale utilizzando il checkpoint di recupero delle repliche, segui questi passaggi:
Crea uno snapshot standard del volume Persistent Disk regionale o Hyperdisk bilanciato ad alta affidabilità interessato dal problema dal relativo checkpoint di recupero delle repliche.
Puoi creare lo snapshot standard per un disco dal relativo checkpoint di recupero delle repliche solo utilizzando gcloud CLI o REST.
gcloud
Per creare uno snapshot utilizzando il checkpoint di recupero delle repliche, utilizza il comando
gcloud compute snapshots create. Includi il flag--source-disk-for-recovery-checkpointper specificare che vuoi creare lo snapshot utilizzando un checkpoint di recupero delle repliche. Escludi i parametri--source-diske--source-disk-region.gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk-for-recovery-checkpoint=SOURCE_DISK \ --source-disk-for-recovery-checkpoint-region=SOURCE_REGION \ --storage-location=STORAGE_LOCATION \ --snapshot-type=SNAPSHOT_TYPESostituisci quanto segue:
DESTINATION_PROJECT_ID: l'ID del progetto in cui vuoi creare lo snapshot.SNAPSHOT_NAME: un nome per lo snapshot.SOURCE_DISK: il nome o il percorso completo del disco di origine che vuoi utilizzare per creare lo snapshot. Per specificare il percorso completo di un disco di origine, utilizza la seguente sintassi:projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME
Se specifichi il percorso completo del disco di origine, puoi escludere il flag
--source-disk-for-recovery-checkpoint-region. Se specifichi solo il nome del disco, devi includere questo flag.Per creare uno snapshot dal checkpoint di recupero di un disco di origine in un progetto diverso, devi specificare il percorso completo del disco di origine.
SOURCE_PROJECT_ID: l'ID progetto del disco di origine di cui vuoi utilizzare il checkpoint per creare lo snapshot.SOURCE_REGION: la regione del disco di origine di cui vuoi utilizzare il checkpoint per creare lo snapshot.SOURCE_DISK_NAME: il nome del disco di origine di cui vuoi utilizzare il checkpoint per creare lo snapshot.- (Facoltativo)
STORAGE_LOCATION: la multi-regione di Cloud Storage o la regione di Cloud Storage in cui vuoi archiviare lo snapshot. Puoi specificare una sola località di archiviazione.
Utilizza il flag--storage-locationsolo se vuoi sostituire la località di archiviazione predefinita o personalizzata configurata nelle impostazioni degli snapshot. SNAPSHOT_TYPE: il tipo di snapshot, STANDARD o ARCHIVIO. Se non viene specificato un tipo di snapshot, viene creato uno snapshot STANDARD.
Puoi utilizzare il checkpoint di recupero delle repliche per creare uno snapshot solo sui dischi con prestazioni ridotte. Se provi a creare uno snapshot da un checkpoint di recupero delle repliche quando il dispositivo è completamente replicato, viene visualizzato il seguente messaggio di errore:
The device is fully replicated and should not create snapshots out of a recovery checkpoint. Please create regular snapshots instead.
REST
Per creare uno snapshot utilizzando il checkpoint di recupero delle repliche, invia una richiesta
POSTal metodosnapshots.insert. Escludi il parametrosourceDiske includi il parametrosourceDiskForRecoveryCheckpointper specificare che vuoi creare lo snapshot utilizzando il checkpoint.POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots { "name": "SNAPSHOT_NAME", "sourceDiskForRecoveryCheckpoint": "projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME", "storageLocations": "STORAGE_LOCATION", "snapshotType": "SNAPSHOT_TYPE" }Sostituisci quanto segue:
DESTINATION_PROJECT_ID: l'ID del progetto in cui vuoi creare lo snapshot.SNAPSHOT_NAME: un nome per lo snapshot.SOURCE_DISK: il nome o il percorso completo del disco di origine che vuoi utilizzare per creare lo snapshot. Per specificare il percorso completo di un disco di origine, utilizza la seguente sintassi:projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME
Se specifichi il percorso completo del disco di origine, puoi escludere il flag
--source-disk-for-recovery-checkpoint-region. Se specifichi solo il nome del disco, devi includere questo flag.Per creare uno snapshot dal checkpoint di recupero di un disco di origine in un progetto diverso, devi specificare il percorso completo del disco di origine.
SOURCE_PROJECT_ID: l'ID progetto del disco di origine di cui vuoi utilizzare il checkpoint per creare lo snapshot.SOURCE_REGION: la regione del disco di origine di cui vuoi utilizzare il checkpoint per creare lo snapshot.SOURCE_DISK_NAME: il nome del disco di origine di cui vuoi utilizzare il checkpoint per creare lo snapshot.- (Facoltativo)
STORAGE_LOCATION: la multi-regione di Cloud Storage o la regione di Cloud Storage in cui vuoi archiviare lo snapshot. Puoi specificare una sola località di archiviazione.
Utilizza il parametrostorageLocationssolo se vuoi sostituire la località di archiviazione predefinita o personalizzata configurata nelle impostazioni degli snapshot. SNAPSHOT_TYPE: il tipo di snapshot, STANDARD o ARCHIVIO. Se non viene specificato un tipo di snapshot, viene creato uno snapshot STANDARD.
Puoi utilizzare il checkpoint di recupero delle repliche per creare uno snapshot solo sui dischi con prestazioni ridotte. Se provi a creare uno snapshot da un checkpoint di recupero delle repliche quando il dispositivo è completamente replicato, viene visualizzato il seguente messaggio di errore:
The device is fully replicated and should not create snapshots out of a recovery checkpoint. Please create regular snapshots instead.
Crea un nuovo Persistent Disk regionale o un Hyperdisk bilanciato ad alta affidabilità utilizzando questo snapshot. Quando crei il nuovo disco, recuperi tutti i dati dal checkpoint di recupero delle repliche più recente ripristinandoli nel nuovo disco dallo snapshot. Per la procedura dettagliata, vedi Crea una nuova istanza con un disco di avvio a livello di regione.
Esegui la migrazione di tutti i workload VM al disco appena creato e verifica che questi workload VM vengano eseguiti correttamente. Per maggiori informazioni, consulta Sposta una VM tra zone o regioni.
Dopo aver recuperato e migrato i dati del disco e le VM nel disco Persistent Disk regionale o Hyperdisk bilanciato ad alta affidabilità appena creato, puoi riprendere le operazioni.
Determinare l'RPO fornito dal checkpoint di recupero delle repliche
Questa sezione spiega come determinare l'RPO fornito dall'ultimo checkpoint di recupero delle repliche di un volume Persistent Disk regionale o Hyperdisk bilanciato ad alta affidabilità .
Le repliche a livello di zona sono completamente sincronizzate
Compute Engine aggiorna il checkpoint di recupero delle repliche del tuo volume Persistent Disk regionale o Hyperdisk bilanciato ad alta affidabilità circa ogni 15 minuti. Di conseguenza, quando le repliche a livello di zona sono completamente sincronizzate, l'RPO è di circa 15 minuti.
Le repliche a livello di zona non sono sincronizzate
Non puoi visualizzare i timestamp esatti di creazione e aggiornamento di un checkpoint di recupero della replica. Tuttavia, puoi stimare l'RPO approssimativo fornito dall'ultimo checkpoint utilizzando i seguenti dati:
- Timestamp più recente dello stato del disco completamente replicato: puoi ottenere queste
informazioni utilizzando i dati di Cloud Monitoring per la metrica
replica_statedel disco regionale. Controlla i dati della metricareplica_stateper la replica non sincronizzata per determinare quando la replica è stata desincronizzata. Poiché Compute Engine aggiorna il checkpoint del disco ogni 15 minuti, l'aggiornamento più recente del checkpoint potrebbe essere avvenuto circa 15 minuti prima di questo timestamp. - Timestamp dell'ultima operazione di scrittura: puoi ottenere queste informazioni
utilizzando i dati di Cloud Monitoring per la metrica
write_ops_countdel disco regionale. Controlla i dati della metricawrite_ops_countper determinare l'ultima operazione di scrittura per il disco.
Dopo aver determinato questi timestamp, utilizza la seguente formula per calcolare l'RPO approssimativo fornito dal checkpoint di ripristino della replica del disco. Se il valore calcolato è inferiore a zero, l'RPO è effettivamente pari a zero.
Approximate RPO provided by the latest checkpoint =
(Most recent write operation timestamp - (Most recent timestamp of the fully
replicated disk state - 15 minutes))
Passaggi successivi
- Scopri come monitorare gli stati di replica e lo stato di replica dei dischi regionali.
- Scopri come determinare lo stato esatto della replica del disco.
- Scopri come creare uno snapshot di un disco.
- Scopri come creare servizi ad alta affidabilità utilizzando dischi regionali.
- Scopri come creare applicazioni web scalabili e resilienti su Google Cloud.
- Consulta la guida alla pianificazione del disaster recovery.