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 dati in un'istanza Memorystore for Redis o esportarli. L'utilizzo del formato RDB nativo impedisce il lock-in e semplifica notevolmente lo spostamento dei dati all'interno di Google Cloud o al di fuori di Google Cloud. L'importazione e l'esportazione utilizzano i bucket Cloud Storage per archiviare i file RDB.
Il comportamento di un'istanza Memorystore for Redis durante l'esportazione è molto simile
al comando BGSAVE in Redis open source. Memorystore for Redis esegue l'importazione
copiando il file RDB nella directory dei dati dell'istanza.
Per istruzioni su come importare ed esportare i file RDB, vedi Importazione di dati in un'istanza Redis ed Esportazione di dati da un'istanza Redis.
Funzionamento della funzionalità di importazione
Per prestazioni ottimali, devi importare dai bucket Cloud Storage che si trovano nella stessa regione dell'istanza Redis.
L'istanza Redis non è disponibile durante un'operazione di importazione. La tua istanza diventa disponibile al termine dell'operazione di importazione.
Se un'importazione ha esito positivo, 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 cancellati. Puoi riprovare l'importazione utilizzando lo stesso file RDB oppure puoi utilizzare 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 ripristino 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 solo backup da versioni Redis precedenti. Un'istanza che esegue Redis 5.0 può importare un file RDB esportato da Redis 4.0, ma un'istanza che esegue Redis 4.0 non può importare un file RDB da Redis 5.0.
Esportare il comportamento delle funzionalità
Puoi leggere e scrivere dati nella tua istanza Redis durante un'operazione di esportazione; tuttavia, non puoi eseguire operazioni di amministrazione come scalabilità, aggiornamento o configurazione dell'istanza.
L'istanza potrebbe registrare una maggiore latenza durante l'esportazione.
Per prestazioni ottimali, devi esportare i backup RDB nei bucket Cloud Storage che si trovano nella stessa regione dell'istanza Redis.
Durante un'esportazione, il file RDB viene salvato in un bucket Cloud Storage a tua scelta.
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 in fase di scrittura nel bucket Cloud Storage e libera la memoria utilizzata dal processo
BGSAVE.
- L'annullamento di un'esportazione elimina il file RDB in fase di scrittura nel bucket Cloud Storage e libera la memoria utilizzata dal processo
Un'esportazione può sovrascrivere un file esistente con lo stesso nome senza ulteriori autorizzazioni quando si utilizza la console Google Cloud . Per esportare un file esistente con
gcloud, l'account utente deve disporre dell'autorizzazionestorage.objects.delete.
Esportazione in condizioni di carico di scrittura elevato
Se esegui un'esportazione durante un periodo di carico di scrittura elevato, l'utilizzo della memoria dell'istanza può aumentare fino a due volte, causando l'esito negativo dell'operazione di esportazione. Devi eseguire le operazioni di esportazione durante i periodi di bassa scrittura. Per monitorare la quantità di dati Redis archiviati nella tua istanza, puoi creare una dashboard per monitorare l'utilizzo della memoria e monitorare le metriche di utilizzo della memoria dell'istanza con Cloud Monitoring.
L'esportazione di Memorystore for Redis utilizza la funzionalità BGSAVE di Redis per acquisire uno snapshot dei dati in un'istanza. Durante l'esecuzione di BGSAVE, Redis crea un nuovo processo figlio per acquisire lo snapshot. Redis utilizza la tecnica copy-on-write
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 scritture elevate, nel peggiore dei casi, l'utilizzo di memoria di Redis raddoppia, causando l'esito negativo dell'operazione di esportazione.
Esportazione durante un'operazione BGSAVE
Non puoi esportare mentre è in esecuzione un'operazione BGSAVE. Livello Standard
Le istanze Memorystore for Redis a volte eseguono operazioni di risincronizzazione completa, o "sincronizzazioni complete", per mantenere sincronizzati il nodo primario e la replica. Una
risincronizzazione completa utilizza il comando BGSAVE, che impedisce
a Memorystore di eseguire un'esportazione.
Per verificare se un'operazione BGSAVE è in corso, visualizza l'endpoint API redis.googleapis.com/persistence/rdb/bgsave_in_progress con Metrics Explorer.
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 i ruoli IAM Amministratore di Cloud Memorystore Redis e Amministratore di Storage all'account utente. 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 restrizioni minime, vedi Concessione di autorizzazioni limitate per importazione ed esportazione.
Durata delle importazioni e delle esportazioni
La durata dell'importazione o dell'esportazione dipende dalle dimensioni dell'istanza e dalle dimensioni del set di dati nell'istanza. 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 da 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 per il 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 questo 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 della descrizione.
Bucket Cloud Storage non supportati
I bucket Cloud Storage con pagamento a carico del richiedente non sono supportati per le importazioni e le esportazioni di Memorystore.
Protezione dei bucket Cloud Storage
Devi assicurarti che il bucket Cloud Storage abbia le giuste limitazioni 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 tuoi bucket Cloud Storage.
Garantire una memoria sufficiente per completare un'esportazione
Per evitare che l'esportazione causi esaurimento della memoria, devi avere il 50% di memoria libera nell'istanza durante il processo di esportazione. A seconda del carico di scrittura, questa operazione potrebbe non essere sempre necessaria, ma avere il 50% di memoria libera garantisce che ci sia spazio libero sufficiente per ospitare l'overhead di copia in scrittura, se molte pagine vengono toccate durante il processo di esportazione.
Per comprendere l'utilizzo attuale della memoria della tua 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 tue istanze. Comprendere i pattern di utilizzo della memoria ti consente di dimensionare correttamente l'istanza durante l'esportazione a intervalli regolari.
Esportazione e importazione in istanze con repliche di lettura
Per tutte le istanze Redis, incluse quelle con repliche di lettura abilitate, i dati vengono esportati dal nodo principale.
Per le istanze con replica abilitata, l'esportazione può aumentare il carico della CPU e l'utilizzo della memoria sul nodo primario.
Quando importi i dati in un'istanza abilitata per la replica di lettura, il riavvio del database principale durante l'operazione di importazione e l'istanza non è disponibile finché i nuovi dati non vengono caricati completamente nel database.
Passaggi successivi
Segui la guida per importare dati in un'istanza Redis.
Segui la guida per esportare dati da un'istanza Redis.