Condividi tramite


Eseguire la migrazione dalle cache di inserimento di reti virtuali alle cache di collegamento privato

Questo articolo descrive diversi approcci per eseguire la migrazione di istanze della cache inserite in cache di Azure per Redis Rete virtuale (rete virtuale) alle istanze della cache cache di Azure per Redis collegamento privato.

collegamento privato di Azure semplifica l'architettura di rete e protegge la connessione tra endpoint in Azure. È possibile connettersi a un'istanza della cache di Azure per Redis dalla propria rete virtuale tramite un endpoint privato, a cui viene assegnato un indirizzo IP privato in una subnet entro la rete virtuale. I vantaggi dell'uso di collegamento privato di Azure per cache di Azure per Redis includono:

  • Flessibilità livello: collegamento privato di Azure è supportata in tutti i livelli; Basic, Standard, Premium, Enterprise e Enterprise Flash. Rispetto a Rete virtuale iniezione, offerta solo nel livello Premium.

  • Gestione delle regole del gruppo di sicurezza di rete semplificata : le regole del gruppo di sicurezza di rete non devono essere configurate per rispettare i requisiti da cache di Azure per Redis.

  • Criteri di Azure supporto: assicurarsi che tutte le cache dell'organizzazione vengano create con collegamento privato e controllano le cache esistenti dell'organizzazione per verificare che tutte usino collegamento privato.

Opzioni di migrazione

È possibile passare dall'inserimento della rete virtuale alla collegamento privato usando alcuni modi diversi. A seconda della posizione della cache e del modo in cui l'applicazione interagisce con essa, un metodo sarà più utile degli altri. Alcune delle strategie di migrazione usate di frequente sono dettagliate di seguito.

Se si usa una combinazione di replica geografica, clustering o rete virtuale ARM:

Opzione Vantaggi Svantaggi
Dati con doppio scrittura in due cache Senza perdita di dati e tempi di inattività Operazioni non interrotte della cache esistente. Test più semplice della nuova cache. Necessita di due cache per un periodo di tempo esteso.
Creare una nuova cache Più semplice da implementare. È necessario ripopolare i dati nella nuova cache, che potrebbero non funzionare con molte applicazioni.
Esportare e importare dati tramite file RDB È necessaria la migrazione dei dati. Alcuni dati potrebbero essere persi, se vengono scritti nella cache esistente dopo la generazione del file RDB.
Eseguire la migrazione dei dati a livello di codice Controllo completo sulla modalità di spostamento dei dati. Richiede codice personalizzato.

Scrivere in due cache Redis contemporaneamente durante il periodo di migrazione

Anziché spostare i dati direttamente tra le cache, è possibile usare l'applicazione per scrivere dati in una cache esistente e in una nuova configurazione. L'applicazione leggerà comunque i dati dalla cache esistente inizialmente. Quando la nuova cache dispone dei dati necessari, passare all'applicazione in tale cache e ritirarne quella precedente. Si supponga, ad esempio, di usare Redis come archivio sessioni e le sessioni dell'applicazione siano valide per sette giorni. Dopo aver scritto nelle due cache per una settimana, si sarà certi che la nuova cache contenga tutte le informazioni sulla sessione non scadute. È possibile affidarsi in modo sicuro a questo punto senza preoccuparsi della perdita di dati.

I passaggi generali per implementare questa opzione sono:

  1. Creare una nuova istanza di cache di Azure per Redis con endpoint privati con le stesse dimensioni della cache esistente (o maggiore di).

  2. Modificare il codice dell'applicazione per scrivere in istanze nuove e originali.

  3. Continuare a leggere i dati dall'istanza originale fino a quando la nuova istanza è sufficientemente popolata con i dati.

  4. Aggiornare il codice dell'applicazione alla lettura e alla scrittura solo dalla nuova istanza.

  5. Eliminare l'istanza originale.

Creare una nuova cache di Azure per Redis

Questo approccio tecnicamente non è una migrazione. Se si perde dati non è un problema, il modo più semplice per passare a cache di Azure per Redis consiste nel creare un'istanza della cache e connettersi all'applicazione. Ad esempio, se si usa Redis come cache di ricerca dei record di database, è possibile ricompilare facilmente la cache da zero.

I passaggi generali per implementare questa opzione sono:

  1. Creare una nuova istanza di cache di Azure per Redis con endpoint privati.

  2. Aggiornare l'applicazione per usare la nuova istanza.

  3. Eliminare l'istanza di Redis precedente.

Esportare i dati in un file RDB e importarlo in cache di Azure per Redis (solo livello Premium)

Redis open source definisce un meccanismo standard per acquisire uno snapshot del set di dati in memoria della cache e salvarlo in un file. Questo file, denominato RDB, può essere letto da un'altra cache Redis. cache di Azure per Redis livello Premium supporta l'importazione di dati in un'istanza della cache tramite file RDB. È possibile usare un file RDB per trasferire i dati da una cache esistente a cache di Azure per Redis.

Importante

Il formato di file RDB può cambiare tra le versioni Redis e potrebbe non mantenere la compatibilità con le versioni precedenti. La versione Redis della cache da cui si esegue l'esportazione deve essere uguale o minore della versione fornita da cache di Azure per Redis.

I passaggi generali per implementare questa opzione sono:

  1. Creare una nuova istanza di cache di Azure per Redis con endpoint privati nel livello Premium che corrisponde a (o maggiore) della cache esistente.

  2. Salvare uno snapshot della cache Redis esistente. È possibile configurare Redis per salvare periodicamente gli snapshot oppure eseguire manualmente il processo usando i comandi SAVE o BGSAVE . Il file RDB è denominato "dump.rdb" per impostazione predefinita e si trova nel percorso specificato nel file di configurazione redis.conf .

    Nota

    Se si esegue la migrazione dei dati all'interno di cache di Azure per Redis, vedere queste istruzioni su come esportare un file RDB o usare invece il cmdlet Di esportazione di PowerShell.

  3. Copiare il file RDB in un account di archiviazione di Azure nell'area in cui si trova la nuova cache. È possibile usare AzCopy per questa attività.

  4. Importare il file RDB nella nuova cache usando queste istruzioni di importazione o il cmdlet Di importazione di PowerShell.

  5. Aggiornare l'applicazione per usare la nuova istanza della cache.

Eseguire la migrazione a livello di codice

Creare un processo di migrazione personalizzato leggendo i dati a livello di codice da una cache esistente e scrivendoli in cache di Azure per Redis. Questo strumento open source può essere usato per copiare i dati da un'istanza cache di Azure per Redis a un'altra. Questo strumento è utile per spostare i dati tra istanze della cache in diverse aree della cache di Azure. È disponibile anche una versione compilata . È anche possibile trovare il codice sorgente per essere una guida utile per la scrittura di uno strumento di migrazione personalizzato.

Nota

Questo strumento non è ufficialmente supportato da Microsoft.

I passaggi generali per implementare questa opzione sono:

  1. Creare una macchina virtuale nell'area in cui si trova la cache esistente. Se il set di dati è di grandi dimensioni, scegliere una macchina virtuale relativamente potente per ridurre il tempo di copia.

  2. Creare una nuova istanza di cache di Azure per Redis con endpoint privati

  3. Scaricare i dati dalla nuova cache per assicurarsi che sia vuoto. Questo passaggio è necessario perché lo strumento di copia stesso non sovrascrive alcuna chiave esistente nella cache di destinazione.

    Importante

    Assicurarsi di NON scaricare dalla cache di origine.

  4. Usare un'applicazione come lo strumento open source precedente per automatizzare la copia dei dati dalla cache di origine alla destinazione. Tenere presente che il processo di copia potrebbe richiedere un po' di tempo per completare a seconda delle dimensioni del set di dati.

Passaggi successivi