Informazioni sull'importazione e sull'esportazione dei dati

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

La funzionalità di importazione ed esportazione utilizza la funzionalità nativa RDB snapshot di Redis per importare o esportare dati da un'istanza Memorystore for Redis. L'utilizzo del formato RDB nativo previene i vincoli e semplifica lo spostamento dei dati all'interno di Google Cloud 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. Memorystore for Redis esegue l'importazione copiando il file RDB nella directory dei dati dell'istanza.

Per istruzioni su come importare ed esportare file RDB, consulta 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 dell'elemento di importazione

  • 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 l'importazione ha esito positivo, i dati esistenti nell'istanza vengono sovrascritti dai dati nel file RDB.

  • Se per qualsiasi motivo l'importazione non va a buon fine, l'istanza viene riportata online, ma i dati potrebbero essere stati completamente svuotati. 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 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 del livello base che per quelle del livello Standard.

  • Un'istanza può importare backup solo da versioni precedenti di Redis. 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. Tuttavia, non potrai eseguire operazioni di amministrazione come la scalabilità, l'aggiornamento o la 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 della 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 che viene scritto nel bucket Cloud Storage e libera la memoria utilizzata dal processo BGSAVE.
  • Quando utilizzi la console Google Cloud, un'esportazione può sovrascrivere un file esistente con lo stesso nome senza autorizzazioni aggiuntive. Per esportare in un file esistente con gcloud, l'account utente deve avere l'autorizzazione storage.objects.delete.

Esportazione con carico di scrittura elevato

Se esegui un'esportazione durante un periodo di carico in scrittura elevato, l'utilizzo della memoria dell'istanza può raddoppiare, causando un errore dell'operazione di esportazione. Dovresti eseguire operazioni di esportazione durante i periodi di scarsa scrittura. 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 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 funzionalità copy-on-write durante questo processo.

Ciò significa che il fork iniziale alloca memoria minima in più, 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'ingombro della memoria di Redis raddoppia, causando la mancata riuscita dell'operazione di esportazione.

Esportazione durante un'operazione BGSAVE

Non puoi esportare mentre è in esecuzione un'operazione BGSAVE. A volte le istanze Memorystore for Redis di livello standard eseguono operazioni di risincronizzazione complete, o "sincronizzazioni complete", per mantenere sincronizzate l'istanza principale e la replica. Una risincronizzazione 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 redis.googleapis.com/persistence/rdb/bgsave_in_progress con Metrics Explorer.

Per visualizzare le metriche per una risorsa monitorata utilizzando Metrics Explorer, 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. 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, segui questi passaggi:
    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 poi fai clic su Applica.
  3. Per filtrare le serie temporali visualizzate, utilizza l'elemento Filtro.

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

    Tutte le serie temporali vengono visualizzate quando il primo menu dell'elemento Aggregation è impostato su Non aggregato. 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 delle autorizzazioni più semplice prevede l'applicazione dei ruoli IAM Amministratore Cloud Memorystore Redis e Amministratore Storage all'account utente, ma 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 sull'impostazione di autorizzazioni minimamente limitate, 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 di 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

Devi assicurarti che il tuo bucket Cloud Storage abbia le giuste restrizioni per impedire l'accesso non autorizzato al backup Redis RDB che contiene. Per informazioni su come proteggere i bucket di Cloud Storage, consulta le opzioni di controllo dell'accesso di Cloud Storage.

Garanzia di memoria sufficiente per completare un'esportazione

Per evitare che l'esportazione causi l'esaurimento della memoria, durante il processo di esportazione dovresti avere il 50% di memoria libera nell'istanza. Potrebbe non essere sempre necessario, a seconda del carico di scrittura, ma avere il 50% di memoria libera garantisce che ci sia spazio libero sufficiente per contenere l'overhead di copia alla scrittura, se durante il processo di esportazione vengono toccate molte pagine.

Per comprendere l'utilizzo attuale 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 permettono di comprendere i pattern di utilizzo della memoria delle istanze. Comprendere i pattern di utilizzo della memoria consente di dimensionare correttamente l'istanza durante l'esportazione a intervalli regolari.

Esportazione e importazione nelle istanze con repliche di lettura

Per tutte le istanze Redis, incluse quelle abilitate per la replica di lettura, i dati vengono esportati dal nodo principale.

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

Quando importi i 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