Questa pagina fornisce una panoramica del failover manuale per Memorystore for Redis. A per informazioni su come eseguire un failover, consulta Avvio di un failover manuale.
Che cos'è un failover manuale?
Un'istanza di livello standard di Memorystore for Redis utilizza un nodo di replica per il backup il nodo primario. Si verifica un normale failover quando il nodo primario non integro, causando la designazione della replica come nuova istanza principale. Un manuale il failover è diverso da un normale failover perché lo avvii personalmente. Per maggiori informazioni sul funzionamento della replica di Memorystore for Redis, consulta Alta disponibilità.
Perché avviare un failover manuale?
L'avvio di un failover manuale ti consente di testare la risposta della tua applicazione a un failover. Queste informazioni possono garantire un processo di failover più agevole 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 sull'istanza principale viene incrementato per ogni byte
di dati che devono essere sincronizzati
con le sue repliche. Nella modalità limited-data-loss
, il failover viene interrotto se il delta di offset maggiore tra la primaria e ogni replica è pari o superiore a 30 MB. Se si può tollerare una maggiore perdita di dati
per eseguire il failover in modo massiccio, prova a impostare la modalità di protezione
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 dell'offset tra
l'istanza principale e le repliche prima di iniziare il failover; puoi potenzialmente
perdere più di 30 MB di modifiche ai dati.
Metrica Byte in attesa di replica
La metrica byte in attesa di replica indica quanti byte rimanenti deve copiare la replica prima che venga eseguito il backup completo della principale. Puoi osservare un aumento dei byte in attesa poiché l'istanza principale viene replicata nella replica un failover. Se il failover viene attivato da un errore hardware, potresti notare che la dimensione in byte in attesa di replica è vuota perché il valore dell'offset non è stato ottenuto fino a quando la nuova replica non è stata riparata dall'errore dell'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 progetto e cerca redis.googlapis.com/replication/offset_diff in un file di dati.
Quando eseguire un failover manuale
Failover manuali che utilizzano solo la modalità di protezione predefinita di limited-data-loss
riuscita 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 preservare il maggior numero possibile di dati, interrompi temporaneamente la scrittura dell'applicazione nell'istanza Redis e attendi di eseguire il failover manuale finché la metrica byte in attesa di replica non raggiunge il valore che 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 è integro, un failover manuale per perdita di dati limitata l'operazione non riesce perché è bloccata per minimizzare la perdita di dati.
Se stai eseguendo uno script Lua che viene eseguito a tempo indeterminato, devi usare
force-data-loss
per avviare un failover. In questa situazione L'operazione di failover con perdita di dati limitata non verrà completata correttamente.Se per l'istanza sono in attesa operazioni incomplete, come l'aumento di scalabilità o l'aggiornamento, l'operazione di failover manuale è bloccata. Per eseguire un failover manuale, devi attendere che l'istanza sia nello stato
READY
.
Connessione applicazione client
Quando il nodo primario esegue il failover sulla replica, le connessioni esistenti Memorystore for Redis verrà eliminato. Tuttavia, al momento della riconnessione, l'applicazione viene reindirizzata automaticamente al nuovo nodo principale utilizzando la stessa stringa di connessione o lo stesso indirizzo IP.
Verifica di un failover manuale
Puoi verificare il buon esito di un'operazione di failover manuale con la console Google Cloud o gcloud
.
Verifica della console Google Cloud
Prima di avviare un failover manuale, vai alla pagina dell'elenco delle istanze di Memorystore for Redis e fai clic sul nome dell'istanza.
Quindi, nella scheda Configurazione, accanto a Località principale, visualizza la zona del nodo primario. Prendi nota della zona. Controlla di nuovo questa pagina quando completare il failover manuale per confermare che il nodo primario sia passato da una zona all'altra.
Verifica di Cloud Monitoring
Per visualizzare le metriche per una risorsa monitorata con Esplora metriche, segui questi passaggi:
-
Nella console Google Cloud, vai alla pagina leaderboard Esplora metriche:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.
- Nell'elemento Metrica, espandi il menu Seleziona una metrica,
inserisci
Node role
nella barra dei filtri, poi utilizza i sottomenu per selezionare un tipo di risorsa e una metrica specifici:- Nel menu Risorse attive, seleziona Cloud Memorystore Redis.
- Nel menu Categorie di metriche attive, seleziona replica.
- Nel menu Metriche attive, seleziona Ruolo del nodo.
- Fai clic su Applica.
Per rimuovere le serie temporali dal display, utilizza il metodo Elemento Filtro:
Per combinare le serie temporali, utilizza i menu nella Elemento di 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 zone.
Tutte le serie temporali vengono visualizzate quando è impostato il primo menu dell'elemento Aggregation in Unaggregated (Non aggregato). Le impostazioni predefinite per l'elemento Aggregation sono determinati dal tipo di metrica selezionato.
- Per la quota e altre metriche che registrano un campione al giorno:
- Nel riquadro Visualizza, imposta Tipo di widget su Grafico a barre in pila.
- Imposta il periodo di tempo su almeno una settimana.
Il grafico di Cloud Monitoring rappresenta i nodi principali e di replica con due linee. Quando la linea di un nodo ha un valore pari a zero nel grafico, si tratta della replica nodo. Quando la linea di un nodo ha il valore uno nel grafico, è il nodo primario. Il grafico rappresenta un failover mostrando come le linee passano da uno a rispettivamente zero e zero a uno.
gcloud
verifica
Prima di avviare un failover manuale, usa il comando seguente per verificare zona in cui si trova il tuo nodo principale:
gcloud redis instances describe [INSTANCE_ID] --region=[REGION]
Il tuo nodo principale si trova nella zona contrassegnata come currentLocationId
. Prendi nota delle
zona di destinazione.
Dopo aver completato un failover manuale, puoi verificare che il nodo principale sia passato a una nuova zona eseguendo di nuovo il comando gcloud redis instances describe
e controllando che currentLocationId
abbia modificato le zone.
Inoltre, l'etichetta locationId
indica la zona in cui hai eseguito inizialmente il provisioning del nodo principale. L'etichetta alternativeLocationId
indica la zona in cui il sistema ha eseguito il provisioning del tuo nodo replica in origine. Ogni volta che si verifica un
failover, l'istanza principale e la replica passano da una zona all'altra. Tuttavia,
le zone associate a locationId
e alternativeLocationId
non
subiscono variazioni.