Questa pagina spiega come funzionano le importazioni e le esportazioni in Memorystore for Redis.
La funzionalità di importazione ed esportazione utilizza la funzionalità di snapshot RDB nativa di Redis per importare o esportare dati da un'istanza Memorystore per Redis. L'uso del formato RDB nativo impedisce il blocco e semplifica notevolmente lo spostamento dei dati all'interno o all'esterno di Google Cloud. L'importazione e l'esportazione utilizzano i bucket Cloud Storage per archiviare i file RDB.
Il comportamento di un'istanza di Memorystore for Redis durante l'esportazione è molto simile al comando BGSAVE
in Redis open source. Memorystore for Redis esegue le importazioni copiando il file RDB nella directory dei dati dell'istanza.
Per istruzioni su come importare ed esportare i file RDB, consulta Importazione di dati in un'istanza Redis ed Esportazione di dati da un'istanza Redis.
Importare il comportamento delle funzionalità
Per prestazioni ottimali, devi eseguire l'importazione dai bucket Cloud Storage situati nella stessa regione dell'istanza Redis.
L'istanza Redis non è disponibile durante un'operazione di importazione. L'istanza diventa disponibile al termine dell'operazione di importazione.
Se un'importazione è riuscita, i dati esistenti nell'istanza vengono sovrascritti dai dati nel file RDB.
Se un'importazione non va a buon fine per qualsiasi motivo, l'istanza viene messa online, ma i dati potrebbero essere completamente svuotati. Puoi riprovare a eseguire l'importazione utilizzando lo stesso file RDB o un altro file RDB per ripristinare i dati.
L'istanza Memorystore for Redis può importare file RDB dalla stessa versione di Redis e da una versione precedente di Redis, ma non può importare file RDB da una versione più recente.
Un'operazione di importazione può essere annullata, ma tieni presente che l'annullamento comporta il recupero dell'istanza con una cache completamente svuotata. Questo vale sia per le istanze di livello base che per quelle di livello standard.
Un'istanza può importare i backup solo dalle versioni precedenti di Redis. Un'istanza che esegue Redis 5.0 può importare un database RDB esportato da Redis 4.0, ma un'istanza che esegue Redis 4.0 non può importare un database RDB da Redis 5.0.
Comportamento della funzionalità di esportazione
Puoi leggere e scrivere dati nell'istanza Redis durante un'operazione di esportazione, ma non puoi eseguire operazioni di amministrazione come l'applicazione della scalabilità, l'aggiornamento o la configurazione dell'istanza.
L'istanza potrebbe registrare una latenza maggiore durante l'esportazione.
Per prestazioni ottimali, devi esportare i backup RDB nei bucket Cloud Storage situati nella stessa regione dell'istanza Redis.
Durante un'esportazione, il file RDB viene salvato in un bucket Cloud Storage scelto da te.
Puoi annullare un'operazione di esportazione in qualsiasi momento. L'annullamento non influisce sui dati o sulla disponibilità di un'istanza.
- L'annullamento di un'esportazione elimina il file RDB che viene scritto nel bucket Cloud Storage e libera la memoria utilizzata dal processo
BGSAVE
.
- L'annullamento di un'esportazione elimina il file RDB che viene scritto nel bucket Cloud Storage e libera la memoria utilizzata dal processo
Un'esportazione può sovrascrivere un file esistente con lo stesso nome senza autorizzazioni aggiuntive quando utilizzi la console Google Cloud. Per eseguire l'esportazione in un file esistente con
gcloud
, l'account utente deve disporre dell'autorizzazionestorage.objects.delete
.
Esportazione con un elevato carico di scrittura
Se esegui un'esportazione durante un periodo di elevato carico di scrittura, l'utilizzo della memoria dell'istanza può aumentare fino al doppio, causando il fallimento dell'operazione di esportazione. Dovresti eseguire le operazioni di esportazione durante i periodi di scrittura ridotta. Per monitorare la quantità di dati Redis archiviati nell'istanza, puoi creare una dashboard per monitorare l'utilizzo della memoria e le metriche relative all'utilizzo della memoria dell'istanza con Cloud Monitoring.
L'esportazione di Memorystore for Redis utilizza la funzionalità BGSAVE
di Redis per acquisire un'istantanea dei dati in un'istanza. Quando esegui BGSAVE
, Redis esegue il fork di un nuovo processo figlio per acquisire l'istantanea. Redis utilizza la copia su scrittura
durante questo processo.
Ciò significa che il fork iniziale alloca una memoria aggiuntiva minima, ma tutte le pagine modificate dal traffico di scrittura del server Redis vengono duplicate. Pertanto, in periodi di scrittura elevata, nel peggiore dei casi, l'impronta di memoria di Redis raddoppia, causando l'errore dell'operazione di esportazione.
Esportazione durante un'operazione BGSAVE
Non puoi eseguire l'esportazione mentre è in esecuzione un'operazione BGSAVE
. A volte le istanze di Memorystore for Redis di livello standard eseguono operazioni di resynchronizzazione completa o "sincronizzazioni complete" per mantenere sincronizzati il principale e la replica. Una resynchronizzazione completa utilizza il comando BGSAVE
, che impedisce a Memorystore di eseguire un'esportazione.
Per verificare se è in corso un'operazione BGSAVE
, visualizza l'endpoint API BGSAVE
con Metrics Explorer metriche.redis.googleapis.com/persistence/rdb/bgsave_in_progress
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 e poi
seleziona un tipo di risorsa e un tipo di metrica. Ad esempio, per tracciare un grafico sull'utilizzo della CPU di una
macchina virtuale, segui questi passaggi:
- (Facoltativo) Per ridurre le opzioni del menu, inserisci parte del nome della metrica nella
barra dei filtri. Per questo esempio, inserisci
utilization
. - Nel menu Risorse attive, seleziona Istanza VM.
- Nel menu Categorie di metriche attive, seleziona Istanza.
- Nel menu Metriche attive, seleziona Utilizzo CPU e poi fai clic su Applica.
- (Facoltativo) Per ridurre le opzioni del menu, inserisci parte del nome della metrica nella
barra dei filtri. Per questo esempio, inserisci
Per filtrare le serie temporali visualizzate, utilizza l'elemento Filtro.
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.
In alternativa, puoi utilizzare i tuoi strumenti API a riga di comando.
Autorizzazioni richieste per l'importazione e l'esportazione
Un utente deve configurare autorizzazioni IAM sufficienti per importare o esportare file RDB. La configurazione delle autorizzazioni più semplice consiste nell'applicare all'account utente i ruoli IAM Amministratore Redis Cloud Memorystore e Amministratore archiviazione. Tuttavia, questa configurazione potrebbe non essere appropriata per alcuni account utente perché concede loro autorizzazioni per creare, modificare o eliminare risorse a cui non dovrebbero avere accesso. Per istruzioni su come impostare autorizzazioni con limitazioni minime, consulta Concessione di autorizzazioni limitate per importazione ed esportazione.
Durata delle importazioni ed esportazioni
La durata dell'importazione o dell'esportazione dipende dalle dimensioni dell'istanza e del set di dati al suo interno. A seconda delle dimensioni, le importazioni e le esportazioni possono richiedere da pochi minuti a qualche ora.
Ad esempio, se importi o esporti un'istanza di 10 GB con 8 GB di memoria utilizzata, l'operazione può richiedere 5 minuti. Se importi o esporti un'istanza da 120 GB con 100 GB di memoria utilizzata, l'operazione può richiedere un'ora.
Interrompere un'importazione o un'esportazione
Per interrompere un'importazione o un'esportazione, consulta le seguenti pagine:
Monitoraggio dell'avanzamento dell'operazione
La stima del tempo di completamento non è disponibile durante l'importazione e l'esportazione. Puoi verificare se l'operazione è in corso controllando la pagina dei dettagli dell'istanza. Per visualizzare la pagina dei dettagli dell'istanza, fai clic sull'ID istanza nella pagina Elenco istanze di Memorystore for Redis.
Puoi anche monitorare l'avanzamento di un'operazione di importazione eseguendo il seguente comando:
gcloud redis instances describe [INSTANCE_ID] --region=[REGION]
Dove:
[INSTANCE_ID]
è l'ID dell'istanza Memorystore for Redis.[REGION]
è la regione in cui si trova l'istanza.
Il comando restituisce state: IMPORTING
o state: READY
come uno dei campi di descrizione.
Bucket Cloud Storage non supportati
I bucket Cloud Storage con pagamento a carico dell'utente non sono supportati per le importazioni e le esportazioni di Memorystore.
Protezione dei bucket Cloud Storage
Assicurati che il bucket Cloud Storage abbia le limitazioni giuste per impedire l'accesso non autorizzato al backup RDB di Redis che contiene. Consulta le opzioni di controllo dell'accesso di Cloud Storage per scoprire come proteggere i bucket di Cloud Storage.
Garantire memoria sufficiente per completare un'esportazione
Per evitare che l'esportazione causi una carenza di memoria, devi disporre del 50% di memoria libera nell'istanza durante il processo di esportazione. Questo potrebbe non essere necessario sempre, a seconda del carico di scrittura, ma avere il 50% di memoria libera garantisce che sia disponibile spazio sufficiente per gestire il sovraccarico della copia su scrittura, se molte pagine vengono toccate durante il processo di esportazione.
Per comprendere l'utilizzo corrente della memoria dell'istanza, configura un avviso per ricevere una notifica quando l'utilizzo della memoria raggiunge una soglia personalizzabile. Inoltre, devi configurare una dashboard di monitoraggio della memoria con Cloud Monitoring. Queste misure ti consentono di comprendere i pattern di utilizzo della memoria delle istanze. La comprensione dei pattern di utilizzo della memoria ti consente di determinare correttamente le dimensioni della tua istanza durante l'esportazione a intervalli regolari.
Esportazione e importazione in istanze con repliche di lettura
Per tutte le istanze Redis, incluse quelle con replica di lettura abilitata, i dati vengono esportati dal nodo principale.
Per le istanze con replica di lettura abilitata, l'esportazione può aumentare il carico della CPU e l'impronta di memoria sul nodo principale.
Quando importi i dati in un'istanza con replica di lettura abilitata, l'istanza principale si riavvia durante l'operazione di importazione e non è disponibile finché i nuovi dati non vengono caricati completamente nel database.
Passaggi successivi
Segui la guida all'importazione di dati in un'istanza Redis.
Segui la guida per l'esportazione di dati da un'istanza Redis.