Migrationsanleitung

Einleitung

Diese Anleitung erklärt, wie Sie Ihre Relution-Daten von einem Objektspeicher-Backend zu einem anderen migrieren können. Häufige Szenarien sind:

  • Migration von MinIO zu SeaweedFS (MinIO wird nicht mehr gewartet)
  • Umzug von Cloudanbieter zu selbst-gehostet (oder umgekehrt)
  • Wechsel zwischen Cloud-Anbietern

Die folgenden Beispiele zeigen eine Migration von MinIO zu SeaweedFS, aber die Schritte können für jede S3-kompatible Quelle und jedes Ziel angepasst werden.

Übersicht

Der Migrationsprozess besteht aus vier Schritten:

  1. Neues Speicher-Backend einrichten
  2. Daten vom alten zum neuen Speicher kopieren
  3. Relution-Konfiguration aktualisieren
  4. Altes Backend entfernen

Voraussetzungen

  • Zugriff auf beide Speicher-Backends gleichzeitig
  • Das rclone Kommandozeilen-Tool (Installationsanleitung)
  • Zugangsdaten für beide Speicher-Backends

Schritt 1: Neues Backend einrichten

Wenn Sie zu SeaweedFS migrieren, folgen Sie zuerst unserer SeaweedFS-Einrichtungsanleitung, aber starten Sie Relution noch nicht.

Stellen Sie sicher, dass sowohl altes als auch neues Speicher-Backend laufen:

docker compose up -d minio seaweedfs

Schritt 2: rclone konfigurieren

Das rclone Tool bietet eine schnelle und zuverlässige Möglichkeit, Daten zwischen S3-kompatiblen Backends zu kopieren.

rclone installieren

Folgen Sie den Anweisungen auf rclone.org/install für Ihr Betriebssystem.

Remote-Konfigurationen erstellen

Starten Sie den Konfigurationsassistenten:

rclone config

Konfigurieren Sie die Quelle (MinIO):

  1. Tippen Sie n für neuen Remote
  2. Name: source
  3. Storage-Typ: Wählen Sie s3
  4. Provider: Wählen Sie Minio (oder Other für generisches S3)
  5. Geben Sie Ihren Access Key und Secret Key ein
  6. Endpoint: http://localhost:9000
  7. Übernehmen Sie die Standardwerte für die verbleibenden Optionen
  8. Bestätigen Sie mit y

Konfigurieren Sie das Ziel (SeaweedFS):

  1. Tippen Sie n für neuen Remote
  2. Name: dest
  3. Storage-Typ: Wählen Sie s3
  4. Provider: Wählen Sie Other
  5. Geben Sie Ihren neuen Access Key und Secret Key ein
  6. Endpoint: http://localhost:8333
  7. Übernehmen Sie die Standardwerte für die verbleibenden Optionen
  8. Bestätigen Sie mit y

Tippen Sie q, um die Konfiguration zu beenden.

Port-Zugriff überprüfen

Stellen Sie sicher, dass die S3-API-Ports auf Ihrem Host freigegeben sind. Prüfen Sie Ihre compose.yml:

minio:
  ports:
    - "9000:9000" # S3 API - muss erreichbar sein
    - "9001:9001" # Web-Konsole
# ...
seaweedfs:
  ports:
    - "8333:8333" # S3 API - muss erreichbar sein
    - "23646:23646" # Web-Konsole

Schritt 3: Daten kopieren

  1. Überprüfen Sie, dass Relution gestoppt ist, um Datenänderungen während der Migration zu verhindern:

    docker compose ps  # Sollte Speicher-Backends anzeigen, aber NICHT relution
    
  2. Starten Sie den Transfer:

    rclone copy source:relution dest:relution --progress
    
  3. Warten Sie auf den Abschluss. Die Übertragungszeit hängt von der Datenmenge in Ihrem Bucket ab.

  4. Überprüfen Sie den Transfer:

    rclone check source:relution dest:relution
    

    Erwartete Ausgabe: 0 differences found

Schritt 4: Relution-Konfiguration aktualisieren

Aktualisieren Sie Ihre Relution-Konfiguration, um auf das neue Backend zu zeigen. Sie müssen Folgendes ändern:

EinstellungAlter WertNeuer Wert
Endpointhttp://minio:9000http://seaweedfs:8333
Access KeyAlter KeyNeuer Key
Secret KeyAlter SecretNeuer Secret

Eine detaillierte Beschreibung der Einrichtung/Änderung: Relution konfigurieren →

Schritt 5: Überprüfen und Aufräumen

  1. Starten Sie Relution:

    docker compose up -d relution
    
  2. Überprüfen Sie die Funktionalität: Melden Sie sich bei Relution an und bestätigen Sie, dass Apps und Ressourcen korrekt geladen werden.

  3. Entfernen Sie das alte Backend (nur nach gründlicher Überprüfung):

    docker compose down minio  # Stoppen Sie den alten Service
    
  4. Bereinigen Sie die Konfiguration: Entfernen Sie den alten Service aus Ihrer compose.yml.

  5. Löschen Sie alte Daten: Entfernen Sie das alte Speicher-Volume oder -Verzeichnis (z.B. ./volumes/minio/data).

  6. Bereinigen Sie rclone: Optional können Sie die rclone-Konfiguration entfernen:

    rclone config delete source
    rclone config delete dest
    

Fehlerbehebung

Connection refused / Timeout

Stellen Sie sicher, dass die S3-API-Ports freigegeben und nicht durch eine Firewall oder Netzwerktrennung blockiert sind. Testen Sie die Verbindung:

curl http://localhost:8333  # Sollte einen S3-Fehler zurückgeben

Access denied / 401 / 403

Überprüfen Sie, dass Ihre Zugangsdaten korrekt sind und der Benutzer Zugriff auf den Bucket hat.

Fehlende Dateien nach der Migration

Führen Sie die Überprüfung erneut aus:

rclone check source:relution dest:relution

Wenn Unterschiede gefunden werden, führen Sie rclone copy erneut aus; es werden nur fehlende Dateien übertragen.