Informazioni sul failover manuale

Questa pagina fornisce una panoramica del failover manuale per Memorystore for Redis. Per scoprire come eseguire un failover, consulta Avvio di un failover manuale.

Che cos'è un failover manuale?

Un'istanza Memorystore for Redis di livello Standard utilizza un nodo di replica per eseguire il backup del nodo primario. Un failover normale si verifica quando il nodo primario diventa non integro, causando la designazione della replica come nuovo nodo primario. Un failover manuale differisce da un failover normale perché lo avvii tu. Per maggiori informazioni sul funzionamento della replica di Memorystore for Redis, consulta Alta affidabilità.

Perché avviare un failover manuale?

L'avvio di un failover manuale ti consente di testare la risposta dell'applicazione a un failover. Queste informazioni possono garantire una procedura di failover più fluida se in un secondo momento si verifica un failover imprevisto.

Modalità di protezione dei dati facoltativa

Le due modalità di protezione dei dati disponibili sono:

  • Modalità limited-data-loss (predefinita).
  • modalità force-data-loss.

Per impostare la modalità di protezione dei dati, utilizza uno dei seguenti comandi:

gcloud redis instances failover INSTANCE_NAME --data-protection-mode=limited-data-loss

o

gcloud redis instances failover INSTANCE_NAME --data-protection-mode=force-data-loss

Come funzionano le modalità di protezione dei dati

La modalità limited-data-loss riduce al minimo la perdita di dati verificando che la differenza di dati tra l'istanza principale e la replica sia inferiore a 30 MB prima di avviare il failover. L'offset sul database primario viene incrementato per ogni byte di dati che devono essere sincronizzati con le relative repliche. Nella modalità limited-data-loss, il failover verrà interrotto se il delta di offset maggiore tra il database primario e ogni replica è pari o superiore a 30 MB. Se puoi tollerare una maggiore perdita di dati e vuoi eseguire il failover in modo aggressivo, prova a impostare la modalità di protezione dei dati su force-data-loss.

La modalità force-data-loss utilizza una catena di strategie di failover per eseguire il failover in modo aggressivo. Non controlla il delta di offset tra la primaria e le repliche prima di avviare il failover; potresti perdere più di 30 MB di modifiche ai dati.

Metrica Byte in attesa di replica

La metrica Byte in attesa di replica indica il numero di byte rimanenti che la replica deve copiare prima che il backup del primario sia completato. Potresti notare un aumento dei byte in attesa durante la replica dall'istanza principale alla replica durante un failover. Se il failover viene attivato da un errore hardware, potresti notare che i byte in attesa di replica sono vuoti, in quanto il valore di offset non può essere ottenuto finché la nuova replica non viene riparata dall'errore host.

Puoi accedere a questa metrica nella console Google Cloud nella pagina dei dettagli dell'istanza. Per visualizzare la pagina dei dettagli dell'istanza, fai clic sull'ID istanza nella pagina Elenco istanze del progetto.

In alternativa, accedi a Metrics Explorer per il tuo progetto e cerca la metrica redis.googlapis.com/replication/offset_diff.

Quando eseguire un failover manuale

I failover manuali che utilizzano solo la modalità di protezione limited-data-loss predefinita vanno a buon fine solo se la metrica byte in attesa di replica è inferiore a 30 MB. Se vuoi eseguire un failover manuale con byte in attesa di replica superiori a 30 MB, utilizza la modalità di protezione force-data-loss.

Se stai cercando di conservare il maggior numero possibile di dati, interrompi temporaneamente la scrittura nell'istanza Redis da parte dell'applicazione e attendi di eseguire il failover manuale finché la metrica byte in attesa di replica non è bassa quanto ritieni accettabile.

Potenziali problemi che bloccano un failover manuale

  • L'esecuzione di un failover manuale su un'istanza di livello base non funziona perché le istanze di livello base non hanno repliche a cui può essere eseguito il failover dell'istanza principale.

  • Se l'istanza Redis non è integra, un failover manuale con perdita di dati limitata non riesce perché è bloccato per la minimizzazione della perdita di dati.

  • Se esegui uno script Lua che viene eseguito a tempo indeterminato, devi utilizzare force-data-loss per avviare un failover. In questa situazione, un'operazione di failover con perdita di dati limitata non verrà completata correttamente.

  • Se la tua istanza ha operazioni incomplete in attesa, come lo scaling o l'aggiornamento, l'operazione di failover manuale viene bloccata. Devi attendere che l'istanza si trovi nello stato READY per eseguire un failover manuale.

Connessione dell'applicazione client

Quando viene eseguito il failover del nodo primario sulla replica, le connessioni esistenti a Memorystore for Redis vengono interrotte. Tuttavia, al momento della riconnessione, l'applicazione viene reindirizzata automaticamente al nuovo nodo primario utilizzando la stessa stringa di connessione o lo stesso indirizzo IP.

Verifica di un failover manuale

Puoi verificare l'esito positivo di un'operazione di failover manuale con la consoleGoogle Cloud o gcloud.

Google Cloud Verifica della console

Prima di avviare un failover manuale, vai alla pagina dell'elenco delle istanze di Memorystore for Redis e fai clic sul nome dell'istanza.

Poi, nella scheda Configurazione, accanto a Località principale, visualizza la zona in cui si trova il nodo principale. Prendi nota della zona. Controlla di nuovo questa pagina quando completi il failover manuale per verificare che il nodo primario abbia cambiato zona.

Verifica di Cloud Monitoring

Per visualizzare le metriche per una risorsa monitorata con Esplora metriche, segui questi passaggi:

  1. Nella console Google Cloud , vai alla pagina  Esplora metriche:

    Vai a Esplora metriche

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.

  2. Nella barra degli strumenti della console Google Cloud , seleziona il tuo progetto Google Cloud . Per le configurazioni di App Hub, seleziona il progetto host di App Hub o il progetto di gestione della cartella app.
  3. Nell'elemento Metrica, espandi il menu Seleziona una metrica, digita Node role nella barra dei filtri e poi utilizza i sottomenu per selezionare un tipo di risorsa e una metrica specifici:
    1. Nel menu Risorse attive, seleziona Cloud Memorystore Redis.
    2. Nel menu Categorie di metriche attive, seleziona replica.
    3. Nel menu Metriche attive, seleziona Ruolo nodo.
    4. Fai clic su Applica.
  4. Per aggiungere filtri, che rimuovono le serie temporali dai risultati della query, utilizza l'elemento Filtro.

  5. Per combinare le serie temporali, utilizza i menu dell'elemento Aggregazione. Ad esempio, per visualizzare l'utilizzo della CPU per le VM, in base alla zona, imposta il primo menu su Media e il secondo menu su zona.

    Tutte le serie temporali vengono visualizzate quando il primo menu dell'elemento Aggregazione è impostato su Nessuna aggregazione. Le impostazioni predefinite per l'elemento Aggregazione sono determinate dal tipo di metrica che hai selezionato.

  6. Per la quota e altre metriche che riportano un campione al giorno, segui questi passaggi:
    1. Nel riquadro Visualizzazione, imposta Tipo di widget su Grafico a barre in pila.
    2. Imposta il periodo di tempo su almeno una settimana.

Il grafico di Cloud Monitoring rappresenta i nodi primari e di replica con due linee. Quando la linea di un nodo ha un valore pari a zero nel grafico, si tratta del nodo di replica. Quando la linea di un nodo ha un valore pari a uno nel grafico, si tratta del nodo principale. Il grafico rappresenta un failover mostrando come le linee passano da uno a zero e da zero a uno, rispettivamente.

gcloud verifica

Prima di avviare un failover manuale, utilizza il seguente comando per verificare in quale zona si trova il nodo primario:

gcloud redis instances describe [INSTANCE_ID] --region=[REGION]

Il nodo principale si trova nella zona etichettata currentLocationId. Prendi nota della zona.

Dopo aver completato un failover manuale, puoi verificare che il nodo primario sia passato a una nuova zona eseguendo di nuovo il comando gcloud redis instances describe e controllando che le zone currentLocationId siano cambiate.

Inoltre, l'etichetta locationId indica la zona in cui hai eseguito il provisioning iniziale del nodo principale. L'etichetta alternativeLocationId indica la zona in cui il sistema ha eseguito il provisioning iniziale del nodo di replica. Ogni volta che si verifica un failover, l'istanza principale e la replica cambiano zona. Tuttavia, le zone associate a locationId e alternativeLocationId non cambiano.