Riferimento ai guasti di failover di Cloud SQL

Questa pagina descrive cosa succede durante un esperimento con un tipo di errore di failover di Cloud SQL.

Come funziona l'errore di failover di Cloud SQL

L'errore Failover Cloud SQL attiva un failover ad alta affidabilità (HA) per un'istanza Cloud SQL chiamando il metodo failover nell'API Cloud SQL Admin. Lo scopo di questo errore è consentirti di testare il comportamento e la resilienza del servizio quando l'istanza Cloud SQL primaria passa all'istanza di standby in un'altra zona della stessa regione.

La destinazione di questo errore è un'istanza Cloud SQL.

Cosa succede durante l'esecuzione dell'esperimento

Man mano che l'esperimento procede attraverso gli stati, le risorse coinvolte subiscono le seguenti modifiche.

Risorsa

PREPARING

INJECTING

REVERTING

Istanza

Nessuno

Promuovere l'istanza standby ad alta disponibilità

Non applicabile

Convalida del failover ad alta affidabilità e nuovi tentativi

Il backend di Fault Injection Testing esegue controlli di convalida prima di avviare il failover per assicurarsi che l'ambiente sia adatto. Questo processo si verifica durante la fase INJECTING, prima di inviare la chiamata API sqladmin.instances.failover al piano di controllo Cloud SQL:

  • Il sistema verifica che lo stato dell'istanza Cloud SQL sia RUNNABLE. Se l'istanza si trova in un altro stato durante un esperimento in esecuzione, Fault Injection Testing ti invia una notifica.
  • Verifica che la metrica cloudsql.googleapis.com/database/available_for_failover sia TRUE.

Se queste condizioni non vengono soddisfatte, la richiesta di failover viene messa in coda per il nuovo tentativo.

Gestione degli errori

Se il failover è già in corso o si verifica un errore:

  • Durante l'inserimento:se la chiamata di failover viene rifiutata dal piano di controllo Cloud SQL (ad esempio, se l'istanza di standby non è integra), l'esperimento passa allo stato STOPPING.
  • Monitoraggio post-failover:se l'operazione di failover non raggiunge lo stato DONE entro una durata predeterminata di 10 minuti, il backend di Fault Injection Testing esegue query sugli errori dell'operazione, sposta l'esperimento allo stato STOPPING e lo contrassegna come esperimento in cui si è verificato un errore.

Fault Injection Testing si basa sul control plane Cloud SQL come origine di riferimento. Il control plane rifiuta qualsiasi tentativo di failover se l'istanza di standby non è integra. Il test di inserimento di errori utilizza controlli preflight e monitoraggio dello stato per evitare o segnalare questi errori anziché tentare nuovi tentativi automatici dopo un rifiuto.

Failback manuale

Poiché il failover è una modifica con stato, l'interruzione dell'esperimento non esegue automaticamente il failback all'istanza principale originale (come indicato da "Non applicabile" nella fase REVERTING). Il database continuerà a essere eseguito nella zona secondaria.

Per riportare l'istanza nella zona originale al termine dell'esperimento, devi avviare manualmente un altro failover utilizzando la console Google Cloud o l'interfaccia a riga di comando gcloud.