Esegui il deployment di RIOT Live Migration per eseguire la migrazione a Redis Enterprise Cloud

Last reviewed 2024-01-29 UTC

Questo documento descrive come eseguire il deployment Migrazione live di RIOT per la migrazione a Redis Enterprise Cloud. Gli architetti di database, i team DevOps e SRE o gli amministratori di rete possono utilizzare questa architettura per offrire ai propri team migrazioni con tempi di inattività quasi azzerati. Questo documento presuppone che tu abbia familiarità con l'utilizzo di Google Cloud CLI e in Compute Engine.

Architettura

Il seguente diagramma mostra l'architettura di riferimento che utilizza RIOT Live Servizio di migrazione per eseguire la migrazione di origini compatibili con Redis a Redis Enterprise Google Cloud.

La migrazione delle origini compatibili con Redis viene eseguita tramite RIOT a Redis Enterprise Cloud.

Per maggiori dettagli sull'architettura, vedi Migrazione live di RIOT per la migrazione a Redis Enterprise Cloud.

Il deployment di esempio in questo documento utilizza la seguente architettura in cui l'origine è un Redis OSS su una VM di Compute Engine:

La migrazione di Redis OSS viene eseguita tramite il peering VPC e RIOT a Redis Enterprise Cloud.

Nel diagramma, un'istanza Redis OSS e RIOT sono consolidati in un'unica la VM di Compute Engine per semplicità. In un ambiente di produzione, di eseguire sempre RIOT sulla propria VM per garantire delle prestazioni.

L'architettura di deployment di esempio contiene i seguenti componenti:

  • Origine: istanza Redis OSS in esecuzione sulla VM di Compute Engine.
  • Destinazione: Redis Enterprise Cloud in esecuzione nel VPC gestito di Redis.
  • Servizio di migrazione: RIOT in esecuzione sullo stesso Compute Engine come Redis OSS.
  • Configurazione di rete: peering VPC tra un VPC gestito e Redis gestito in un VPC.

Il tempo di inattività dello strumento di migrazione RIOT è prossimo allo zero. Durante la migrazione da Redis OSS (origine) a Redis Enterprise Cloud (target), le tue applicazioni possono comunque accedere Redis OSS senza impatto o interruzione del servizio. Durante il processo di migrazione, dopo il caricamento iniziale dei dati da Redis OSS, RIOT Live Migration continua eseguire la migrazione delle modifiche da Redis OSS man mano che si presentano.

Obiettivi

  • Configura l'origine Redis OSS creando e caricando i dati.
  • Configura un cluster di destinazione per la migrazione in Redis Enterprise Cloud.
  • Utilizza RIOT Live Migration per eseguire la migrazione dei dati da Redis OSS a Redis Enterprise Google Cloud.
  • Comprendi le strategie di test, cutover e fallback.

Costi

Il deployment di questa architettura utilizza i seguenti componenti fatturabili di Google Cloud:

Prima di iniziare

Completa i passaggi seguenti per configurare un ambiente per la migrazione.

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

  3. Enable the BigQuery, Pub/Sub, Dataflow, and Compute Engine APIs.

    Enable the APIs

  4. Per ottenere le autorizzazioni necessarie per completare questo deployment, chiedi affinché l'amministratore ti conceda il ruolo di amministratore (roles/billing.admin) ruolo IAM nel tuo dell'organizzazione. Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestisci accesso.

    Potresti anche riuscire a ottenere le autorizzazioni richieste ruoli personalizzati o altro ruoli predefiniti.

Configura un'istanza Redis OSS

Per avviare il deployment, devi installare l'istanza Redis OSS su un alla VM di Compute Engine. L'istanza funge da istanza di origine.

Installa l'istanza Redis OSS

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. In Cloud Shell, crea una VM Ubuntu:

    gcloud compute instances create redis-oss-riot-vm \
      --image-family=ubuntu-2004-lts \
        --image-project=ubuntu-os-cloud \
        --zone=us-central1-a \
        --machine-type=e2-medium \
        --network=VPC_NETWORK_NAME \
        --subnet=VPC_SUBNETWORK_NAME \
      --metadata=startup-script='#! /bin/bash
        apt-get update -y
        apt-get install redis-tools -y
        snap install redis'
    

    Sostituisci quanto segue:

    • VPC_NETWORK_NAME: il valore della tua rete VPC.
    • VPC_SUBNETWORK_NAME: il nome della subnet VPC.
  3. Utilizza una connessione SSH per accedere all'istanza Compute Engine che esegue l'istanza Redis OSS:

    PROJECT_ID=$(gcloud info --format='value(config.project)')
    
    gcloud compute ssh redis-oss-riot-vm --project $PROJECT_ID --zone us-central1-a
    
  4. Attiva notifica dello spazio delle chiavi per la migrazione live, richiesta da RIOT:

    redis-cli config set notify-keyspace-events KEA
    

Verifica che l'istanza Redis OSS sia operativa

  1. In Cloud Shell, avvia Interfaccia a riga di comando Redis:

    redis-cli
    
  2. Imposta e ottieni una coppia chiave-valore semplice:

    set my_key my_value
    get my_key
    unlink my_key
    

    L'output è il seguente:

    OK
    "my_value"
    (integer) 1
    

    Hai creato e eseguito l'accesso alla tua istanza Redis OSS e hai confermato che sia operativo.

Inserisci dati di esempio

In questa sezione, inserirai i dati di esempio nell'istanza Redis OSS e verificherai che i dati siano stati inseriti correttamente.

  1. In Cloud Shell, avvia l'interfaccia a riga di comando Redis:

    redis-cli
    
  2. Aggiungi le seguenti sei coppie chiave-valore come set di dati iniziale. Inserisci ogni e attendi l'output OK prima di inserire quello successivo coppia chiave-valore.

    set tennis federer
    
    set soccer ronaldo
    
    set basketball curry
    
    set football montana
    
    set golf woods
    
    set swimmer phelps
    
  3. Verifica di aver aggiunto correttamente sei coppie chiave-valore:

    SCAN 0
    

    L'output è il seguente:

    "swimmer"
    "soccer"
    "football"
    "golf"
    "tennis"
    "basketball"
    

Dopo aver configurato e avviato la migrazione RIOT, i dati vengono migrati l'istanza Redis Enterprise Cloud di destinazione.

Installa RIOT sulla VM dell'istanza Redis OSS

Per eseguire RIOT, devi assicurarti che la VM di Compute Engine sia di dimensioni appropriate. In generale, consigliamo di dimensionare la VM su 8 vCPU o più grandi, a seconda della quantità di dati da trasportare e la frequenza di aggiornamento. Per ulteriori informazioni, vedi Guida alle risorse e al confronto per le famiglie di macchine.

  1. In Cloud Shell, utilizza una connessione SSH per accedere Istanza Compute Engine che esegue l'istanza Redis OSS:

    PROJECT_ID=$(gcloud info --format='value(config.project)')
    
    gcloud compute ssh redis-oss-riot-vm --project $PROJECT_ID --zone us-central1-a
    
  2. Installazione di JDK per RIOT:

    sudo apt install default-jre -y
    
  3. Scarica e installa RIOT:

    sudo apt-get install unzip
    
    wget https://github.com/redis-developer/riot/releases/download/v2.19.0/riot-redis-2.19.0.zip
    
    unzip riot-redis-2.19.0.zip
    
  4. Verifica che RIOT sia installato correttamente:

    ./riot-redis-2.19.0/bin/riot-redis -V
    

    L'output è simile al seguente, che mostra un logo RIOT e un numero versione:

    Logo e numero di versione di RIOT.

A questo punto hai installato lo strumento di migrazione RIOT sull'istanza Redis OSS e ha confermato che è operativo.

Crea un'istanza Redis Enterprise Cloud

Cloud Redis Enterprise è disponibile tramite Cloud Marketplace. Se non disponi di un Redis Cluster Enterprise configurato come istanza Redis Enterprise di destinazione, segui le passaggi in questa sezione. Se hai già configurato un cluster Redis Enterprise come il database di destinazione, puoi saltare questa sezione e procedere con Avvia la migrazione live di RIOT.

  1. In Cloud Marketplace, vai a Redis Enterprise Cloud Flexible - Paga durante il tuo percorso.

    Vai a Redis Enterprise in Marketplace

    Per ulteriori informazioni, consulta le istruzioni nel documento Redis Abbonamenti flessibili con Cloud Marketplace.

  2. Accedi a Console Redis utilizzando le informazioni dell'account Redis che hai fornito al momento della sottoscrizione della sottoscrizione. a Redis Enterprise Cloud Flexible.

  3. Crea un abbonamento flessibile seguendo le istruzioni in Documento Redis Crea un abbonamento flessibile. Scegli Google Cloud come fornitore di servizi cloud e crea un database tutte le impostazioni predefinite.

  4. Crea un peering VPC tra il tuo Virtual Private Cloud di Google e Redis un VPC gestito seguendo le istruzioni nel documento Redis Abilita il peering VPC.

  5. Nella Console Redis vai a Subscription (Sottoscrizione) e individua il tuo database Redis Enterprise. stringa di connessione:

    1. Prendi nota di IP e porta dell'endpoint privato, nel formato:

      ENDPOINT_IP:ENDPOINT_PORT
      

      Dove i valori rappresentano quanto segue:

      • ENDPOINT_IP: il privato l'indirizzo IP dell'endpoint per il database Redis Enterprise.
      • ENDPOINT_PORT: il valore numero di porta dell'endpoint privato per il database Redis Enterprise.
    2. Prendi nota della password del database.

Avvia la migrazione live RIOT

Eseguire la migrazione dei dati da Redis OSS (origine) a Redis Enterprise Cloud (destinazione), procedi nel seguente modo:

  1. In Cloud Shell, utilizza una connessione SSH per accedere Istanza Compute Engine che esegue l'istanza Redis OSS:

    PROJECT_ID=$(gcloud info --format='value(config.project)')
    
    gcloud compute ssh redis-oss-riot-vm --project $PROJECT_ID --zone us-central1-a
    
  2. Avvia una migrazione live tra l'origine e la destinazione. Se il tuo database Redis L'istanza OSS è su Redis 7.2, è necessario utilizzare la replica basata sul tipo. Per informazioni sull'utilizzo dell'opzione --type, consulta la documentazione di Redis Replica basata sul tipo:

    ./riot-redis-2.19.0/bin/riot-redis -u redis://localhost:6379 replicate  \
    -u redis://ENDPOINT_IP:ENDPOINT_PORT \
      -a REDIS_ENTERPRISE_DB_PASSWORD \
      --mode live
    

    Sostituisci quanto segue con i valori annotati nella precedente sezione:

    • ENDPOINT_IP: il privato l'indirizzo IP dell'endpoint per il database del cluster Redis Enterprise.
    • ENDPOINT_PORT: il privato numero di porta dell'endpoint per il database del cluster Redis Enterprise.
    • REDIS_ENTERPRISE_DB_PASSWORD: la password del database del cluster Redis Enterprise.

    L'output è simile al seguente:

    Listening  ? % ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0/? (0:00:00 / ?) ?/s\
    Scanning 100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6/6 (0:00:00 / 0:00:00) ?/s
    

Verifica la migrazione del database

È importante progettare e implementare una verifica della migrazione del database per confermare che la migrazione del database è riuscita. Sebbene di verifica che utilizzi dipende dal tuo caso d'uso specifico. di eseguire i controlli seguenti per tutte le migrazioni:

  • Controllo di completezza: verifica che le coppie chiave-valore iniziali Migrazione da Redis OSS a Redis Enterprise (caricamento iniziale) riuscita.
  • Controllo dinamico: verifica che le modifiche nell'origine siano in corso trasferito all'istanza di destinazione (migrazione in corso).

Caricamento iniziale

  1. In Cloud Shell, utilizza una connessione SSH per accedere Istanza Compute Engine che esegue l'istanza Redis OSS:

    PROJECT_ID=$(gcloud info --format='value(config.project)')
    $ gcloud compute ssh redis-oss-riot-vm --project $PROJECT_ID --zone us-central1-a
    
  2. Avvia il Interfaccia a riga di comando Redis:

    redis-cli -u redis://ENDPOINT_IP:ENDPOINT_PORT \
    -a REDIS_ENTERPRISE_DB_PASSWORD
    
  3. Verifica che la migrazione delle sei coppie chiave-valore da Redis sia andata a buon fine Istanza da OSS a Redis Enterprise:

    SCAN 0
    

    L'output è il seguente:

    "swimmer"
    "soccer"
    "football"
    "golf"
    "tennis"
    "basketball"
    
  4. Ottieni il valore del token tennis:

    get tennis
    

    L'output è il seguente:

    [return federer]
    
  5. Esci dall'interfaccia a riga di comando Redis:

    exit
    

Migrazione in corso

Verifica che le modifiche in corso al sistema operativo Redis di origine siano riflesse nella destinazione Istanza Redis Enterprise:

  1. In Cloud Shell, utilizza una connessione SSH per accedere a Redis VM OSS.
  2. Avvia l'interfaccia a riga di comando di Redis:

    redis-cli
    
  3. Aggiungi nuove coppie chiave-valore:

    1. Aggiungi una nuova coppia di runner bolt:

      set runner bolt
      
    2. Esegui l'upsert di una nuova coppia di tennis alcaraz:

      set tennis alcaraz
      

    L'output di ciascuno di questi comandi è il seguente:

    OK
    
  4. Nell'istanza Redis Enterprise, osserva che le nuove coppie chiave-valore aggiunto:

    get runner
    

    L'output è il seguente:

    [return bolt]
    
  5. Per verificare che siano presenti tutte le coppie chiave-valore, controlla i conteggi delle chiavi:

    redis-cli info keyspace and redis-cli -u <REMOTE> info keyspace
    

    L'output è il seguente:

    # Keyspace
    db0:keys=7,expires=0,avg_ttl=0
    

Hai verificato che RIOT Live Migration abbia eseguito automaticamente la migrazione di tutti le coppie chiave-valore dall'istanza Redis OSS di origine ed eventuali modifiche in corso alla fonte.

Esegui il passaggio dall'origine alla destinazione

Dopo aver verificato la migrazione del database, puoi eseguire un cutover l'istanza Redis OSS di origine all'istanza Redis Enterprise di destinazione:

  1. Sospendi l'accesso in scrittura del client all'istanza Redis OSS di origine utilizzando Elenco di controllo dell'accesso Redis.
  2. A meno che tu non abbia bisogno di conservare il database di origine per i tuoi video di riserva dismissione del sistema operativo Redis di origine rimuovendo l'istanza VM.
  3. Esegui la migrazione del client nella stessa regione del database Redis Enterprise in esecuzione in un'istanza Compute Engine. Per informazioni, consulta la documentazione dell'host client.
  4. Nella Console Redis Individuare l'endpoint privato dell'istanza del database Redis Enterprise aggiornare la connessione Redis del client all'endpoint privato. Per ulteriori informazioni le informazioni, vedi Visualizzare e modificare i database nella documentazione di Redis.
  5. In Cloud Shell, interrompi la procedura RIOT premendo Ctrl+C.

Prepara una strategia di riserva

Al termine del cutover, l'istanza Redis Enterprise di destinazione sistema di registrazione dei dati; l'istanza Redis OSS di origine non è aggiornata e alla fine rimosso. Tuttavia, potresti voler tornare all'istanza Redis OSS di origine in caso di errori gravi nella nuova istanza Redis Enterprise di destinazione.

Per evitare questi errori, potresti voler mantenere il codice sorgente originale L'istanza Redis OSS è aggiornata con le modifiche al database di destinazione. Quando per assicurarti che la nuova istanza di destinazione sia affidabile, puoi arrestare in esecuzione in un'istanza Compute Engine.

Esegui la pulizia

Le seguenti sezioni spiegano come evitare addebiti futuri per il progetto Google Cloud e le risorse Redis che hai utilizzato in questo e deployment continuo.

Elimina il progetto

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Elimina il database Redis Enterprise

Per eliminare il database Redis Enterprise, consulta Elimina database nella documentazione di Redis

Passaggi successivi

Collaboratori

Autori:

Altri collaboratori: