Gestisci gli errori per i dischi replicati in modo sincrono

L'alta disponibilità Hyperdisk Balanced è un'opzione di archiviazione che fornisce la replica dei dati tra due zone di una regione. Puoi utilizzare l'alta disponibilità Hyperdisk Balanced come un componente di base implementa i servizi ad alta disponibilità in Compute Engine.

Questo documento illustra i vari scenari che possono interrompere il funzionamento di: dei dischi replicati in modo sincrono e di come gestire questi scenari.

Prima di iniziare

  • Rivedi le nozioni di base sui dischi replicati in modo sincrono e sul failover. Per ulteriori informazioni, vedi Informazioni sulla replica dei dischi sincroni.
  • Se non l'hai già fatto, configura l'autenticazione. Autenticazione è Il processo di verifica dell'identità per l'accesso ai servizi e alle API di Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione Compute Engine come segue.

    Select the tab for how you plan to use the samples on this page:

    gcloud

    1. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init
    2. Set a default region and zone.
    3. 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, quindi initialize eseguendo questo comando:

        gcloud init

      Per ulteriori informazioni, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per eseguire la migrazione dei dati dei dischi replicati in modo sincrono utilizzando un ripristino della replica posto di blocco chiedi all'amministratore di concederti seguenti ruoli IAM:

  • Per eseguire la migrazione dei dati dei dischi replicati in modo sincrono utilizzando un checkpoint di recupero della replica: Amministratore istanze Compute (v1) (roles/compute.instanceAdmin.v1) del progetto
  • Per visualizzare le metriche del disco replicato (una delle seguenti):

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Questi ruoli predefiniti le autorizzazioni necessarie per eseguire la migrazione dei dati dei dischi replicati in modo sincrono utilizzando un ripristino della replica punto di controllo. Per vedere le autorizzazioni esatte obbligatorie, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per eseguire la migrazione dei dati dei dischi replicati in modo sincrono utilizzando un ripristino della replica sono necessarie le seguenti autorizzazioni checkpoint:

  • Per creare uno snapshot standard dal checkpoint di recupero della replica:
    • compute.snapshots.create del progetto
    • compute.disks.createSnapshot sul disco
  • Per creare un nuovo disco replicato in modo sincrono dallo snapshot standard: compute.disks.create nel progetto in cui vuoi creare il nuovo disco
  • Per eseguire la migrazione delle VM nel nuovo disco:
    • compute.instances.attachDisk sull'istanza VM
    • compute.disks.use permission sul disco appena creato

Potresti anche riuscire a ottenere queste autorizzazioni con ruoli personalizzati e altri ruoli predefiniti.

Scenari di errore

Con i dischi replicati in modo sincrono, quando il dispositivo viene completamente replicato, i dati viene replicato automaticamente in due zone di una regione. È stata confermata una scrittura di nuovo a un'istanza Compute quando è persistente in modo duraturo replicas.

Se la replica in una zona si arresta o è molto lenta per un certo periodo di tempo, lo stato della replica diventa degradato. In questa modalità, la scrittura viene confermata dopo che è persistente in modo durabilità in una replica.

Se e quando Compute Engine rileva che la replica può essere ripresa, scritto in una replica dopo che l'altra replica ha raggiunto lo stato degrado viene sincronizzato con entrambe le zone e il disco torna a uno stato completamente replicato. Questa transizione è completamente automatizzata.

RPO e RTO non sono definiti mentre le prestazioni di un dispositivo sono ridotte. Per ridurre al minimo di dati e disponibilità in caso di guasto di un disco se le prestazioni sono ridotte, ti consigliamo di eseguire il backup della replica usando i dischi permanenti snapshot standard. Puoi recuperare un disco ripristinando lo snapshot.

Errori di zona

Un disco replicato, o disco regionale, viene replicato in modo sincrono su disco di repliche nella zona primaria e secondaria. Gli errori a livello di zona si verificano quando la replica non è più disponibile. Gli errori di zona possono verificarsi nell'account principale per uno dei seguenti motivi:

  • Si è verificata un'interruzione a livello di zona.
  • La replica ha un rallentamento eccessivo nelle operazioni di scrittura.

La tabella seguente illustra i vari scenari di errore a livello di zona che potresti per i dischi replicati in modo sincrono e l'azione consigliata per ogni in questo scenario. In ognuno di questi scenari, si presume che l'infrastruttura la replica sia integra e sincronizzata durante lo stato iniziale.

Stato iniziale del disco Errore Nuovo stato del disco Conseguenze dell'errore Azione da intraprendere

Replica principale: sincronizzata

Replica secondaria: sincronizzata

Stato del disco: completamente replicato

Disco collegato in:zona principale

Zona principale

Replica principale: non sincronizzata o non disponibile

Replica secondaria: sincronizzata

Stato del disco: ridotto

Disco collegato in:zona principale

  • La replica nella zona secondaria rimane integro e ha i dati del disco più recenti.
  • La replica nella zona principale è in stato non integro e la disponibilità di tutti i dati del disco.
Failover del disco mediante collegamento forzato su una VM nella zona secondaria integra.

Replica principale: sincronizzata

Replica secondaria: sincronizzata

Stato del disco: completamente replicato

Disco collegato in:zona principale

Zona secondaria

Replica principale: sincronizzata

Replica secondaria: non sincronizzata o non disponibile

Stato del disco: ridotto

Disco collegato in:zona principale

  • La replica nella zona principale rimane integro e presenta i dati del disco più recenti.
  • La replica nella zona secondaria non è integro e non è la disponibilità di tutti i dati del disco.
Nessuna azione necessaria. Compute Engine inserisce la replica in stato non integro la zona secondaria torna sincronizzata dopo che è di nuovo disponibile.

Replica principale: sincronizzata

Replica secondaria:non è sincronizzata e non è disponibile

Stato del disco: ridotto

Disco collegato in:zona principale

Zona principale

Replica principale: sincronizzata ma non disponibile

Replica secondaria: non è sincronizzata

Stato del disco: non disponibile

Disco collegato in:zona principale

  • Entrambe le repliche a livello di zona non sono disponibili e non possono gestire il traffico. Il disco non è più disponibile.
  • Se l'interruzione del servizio o l'errore di replica a livello di zona è temporaneo, non andranno persi.
  • Se l'interruzione o l'errore di replica a livello di zona è permanente, dati scritti nella replica integra mentre il disco era ridotto è stata persa definitivamente.
Google ti consiglia utilizza uno snapshot standard esistente e crea un nuovo disco per recuperare i dati. Come best practice, esegui il backup della replica i dischi usando snapshot standard.

Replica principale: sincronizzata

Replica secondaria: Aggiornamento ma disponibile

Stato del disco: recupero in corso

Disco collegato in:zona principale

Zona principale

Replica principale: non disponibile

Replica secondaria: Aggiornamento ma disponibile

Stato del disco: non disponibile

Disco collegato in:zona principale

  • Entrambe le repliche a livello di zona non possono gestire il traffico. Il disco diventa non disponibile.
  • Se l'interruzione del servizio o l'errore di replica a livello di zona è temporaneo, Il disco riprende le operazioni quando è disponibile la replica principale di nuovo.
  • Se l'interruzione del servizio o l'errore di replica a livello di zona è permanente, diventa inutilizzabile.

Replica principale: sincronizzata

Replica secondaria:non è sincronizzata, ma disponibile

Stato del disco: ridotto

Disco collegato in:zona principale

Zona principale

Replica principale: non disponibile

Replica secondaria:non è sincronizzata, ma disponibile

Stato del disco: non disponibile

Disco collegato in:zona principale

  • Entrambe le repliche a livello di zona non possono gestire il traffico. Il disco non è più disponibile.
  • Se l'interruzione del servizio o l'errore di replica a livello di zona è temporaneo, Il disco riprende le operazioni quando la replica principale diventa di nuovo disponibile.
  • Se l'interruzione o l'errore di replica a livello di zona è permanente, il disco diventa inutilizzabile.

Errori dell'applicazione e delle VM

In caso di interruzioni causate da un'errata configurazione della VM, un sistema operativo non riuscito o altri errori dell'applicazione, puoi force-attach la replica su un'istanza Compute nella stessa zona della replica integro.

Categoria di errore e (probabilità) Tipi di errori Azione
Errore dell'applicazione (elevato)
  • Le applicazioni non rispondono
  • Errore dovuto ad azioni amministrative dell'applicazione (ad es. upgrade)
  • Errore umano (ad es. parametri come il certificato SSL o gli ACL)
Il piano di controllo dell'applicazione può attivare di failover basato su . soglie del controllo di integrità.
Errore VM (medio)
  • Errore dell'infrastruttura o dell'hardware
  • La VM non risponde a causa della contesa della CPU, livello intermedio interruzione di rete
Le VM sono in genere riparazione automatica. Il piano di controllo dell'applicazione può attivare di failover basato su . soglie del controllo di integrità.
Danneggiamento dell'applicazione (basso-medio) I dati dell'applicazione sono stati danneggiati
(ad esempio, a causa di bug dell'applicazione o un upgrade del sistema operativo non riuscito)
Recupero dell'applicazione:

Esegui il failover di un disco replicato utilizzando force-attach

In caso di errore della zona principale, puoi eseguire il failover Hyperdisk Bilanciato ad alta disponibilità (Anteprima) a un modello in un'altra zona utilizzando un'operazione di associazione forzata.

In caso di errore nella zona principale, potresti non essere in grado di scollegare disco dall'istanza perché quest'ultima non è raggiungibile per eseguire singola operazione di scollegamento. L'opzione Allegato forzato ti consente di allegare Volume di disponibilità elevata con Hyperdisk Balanced 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 la scrittura sul disco replicato per l'istanza originale. L'utilizzo del l'operazione di collegamento forzato ti consente di recuperare in sicurezza l'accesso ai tuoi dati il tuo servizio. Hai anche la possibilità di Arrestare manualmente l'istanza VM dopo aver eseguito l'operazione di associazione forzata.

Per forzare il collegamento di un disco esistente a un'istanza di computing, seleziona una delle le seguenti attività:

Console

  1. Vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Seleziona il progetto.

  3. Fai clic sul nome dell'istanza da modificare.

  4. Nella pagina dei dettagli, fai clic su Modifica.

  5. Nella sezione Dischi aggiuntivi, fai clic su Collega disco aggiuntivo.

  6. Seleziona il disco replicato a livello di regione dall'elenco a discesa.

  7. Per forzare il collegamento del disco, seleziona la casella di controllo Forza il collegamento del disco.

  8. Fai clic su Fine e poi su Salva.

Puoi eseguire gli stessi passaggi per force-attach un disco alla versione originale di Compute Engine dopo la risoluzione dell'errore.

gcloud

In gcloud CLI, utilizza Comando instances attach-disk per collegare il disco di replica a un'istanza Compute. Includi il flag --disk-scope e impostato 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 Compute nella regione
  • DISK_NAME: il nome del disco replicato

Dopo aver force-attach il disco, monta i file system sul disco, se necessario. L'istanza Compute può utilizzare il disco collegato forzatamente di continuare le operazioni di lettura e scrittura sul disco.

REST

Crea una richiesta POST compute.instances.attachDisk, e includi l'URL del disco replicato che hai appena creato. Per collegare il disco alla nuova istanza Compute, la query forceAttach=true è obbligatorio se l'istanza Compute 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 progetto
  • ZONE: la località dell'istanza Compute
  • VM_NAME: il nome dell'istanza Compute in cui aggiungi il disco replicato
  • REGION: la regione in cui hai replicato il disco si trova
  • DISK_NAME: il nome del disco replicato

Dopo aver collegato il disco replicato, monta i file system sui dischi se necessario. L'istanza Compute può utilizzare il disco di replica per continuare operazioni di lettura e scrittura sul disco.

Fai il failover di un disco di avvio in un'istanza secondaria

Puoi avere un solo disco di avvio collegato a un'istanza di computing. In caso di errore su un disco di avvio replicato, utilizza uno dei seguenti metodi, a seconda sulla presenza o meno dell'istanza Compute secondaria:

Usa il checkpoint di recupero della replica per recuperare i dischi replicati

Un checkpoint di recupero della replica rappresenta il punto di coerenza dell'arresto anomalo più recente nel tempo di una replica disponibilità elevata con Hyperdisk Balanced (anteprima). Google Compute Engine consente di creare snapshot standard dal checkpoint di recupero della replica dei dischi regionali con prestazioni ridotte.

In rari casi, quando le prestazioni del disco sono ridotte, la replica a livello di zona sincronizzati con i dati del disco più recenti possono inoltre avere esito negativo prima che la la replica riesce a stare al passo. Non potrai forzare l'associazione del disco a di calcolo delle istanze in una delle zone. Il disco replicato non è più disponibile e devi migrare i dati su un nuovo disco. In questi scenari, se non disponi di snapshot standard esistenti per il disco, potresti comunque riuscire a recuperarlo i dati della replica incompleta utilizzando uno snapshot standard creato dal checkpoint di recupero della replica. Vedi Procedura per la migrazione e il recupero dei dati del disco per la procedura dettagliata.

Procedura per la migrazione e il recupero dei dati del disco

Per recuperare ed eseguire la migrazione dei dati di un disco replicato utilizzando al checkpoint di ripristino della replica, segui questi passaggi:

  1. Crea uno snapshot standard delle disponibilità elevata con Hyperdisk Balanced (Anteprima) dal rispettivo volume il checkpoint di ripristino della replica.

    Puoi creare lo snapshot standard per un disco dal ripristino della replica usando solo gcloud CLI o REST.

    gcloud

    Per creare uno snapshot mediante il checkpoint di recupero della replica, utilizza Comando gcloud compute snapshots create . Includi il flag --source-disk-for-recovery-checkpoint per specifica che vuoi creare lo snapshot utilizzando un ripristino della replica punto di controllo. Escludi --source-disk e Parametri --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_TYPE
    

    Sostituisci quanto segue:

    • DESTINATION_PROJECT_ID: l'ID del progetto in cui vuoi inserire per creare lo snapshot.
    • SNAPSHOT_NAME: un nome per lo snapshot.
    • SOURCE_DISK: il nome o il percorso completo del disco di origine che da 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 componente --source-disk-for-recovery-checkpoint-region flag. Se specifichi solo il nome del disco, devi includere questo flag.

      a creare uno snapshot dal checkpoint di ripristino di un disco di origine in un ambiente in un progetto diverso, devi specificare il percorso completo del disco di origine.

    • SOURCE_PROJECT_ID: l'ID progetto del disco di origine la cui che vuoi usare per creare lo snapshot.
    • SOURCE_REGION: la regione del disco di origine la cui che vuoi usare per creare lo snapshot.
    • SOURCE_DISK_NAME: il nome del disco di origine la cui che vuoi usare per creare lo snapshot.
    • STORAGE_LOCATION: facoltativo: L'area multiregionale di Cloud Storage o Cloud Storageregion in cui archiviare lo snapshot. Puoi specificare una sola località di archiviazione.
      Utilizza la flag --storage-location solo se si desidera eseguire l'override dello spazio di archiviazione predefinito o personalizzato località configurata nelle impostazioni dello snapshot.
    • SNAPSHOT_TYPE: il tipo di snapshot, STANDARD o ARCHIVIO. Se il tipo di snapshot non è specificato, viene restituito un valore STANDARD viene creato uno snapshot.

    Puoi utilizzare il checkpoint di recupero della replica per creare uno snapshot solo sui dischi degradati. Se provi a creare uno snapshot da un ripristino della replica 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 della replica, crea una Richiesta di POST inviata a snapshots.insert. Escludi il parametro sourceDisk e includi invece il sourceDiskForRecoveryCheckpoint per 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 inserire per creare lo snapshot.
    • SNAPSHOT_NAME: un nome per lo snapshot.
    • SOURCE_DISK: il nome o il percorso completo del disco di origine che da 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 componente --source-disk-for-recovery-checkpoint-region flag. Se specifichi solo il nome del disco, devi includere questo flag.

      a creare uno snapshot dal checkpoint di ripristino di un disco di origine in un ambiente in un progetto diverso, devi specificare il percorso completo del disco di origine.

    • SOURCE_PROJECT_ID: l'ID progetto del disco di origine la cui che vuoi usare per creare lo snapshot.
    • SOURCE_REGION: la regione del disco di origine la cui che vuoi usare per creare lo snapshot.
    • SOURCE_DISK_NAME: il nome del disco di origine la cui che vuoi usare per creare lo snapshot.
    • STORAGE_LOCATION: facoltativo: L'area multiregionale di Cloud Storage o Cloud Storageregion in cui archiviare lo snapshot. Puoi specificare una sola località di archiviazione.
      Utilizza la Parametro storageLocations solo se si desidera eseguire l'override dello spazio di archiviazione predefinito o personalizzato località configurata nelle impostazioni dello snapshot.
    • SNAPSHOT_TYPE: il tipo di snapshot, STANDARD o ARCHIVIO. Se il tipo di snapshot non è specificato, viene restituito un valore STANDARD viene creato uno snapshot.

    Puoi utilizzare il checkpoint di recupero della replica per creare uno snapshot solo sui dischi degradati. Se provi a creare uno snapshot da un ripristino della replica 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.
    

  2. Crea un nuovo disco ad alta disponibilità bilanciato con Hyperdisk che utilizza questo senza dover creare uno snapshot. Quando crei il nuovo disco, recuperi tutti i dati dal il checkpoint di recupero della replica più recente ripristinando i dati nel nuovo dal disco dello snapshot. Per la procedura dettagliata, vedi Crea una nuova VM con un disco di avvio replicato.

  3. Esegui la migrazione di tutti i carichi di lavoro delle VM sul disco appena creato e convalida per assicurarti che questi carichi di lavoro VM siano in esecuzione correttamente. Per ulteriori informazioni, consulta Spostare una VM tra zone o regioni.

Dopo aver ripristinato ed eseguito la migrazione dei dati del disco e delle VM nell'ambiente disco ad alta disponibilità con bilanciamento con Hyperdisk, puoi riprendere le tue operazioni.

Determina l'RPO fornito dal checkpoint di recupero della replica

Questa sezione spiega come determinare l'RPO fornito dalla replica più recente checkpoint di recupero di un disponibilità elevata con Hyperdisk Balanced (anteprima).

Le repliche di zona sono completamente sincronizzate

Compute Engine aggiorna il checkpoint di recupero della replica Volume di disponibilità elevata con Hyperdisk Bilanciato ogni 10 minuti circa. Di conseguenza, Quando le repliche a livello di zona sono completamente sincronizzate, l'RPO è di circa 10 minuti.

Le repliche di zona non sono sincronizzate

Non puoi visualizzare i timestamp esatti di creazione e aggiornamento di un recupero della replica punto di controllo. Tuttavia, puoi stimare l'RPO approssimativo che il checkpoint fornisce utilizzando i seguenti dati:

  • Timestamp più recente dello stato del disco completamente replicato: puoi ottenere questo e informazioni utilizzando i dati di Cloud Monitoring per replica_state del disco replicato. Controlla replica_state dei dati delle metriche per la replica non sincronizzata al fine di determinare quando è andata non sincronizzati. Poiché Compute Engine aggiorna il checkpoint del disco ogni 10 minuti, l'aggiornamento più recente del checkpoint potrebbe essere stato 10 minuti prima di questo timestamp.
  • Timestamp operazione di scrittura più recente: puoi ottenere queste informazioni utilizzando i dati di Cloud Monitoring per write_ops_count del disco replicato. Controlla i dati della metrica write_ops_count per per determinare l'operazione di scrittura più recente sul disco.

Dopo aver determinato questi timestamp, utilizza la seguente formula per calcolare l'RPO approssimativo fornito dal checkpoint di ripristino della replica del tuo disco. Se se il valore calcolato è minore di 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 - 10 minutes))

Passaggi successivi