Panoramica di importazione ed esportazione

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

La funzionalità di importazione ed esportazione utilizza la funzionalità istantanea RDB snapshot di Redis per importare o esportare dati da un'istanza Memorystore for Redis. L'utilizzo del formato RDB nativo impedisce 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 importa copiando il file RDB nella directory dei dati della tua istanza.

Per istruzioni su come importare ed esportare file RDB, consulta Importazione di dati in un'istanza Redis e Esportazione dei dati da un'istanza Redis.

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

Comportamento della funzionalità di importazione

  • Per ottenere prestazioni ottimali, è necessario importare 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 l'importazione è riuscita, i dati esistenti nell'istanza vengono sovrascritti da quelli nel file RDB.

  • Se per un qualsiasi motivo l'importazione non va a buon fine, l'istanza viene portata online, ma i dati potrebbero essere completamente cancellati. Puoi riprovare a eseguire l'importazione utilizzando lo stesso file RDB. In alternativa, 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 i file RDB da una versione più recente.

  • Un'operazione di importazione può essere annullata, ma tieni presente che la cancellazione comporta il recupero dell'istanza con una cache svuotata completamente. Questo vale per tutte le istanze del livello base e del livello Standard.

  • Un'istanza può importare solo i backup dalle 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 delle funzionalità di esportazione

  • Puoi leggere e scrivere dati nella tua istanza Redis durante un'operazione di esportazione; tuttavia, non puoi eseguire operazioni amministrative 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 situati 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 che viene scritto 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 si utilizza Google Cloud Console. Per esportare un file esistente con gcloud, l'account utente richiede l'autorizzazione storage.objects.delete.

Esportazione in caso di carico di scrittura elevato

Se esegui un'esportazione in un periodo di carico di scrittura elevato, l'utilizzo della memoria dell'istanza può aumentare fino a due volte, causando errori nell'operazione di esportazione. Ti consigliamo di eseguire operazioni di esportazione durante i periodi di scrittura ridotta. 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 delle istanze con la suite operativa di Google Cloud.

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 secondario per acquisire lo snapshot. Durante questo processo Redis utilizza copia-in-scrittura.

Ciò significa che il fork iniziale alloca memoria minima, ma eventuali pagine modificate dal traffico di scrittura del server Redis vengono duplicate. Pertanto, in periodi di scrittura elevata, nella peggiore delle ipotesi, l'impatto della memoria di Redis raddoppia, causando errori nell'operazione di esportazione.

Esportazione durante un'operazione BGSAVE

Impossibile esportare quando è in corso un'operazione BGSAVE. A volte, il livello standard di Memorystore per Redis è in grado di eseguire operazioni di risincronizzazione completa o "sync completi" per mantenere sincronizzate la replica 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 relative a una risorsa monitorata utilizzando Metrics Explorer, procedi come segue:

  1. Nella console Google Cloud, vai a Monitoring o utilizza il pulsante seguente:
    Vai a Monitoring
  2. Nel riquadro di navigazione di Monitoring, fai clic su Metrics Explorer.
  3. Nella barra degli strumenti, seleziona la scheda Explorer.
  4. Seleziona la scheda Configurazione.
  5. Espandi il menu Seleziona una metrica e utilizza i sottomenu per selezionare un tipo di risorsa e una metrica. Ad esempio, per registrare l'utilizzo della CPU di una macchina virtuale, procedi come segue:
    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.

In alternativa, puoi usare i tuoi strumenti API a riga di comando.

Autorizzazioni obbligatorie per l'importazione e l'esportazione

Un utente deve configurare autorizzazioni IAM sufficienti per importare o esportare file RDB. La configurazione più semplice delle autorizzazioni consiste nell'applicare i ruoli IAM Amministratore Cloud Storage Redis e Amministratore Storage all'account utente. Tuttavia, questa configurazione potrebbe essere inappropriata per alcuni account utente perché concede le autorizzazioni per creare, modificare o eliminare le risorse a cui non devono accedere. Per istruzioni sull'impostazione delle autorizzazioni con restrizioni minime, consulta Concedere le autorizzazioni con limitazioni per l'importazione e l'esportazione.

Durata delle importazioni e delle esportazioni

La durata dell'importazione o dell'esportazione dipende dalle dimensioni dell'istanza e dal set di dati nell'istanza. A seconda delle dimensioni, l'importazione e l'esportazione 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:

Monitorare l'avanzamento dell'operazione

La stima del tempo per il completamento non è disponibile durante l'importazione e l'esportazione. Puoi controllare se l'operazione è in corso controllando la pagina dei dettagli dell'istanza. Per visualizzare la pagina dei dettagli dell'istanza, fai clic sul tuo ID istanza nella pagina Elenco delle istanze di Memorystore for Redis.

Puoi anche monitorare l'avanzamento di un'operazione di importazione eseguendo il comando seguente:

gcloud redis instances describe [INSTANCE_ID] --region=[REGION]

Dove:

  • [INSTANCE_ID] è l'ID della tua istanza Memorystore for Redis.
  • [REGION] è l'area geografica 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 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. Consulta le Opzioni di controllo dell'accesso di Cloud Storage per informazioni su come proteggere i bucket Cloud Storage.

Garantire che la memoria sia sufficiente per completare un'esportazione

Per evitare che l'esportazione interrompa la fame, devi avere il 50% di memoria libera nell'istanza durante il processo di esportazione. Questa operazione potrebbe non essere sempre necessaria, a seconda del carico di scrittura, ma avere il 50% di memoria libera assicura che vi sia spazio libero sufficiente per supportare l'overhead di copia su scrittura, se molte pagine vengono toccate durante il processo di esportazione.

Per comprendere l'utilizzo della memoria corrente dell'istanza, configura un avviso della suite operativa di Google Cloud per ricevere una notifica quando il tuo utilizzo della memoria raggiunge una soglia personalizzabile. Inoltre, devi configurare una dashboard di monitoraggio della memoria con la suite operativa di Google Cloud. Queste misure ti consentono di comprendere i pattern di utilizzo della memoria delle istanze. Comprendere i pattern di utilizzo della memoria ti consente di dimensionare correttamente la tua istanza quando esporti 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 primario.

Per le istanze abilitate alla replica di lettura, l'esportazione può aumentare il carico della CPU e l'impatto della memoria sul nodo primario.

Quando si importano dati in un'istanza abilitata per la replica di lettura, l'istanza principale si riavvia durante l'operazione di importazione e l'istanza non è disponibile finché i nuovi dati non vengono caricati completamente nel database.

Passaggi successivi