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 |
|
|
|
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_failoversiaTRUE.
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
DONEentro una durata predeterminata di 10 minuti, il backend di Fault Injection Testing esegue query sugli errori dell'operazione, sposta l'esperimento allo statoSTOPPINGe 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.