Informazioni sull'importazione e sull'esportazione dei dati

Questa pagina spiega come funzionano le importazioni e le esportazioni in Memorystore per Redis.

La funzionalità di importazione ed esportazione utilizza la funzionalità snapshot RDB nativa di Redis per importare o esportare i dati da un'istanza Memorystore for Redis. L'utilizzo del formato RDB nativo evita il lock-in e semplifica 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 Memorystore for Redis durante l'esportazione è molto simile al comando BGSAVE in Redis open source. Le importazioni di Memorystore for Redis copiano 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.

Per istruzioni su come pianificare le esportazioni RDB utilizzando Cloud Scheduler, consulta Pianificazione delle esportazioni dei database Memorystore for Redis utilizzando Cloud Scheduler.

Comportamento importazione caratteristica

  • Per prestazioni ottimali, devi eseguire l'importazione dai bucket Cloud Storage 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 ha esito positivo, i dati esistenti nell'istanza vengono sovrascritti dai dati nel file RDB.

  • Se per qualsiasi motivo un'importazione non riesce, l'istanza viene messa online, ma i dati potrebbero essere completamente svuotati. Puoi riprovare a eseguire 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 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 del livello base che per quelle del livello Standard.

  • Un'istanza può importare solo backup dalle versioni Redis precedenti. Un'istanza che esegue Redis 5.0 può importare un RDB esportato da Redis 4.0, ma un'istanza che esegue Redis 4.0 non può importare un 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 la scalabilità, l'aggiornamento o la configurazione dell'istanza.

  • La tua istanza potrebbe riscontrare una latenza maggiore 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 di 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.
  • 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 avere l'autorizzazione storage.objects.delete.

Esportazione in un carico di scrittura elevato

Se esegui un'esportazione durante un periodo di scrittura elevata, l'utilizzo della memoria dell'istanza può aumentare fino al doppio, causando la mancata riuscita dell'operazione di esportazione. Dovresti eseguire operazioni di esportazione in periodi con poche scritture. Per monitorare la quantità di dati Redis archiviati nell'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 un'istantanea dei dati in un'istanza. Durante l'esecuzione di BGSAVE, Redis crea un fork di un nuovo processo figlio per acquisire lo snapshot. Redis utilizza copy-on-write durante questo processo.

Ciò significa che il fork iniziale alloca la memoria aggiuntiva minima, ma le pagine modificate dal traffico di scrittura del server Redis vengono duplicate. Di conseguenza, in periodi di scritture elevate, nel peggiore dei casi, l'impronta di memoria di Redis raddoppia, causando la mancata riuscita dell'operazione di esportazione.

Esportazione durante un'operazione BGSALVA

Non puoi esportare mentre è in esecuzione un'operazione BGSAVE. Le istanze di livello Standard di Memorystore per Redis a volte eseguono operazioni di risincronizzazione complete, o "sincronizzazioni complete", per mantenere sincronizzate la replica principale e quella principale. Una risincronizzazione completa utilizza il comando BGSAVE, che impedisce all'archivio memoria di eseguire un'esportazione.

Per verificare se è in corso un'operazione BGSAVE, visualizza l'endpoint API redis.googleapis.com/persistence/rdb/bgsave_in_progress con Metrics Explorer.

Per visualizzare le metriche per una risorsa monitorata utilizzando Metrics Explorer, procedi come segue:

  1. Nel pannello di navigazione della console Google Cloud, seleziona Monitoring e poi  Metrics Explorer:

    Vai a Metrics Explorer

  2. Nell'elemento Metrica, espandi il menu Seleziona una metrica, quindi seleziona un tipo di risorsa e un tipo di metrica. Ad esempio, per tracciare un grafico dell'utilizzo della CPU di una macchina virtuale:
    1. (Facoltativo) Per ridurre le opzioni del menu, inserisci parte del nome della metrica nella barra dei filtri. Per questo esempio, inserisci utilization.
    2. Nel menu Risorse attive, seleziona Istanza VM.
    3. Nel menu Categorie di metriche attive, seleziona Istanza.
    4. Nel menu Metriche attive, seleziona Utilizzo CPU e fai clic su Applica.
  3. Per filtrare le serie temporali visualizzate, utilizza l'elemento Filter.

  4. 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 loro zona, imposta il primo menu su Media e il secondo su zone.

    Tutte le serie temporali vengono visualizzate quando il primo menu dell'elemento Aggregation è impostato su Unaggregated. Le impostazioni predefinite per l'elemento Aggregazione sono determinate dal tipo di metrica 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 i file RDB. La configurazione più semplice delle autorizzazioni consiste nell'applicare i ruoli IAM Amministratore Cloud Memorystore Redis e Amministratore Storage all'account utente. Tuttavia, questa configurazione potrebbe essere inappropriata per alcuni account utente perché concede loro le autorizzazioni per creare, modificare o eliminare risorse a cui non dovrebbero avere accesso. Per istruzioni su come impostare autorizzazioni con restrizioni minime, consulta Concessione di autorizzazioni limitate per l'importazione e l'esportazione.

Durata di importazioni ed esportazioni

La durata dell'importazione o dell'esportazione dipende dalle dimensioni dell'istanza e dal set di dati nell'istanza. A seconda delle dimensioni, le importazioni e le esportazioni possono richiedere da pochi minuti ad alcune ore.

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.

Interruzione di un'importazione o di 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 dell'elenco delle 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 di descrizione.

Bucket Cloud Storage non supportati

I bucket Cloud Storage per i pagamenti a carico del richiedente non sono supportati per le importazioni e le esportazioni di Memorystore.

Protezione dei bucket Cloud Storage

Assicurati che il tuo bucket Cloud Storage abbia le restrizioni corrette per impedire l'accesso non autorizzato al backup Redis RDB che contiene. Per informazioni sulla protezione dei bucket Cloud Storage, consulta le Opzioni di controllo dell'accesso di Cloud Storage.

È necessario avere memoria sufficiente per completare un'esportazione.

Per evitare che l'esportazione causi l'interruzione della memoria, durante il processo di esportazione dovresti avere il 50% di memoria libera nell'istanza. Questa operazione potrebbe non essere sempre necessaria, a seconda del carico di scrittura, ma avere un 50% di memoria libera garantisce che ci sia spazio libero sufficiente per supportare l'overhead di copia su scrittura, se durante il processo di esportazione vengono toccate molte pagine.

Per comprendere l'attuale utilizzo della memoria della tua istanza, configura un avviso che ti avvisi quando la memoria utilizzata raggiunge una soglia personalizzabile. Inoltre, devi configurare una dashboard di monitoraggio della memoria con Cloud Monitoring. Queste misure ti consentono di comprendere i modelli di utilizzo della memoria delle istanze. La comprensione dei pattern di utilizzo della memoria 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 le istanze abilitate per la replica di lettura, i dati vengono esportati dal nodo principale.

Per le istanze abilitate per la replica di lettura, l'esportazione può aumentare il carico della CPU e lo spazio di archiviazione della memoria sul nodo principale.

Quando importi dati in un'istanza abilitata per la replica di lettura, l'istanza principale viene riavviata durante l'operazione di importazione e l'istanza non è disponibile fino a quando i nuovi dati non vengono caricati completamente nel database.

Passaggi successivi