RIOT Live-Migration zur Migration zu Redis Enterprise Cloud bereitstellen

Last reviewed 2024-01-29 UTC

In diesem Dokument wird beschrieben, wie Sie die RIOT-Live-Migration zur Migration zu Redis Enterprise Cloud bereitstellen. Datenbankarchitekten, DevOps- und SRE-Teams oder Netzwerkadministratoren können diese Architektur verwenden, um ihren Teams Migrationen praktisch ohne Ausfallzeiten anzubieten. In diesem Dokument wird davon ausgegangen, dass Sie mit der Verwendung der Google Cloud CLI und Compute Engine vertraut sind.

Architektur

Das folgende Diagramm zeigt die Referenzarchitektur, die den RIOT Live-Migration Service zum Migrieren von Redis-kompatiblen Quellen zu Redis Enterprise Cloud verwendet.

Redis-kompatible Quellen werden über RIOT zu Redis Enterprise Cloud migriert.

Weitere Informationen zur Architektur finden Sie unter RIOT-Live-Migration zur Migration zu Redis Enterprise Cloud.

Die Beispielbereitstellung in diesem Dokument verwendet die folgende Architektur, in der die Quelle ein Redis-OSS auf einer Compute Engine-VM ist:

Redis OSS wird über RIOT und VPC-Peering zu Redis Enterprise Cloud migriert.

Im Diagramm werden eine Redis OSS-Instanz und ein RIOT der Einfachheit halber in einer einzigen Compute Engine-VM zusammengefasst. In einer Produktionsumgebung empfehlen wir, dass RIOT immer auf einer eigenen VM ausgeführt wird, um eine bessere Leistung zu gewährleisten.

Die Beispiel-Bereitstellungsarchitektur enthält die folgenden Komponenten:

  • Quelle: Redis OSS-Instanz, die auf der Compute Engine-VM ausgeführt wird.
  • Ziel: Redis Enterprise Cloud, das in der verwalteten Redis-VPC ausgeführt wird.
  • Migrationsdienst: RIOT wird auf derselben Compute Engine-VM wie Redis OSS ausgeführt.
  • Netzwerkeinrichtung: VPC-Peering zwischen einer verwalteten VPC und der von Redis verwalteten VPC.

Das RIOT-Migrationstool hat praktisch keine Ausfallzeiten. Während der Migration von Redis OSS (Quelle) zur Redis Enterprise Cloud (Ziel) können Ihre Anwendungen weiterhin ohne Beeinträchtigung oder Dienstunterbrechung auf Redis OSS zugreifen. Während des Migrationsprozesses migriert RIOT Live Migration nach dem anfänglichen Laden von Daten aus Redis OSS weiterhin Änderungen von Redis OSS, sobald sie auftreten.

Lernziele

  • Ihre Redis OSS-Quelle durch Erstellen und Laden von Daten einrichten.
  • Einen Migrationszielcluster in Redis Enterprise Cloud einrichten
  • Verwenden Sie die RIOT Live-Migration, um Daten von Redis OSS zu Redis Enterprise Cloud zu migrieren.
  • Informationen zu Test-, Umstellungs- und Fallback-Strategien

Kosten

Für die Bereitstellung dieser Architektur werden die folgenden kostenpflichtigen Komponenten von Google Cloud verwendet:

Hinweise

Führen Sie die folgenden Schritte aus, um eine Umgebung für die Migration einzurichten.

  1. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  2. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

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

    Aktivieren Sie die APIs

  4. Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle „Abrechnungsadministrator“ (roles/billing.admin) für Ihre Organisation zuzuweisen, um die Berechtigungen zu erhalten, die Sie für diese Bereitstellung benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

    Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Redis OSS-Instanz einrichten

Zum Starten der Bereitstellung installieren Sie die Redis OSS-Instanz auf einer Compute Engine-VM. Die Instanz dient als Quellinstanz.

Redis OSS-Instanz installieren

  1. Aktivieren Sie Cloud Shell in der Google Cloud Console.

    Cloud Shell aktivieren

    Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  2. Erstellen Sie in Cloud Shell eine Ubuntu-VM:

    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'
    

    Ersetzen Sie Folgendes:

    • VPC_NETWORK_NAME: Der Name des VPC-Netzwerks.
    • VPC_SUBNETWORK_NAME: Der Name Ihres VPC-Subnetzwerks.
  3. Verwenden Sie eine SSH-Verbindung, um sich bei der Compute Engine-Instanz anzumelden, auf der die Redis OSS-Instanz ausgeführt wird:

    PROJECT_ID=$(gcloud info --format='value(config.project)')
    
    gcloud compute ssh redis-oss-riot-vm --project $PROJECT_ID --zone us-central1-a
    
  4. Aktivieren Sie die Keyspace-Benachrichtigung für die Live-Migration, die für RIOT erforderlich ist:

    redis-cli config set notify-keyspace-events KEA
    

Prüfen, ob die Redis OSS-Instanz betriebsbereit ist

  1. Starten Sie in Cloud Shell die Redis-Befehlszeile:

    redis-cli
    
  2. Legen Sie ein einfaches Schlüssel/Wert-Paar fest und rufen Sie es ab:

    set my_key my_value
    get my_key
    unlink my_key
    

    Die Ausgabe sieht so aus:

    OK
    "my_value"
    (integer) 1
    

    Sie haben jetzt Ihre Redis OSS-Instanz erstellt, darauf zugegriffen und bestätigt, dass sie betriebsbereit ist.

Beispieldaten einfügen

In diesem Abschnitt fügen Sie Beispieldaten in die Redis OSS-Instanz ein und prüfen, ob die Daten erfolgreich eingefügt wurden.

  1. Starten Sie die Redis-Befehlszeile in Cloud Shell:

    redis-cli
    
  2. Fügen Sie die folgenden sechs Schlüssel/Wert-Paare als erstes Dataset hinzu. Geben Sie jeden Befehl einzeln ein und warten Sie auf die Ausgabe OK, bevor Sie das nächste Schlüssel/Wert-Paar eingeben.

    set tennis federer
    
    set soccer ronaldo
    
    set basketball curry
    
    set football montana
    
    set golf woods
    
    set swimmer phelps
    
  3. Prüfen Sie, ob Sie sechs Schlüssel/Wert-Paare erfolgreich hinzugefügt haben:

    SCAN 0
    

    Die Ausgabe sieht so aus:

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

Nachdem Sie die RIOT-Migration eingerichtet und gestartet haben, werden die Daten zur Redis Enterprise Cloud-Zielinstanz migriert.

RIOT auf der Redis OSS-Instanz-VM installieren

Für die Ausführung von RIOT müssen Sie auf die richtige Größe Ihrer Compute Engine-VM achten. Im Allgemeinen empfehlen wir die Größe Ihrer VM auf 8 vCPUs oder mehr, je nach der zu übertragenden Datenmenge und der Aktualisierungshäufigkeit. Weitere Informationen finden Sie im Leitfaden zu Ressourcen und Vergleichen für Maschinenfamilien.

  1. Verwenden Sie in Cloud Shell eine SSH-Verbindung, um sich bei der Compute Engine-Instanz anzumelden, auf der die Redis OSS-Instanz ausgeführt wird:

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

    sudo apt install default-jre -y
    
  3. Laden Sie RIOT herunter und installieren Sie es:

    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. Prüfen Sie, ob RIOT korrekt installiert ist:

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

    Die Ausgabe sieht ähnlich aus wie die folgende, die ein RIOT-Logo und eine Versionsnummer enthält:

    Ein RIOT-Logo und eine Versionsnummer.

Sie haben das RIOT-Migrationstool auf der Redis OSS-Instanz installiert und bestätigt, dass es betriebsbereit ist.

Redis Enterprise Cloud-Instanz erstellen

Redis Enterprise Cloud ist über Cloud Marketplace verfügbar. Wenn Sie keinen Redis Enterprise-Cluster als Redis Enterprise-Zielinstanz eingerichtet haben, folgen Sie den Schritten in diesem Abschnitt. Wenn Sie bereits einen Redis Enterprise-Cluster als Zieldatenbank eingerichtet haben, können Sie diesen Abschnitt überspringen und mit RIOT-Live-Migration starten fortfahren.

  1. Wechseln Sie im Cloud Marketplace zu Redis Enterprise Cloud Flexible – Pay as you go.

    Zu Redis Enterprise im Marketplace

    Weitere Informationen finden Sie in der Anleitung im Redis-Dokument Flexible Abos mit Cloud Marketplace.

  2. Melden Sie sich mit den Redis-Kontoinformationen, die Sie beim Abonnieren von Redis Enterprise Cloud Flexible angegeben haben, bei der Redis-Konsole an.

  3. Erstellen Sie ein flexibles Abo. Folgen Sie dazu der Anleitung im Redis-Dokument Flexibles Abo erstellen. Wählen Sie Google Cloud als Cloud-Anbieter aus und erstellen Sie eine Datenbank mit allen Standardeinstellungen.

  4. Erstellen Sie ein VPC-Peering zwischen Ihrer Google Virtual Private Cloud und der von Redis verwalteten VPC. Folgen Sie dazu der Anleitung im Redis-Dokument VPC-Peering aktivieren.

  5. Wechseln Sie in der Redis-Konsole zu Abo und suchen Sie den Verbindungsstring für die Redis Enterprise-Datenbank:

    1. Notieren Sie sich die IP-Adresse und den Port des privaten Endpunkts in folgendem Format:

      ENDPOINT_IP:ENDPOINT_PORT
      

      Die Werte stehen für Folgendes:

      • ENDPOINT_IP: Die IP-Adresse des privaten Endpunkts für die Redis Enterprise-Datenbank.
      • ENDPOINT_PORT: Die Portnummer des privaten Endpunkts für die Redis Enterprise-Datenbank.
    2. Notieren Sie sich das Datenbankpasswort.

RIOT-Live-Migration starten

So migrieren Sie die Daten von der Redis OSS-Instanz (Quelle) zur Redis Enterprise Cloud-Instanz (Ziel):

  1. Verwenden Sie in Cloud Shell eine SSH-Verbindung, um sich bei der Compute Engine-Instanz anzumelden, auf der die Redis OSS-Instanz ausgeführt wird:

    PROJECT_ID=$(gcloud info --format='value(config.project)')
    
    gcloud compute ssh redis-oss-riot-vm --project $PROJECT_ID --zone us-central1-a
    
  2. Initiieren Sie eine Live-Migration zwischen Quelle und Ziel. Wenn sich Ihre Redis-OSS-Instanz auf Redis 7.2 befindet, müssen Sie die typbasierte Replikation verwenden. Informationen zur Verwendung der Option --type finden Sie in der Redis-Dokumentation unter Typbasierte Replikation.

    ./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
    

    Ersetzen Sie Folgendes durch die Werte, die Sie im vorherigen Abschnitt notiert haben:

    • ENDPOINT_IP: Die IP-Adresse des privaten Endpunkts für die Redis Enterprise-Clusterdatenbank.
    • ENDPOINT_PORT: Die Portnummer des privaten Endpunkts für die Redis Enterprise-Clusterdatenbank.
    • REDIS_ENTERPRISE_DB_PASSWORD: Das Passwort für die Redis Enterprise-Clusterdatenbank.

    Die Ausgabe sieht in etwa so aus:

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

Datenbankmigration prüfen

Es ist wichtig, eine Strategie zur Prüfung der Datenbankmigration zu entwerfen und zu implementieren, um zu bestätigen, dass die Datenbankmigration erfolgreich ist. Die von Ihnen verwendete Bestätigungsstrategie hängt zwar von Ihrem konkreten Anwendungsfall ab, wir empfehlen jedoch, diese Prüfungen für alle Migrationen durchzuführen:

  • Vollständigkeitsprüfung: Prüfen Sie, ob die ersten Schlüssel/Wert-Paare erfolgreich von Redis OSS zu Redis Enterprise migriert wurden (erster Ladevorgang).
  • Dynamische Prüfung: Prüfen Sie, ob Änderungen in der Quelle an die Zielinstanz übertragen werden (laufende Migration).

Anfänglicher Ladevorgang

  1. Verwenden Sie in Cloud Shell eine SSH-Verbindung, um sich bei der Compute Engine-Instanz anzumelden, auf der die Redis OSS-Instanz ausgeführt wird:

    PROJECT_ID=$(gcloud info --format='value(config.project)')
    $ gcloud compute ssh redis-oss-riot-vm --project $PROJECT_ID --zone us-central1-a
    
  2. Starten Sie die Redis-Befehlszeile:

    redis-cli -u redis://ENDPOINT_IP:ENDPOINT_PORT \
    -a REDIS_ENTERPRISE_DB_PASSWORD
    
  3. Prüfen Sie, ob die sechs Schlüssel/Wert-Paare erfolgreich von der Redis OSS- zur Redis-Enterprise-Instanz migriert wurden:

    SCAN 0
    

    Die Ausgabe sieht so aus:

    "swimmer"
    "soccer"
    "football"
    "golf"
    "tennis"
    "basketball"
    
  4. Rufen Sie den Wert des Tennis-Schlüssels ab:

    get tennis
    

    Die Ausgabe sieht so aus:

    [return federer]
    
  5. Beenden Sie die Redis-Befehlszeile:

    exit
    

Laufende Migration

Prüfen Sie, ob laufende Änderungen am Redis-Quell-OSS in der Ziel-Redis Enterprise-Instanz übernommen werden:

  1. Verwenden Sie in Cloud Shell eine SSH-Verbindung, um sich bei der Redis-OSS-VM anzumelden.
  2. Starten Sie die Redis-Befehlszeile:

    redis-cli
    
  3. Fügen Sie neue Schlüssel/Wert-Paare hinzu:

    1. Fügen Sie ein neues runner bolt-Paar hinzu:

      set runner bolt
      
    2. Upserting eines neuen tennis alcaraz-Paars:

      set tennis alcaraz
      

    Die Ausgabe für jeden dieser Befehle sieht so aus:

    OK
    
  4. Achten Sie in der Redis Enterprise-Instanz darauf, dass neue Schlüssel/Wert-Paare hinzugefügt werden:

    get runner
    

    Die Ausgabe sieht so aus:

    [return bolt]
    
  5. Prüfen Sie die Anzahl der Schlüssel, um sicherzustellen, dass alle Schlüssel/Wert-Paare vorhanden sind:

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

    Die Ausgabe sieht so aus:

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

Sie haben jetzt überprüft, ob RIOT Live-Migration alle Schlüssel/Wert-Paare aus der Redis OSS-Quellinstanz und alle laufenden Änderungen an der Quelle automatisch migriert hat.

Von der Quelle auf das Ziel umstellen

Nachdem Sie die Datenbankmigration überprüft haben, können Sie eine Umstellung von der Redis OSS-Quellinstanz zur Redis Enterprise-Zielinstanz durchführen:

  1. Sperren Sie den Schreibzugriff des Clients auf die Redis OSS-Quellinstanz mithilfe der Redis-Zugriffssteuerungsliste.
  2. Sofern Sie die Quelldatenbank für Ihre Fallback-Strategie nicht beibehalten müssen, deaktivieren Sie die Redis-Quell-OSS durch Entfernen der VM-Instanz.
  3. Migrieren Sie den Client in dieselbe Region wie die Redis Enterprise-Datenbankinstanz. Weitere Informationen finden Sie in der Dokumentation Ihres Clienthosts.
  4. Suchen Sie in der Redis-Konsole den privaten Endpunkt der Redis Enterprise-Datenbankinstanz und aktualisieren Sie die Redis-Verbindung Ihres Clients zum privaten Endpunkt. Weitere Informationen finden Sie in der Redis-Dokumentation unter Datenbanken aufrufen und bearbeiten.
  5. Beenden Sie in Cloud Shell den RIOT-Prozess mit der Tastenkombination Strg+C.

Fallback-Strategie vorbereiten

Nach Abschluss der Umstellung ist die Redis Enterprise-Zielinstanz das Erfassungssystem. Die Redis OSS-Quellinstanz ist veraltet und wird schließlich entfernt. Sie können jedoch bei schwerwiegenden Fehlern in der neuen Redis Enterprise-Zielinstanz auf die Redis OSS-Quellinstanz zurückgreifen.

Um die Auswirkungen solcher Fehler möglichst gering zu halten, sollten Sie die ursprüngliche Redis-OSS-Quellinstanz mit den Änderungen an der Zieldatenbank aktualisieren. Wenn Sie sicher sind, dass die neue Zielinstanz zuverlässig ist, können Sie die Quellinstanz herunterfahren.

Bereinigen

In den folgenden Abschnitten wird erläutert, wie Sie zukünftige Gebühren für Ihr Google Cloud-Projekt und die Redis-Ressourcen, die Sie in dieser Bereitstellung verwendet haben, vermeiden können.

Projekt löschen

  1. Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

Redis Enterprise-Datenbank löschen

Informationen zum Löschen der Redis Enterprise-Datenbank finden Sie in der Redis-Dokumentation unter Datenbank löschen.

Nächste Schritte

Beitragende

Autoren:

Weitere Beitragende: