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 riposo quasi nulli. 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 Migration Service per eseguire la migrazione delle origini compatibili con Redis in Redis Enterprise 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 la sorgente è un OSS Redis su una VM Compute Engine:

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

Nel diagramma, un'istanza Redis OSS e RIOT sono raggruppate in un'unica VM 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.

Lo strumento di migrazione RIOT ha tempi di inattività quasi nulli. 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 a eseguire la migrazione delle modifiche da Redis OSS man mano che si verificano.

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, transizione e riserva.

Costi

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

Prima di iniziare

Completa i seguenti passaggi 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 dispiegamento, chiedi all'amministratore di concederti il ruolo IAM Amministratore della fatturazione (roles/billing.admin) nella tua organizzazione. Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestire l'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 la notifica dello spazio chiavi per la migrazione live, che è richiesta da RIOT:

    redis-cli config set notify-keyspace-events KEA
    

Verifica che l'istanza Redis OSS sia operativa

  1. In Cloud Shell, avvia Redis CLI:

    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
    

    Ora hai creato e accedi all'istanza OSS Redis e hai verificato che sia operativa.

Inserisci dati di esempio

In questa sezione, inserisci dati di esempio nell'istanza Redis OSS e verifica che siano stati inseriti correttamente.

  1. In Cloud Shell, avvia Redis CLI:

    redis-cli
    
  2. Aggiungi le seguenti sei coppie chiave-valore come set di dati iniziale. Inserisci ogni comando singolarmente e attendi l'output OK prima di inserire la successiva 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 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 nell'istanza Redis Enterprise Cloud di destinazione.

Installa RIOT sulla VM dell'istanza Redis OSS

Per eseguire RIOT, devi assicurarti che la VM Compute Engine sia di dimensioni adeguate. 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, consulta la guida alle risorse e al confronto per le famiglie di macchine.

  1. In Cloud Shell, 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
    
  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:

    Un logo e un numero di versione 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 hai configurato un cluster Redis Enterprise come istanza Redis Enterprise di destinazione, segui i passaggi descritti 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 - Pay as You Go.

    Vai a Redis Enterprise in Marketplace

    Per ulteriori informazioni, consulta le istruzioni nella pagina Abbonamenti flessibili con Cloud Marketplace della documentazione di Redis.

  2. Accedi a Console Redis utilizzando le informazioni dell'account Redis che hai fornito al momento della sottoscrizione dell'abbonamento. 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 cloud e crea un database con 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 dell'IP e della porta dell'endpoint privato nel seguente 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

Per eseguire la migrazione dei dati da Redis OSS (origine) all'istanza Redis Enterprise Cloud (destinazione), segui questi passaggi:

  1. In Cloud Shell, 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
    
  2. Avvia una migrazione in tempo reale tra l'origine e la destinazione. Se la tua istanza Redis OSS è su Redis 7.2, devi utilizzare la replica basata sui tipi. 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 che hai annotato nella sezione precedente:

    • 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 strategia di verifica della migrazione del database per confermare il buon esito della migrazione. 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 vengano trasferite all'istanza di destinazione (migrazione in corso).

Caricamento iniziale

  1. In Cloud Shell, 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
    
  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 della chiave 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 codice open source Redis di origine siano riportate nell'istanza Redis Enterprise di destinazione:

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

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

    1. Aggiungi una nuova coppia runner bolt:

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

      set tennis alcaraz
      

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

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

    get runner
    

    L'output è il seguente:

    [return bolt]
    
  5. Per verificare che tutte le coppie chiave-valore siano presenti, 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 ha 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 il passaggio dall'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 l'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 dell'istanza del database Redis Enterprise. Per informazioni, consulta la documentazione dell'host client.
  4. Nella console Redis, individua l'endpoint privato dell'istanza del database Redis Enterprise e aggiorna la connessione Redis del client all'endpoint privato. Per ulteriori informazioni, consulta Visualizzare e modificare i database nella documentazione di Redis.
  5. In Cloud Shell, interrompi il processo 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, ti consigliamo di eseguire il fallback all'istanza OSS Redis 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: