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:
- Neues Speicher-Backend einrichten
- Daten vom alten zum neuen Speicher kopieren
- Relution-Konfiguration aktualisieren
- Altes Backend entfernen
Voraussetzungen
- Zugriff auf beide Speicher-Backends gleichzeitig
- Das
rcloneKommandozeilen-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):
- Tippen Sie
nfür neuen Remote - Name:
source - Storage-Typ: Wählen Sie
s3 - Provider: Wählen Sie
Minio(oderOtherfür generisches S3) - Geben Sie Ihren Access Key und Secret Key ein
- Endpoint:
http://localhost:9000 - Übernehmen Sie die Standardwerte für die verbleibenden Optionen
- Bestätigen Sie mit
y
Konfigurieren Sie das Ziel (SeaweedFS):
- Tippen Sie
nfür neuen Remote - Name:
dest - Storage-Typ: Wählen Sie
s3 - Provider: Wählen Sie
Other - Geben Sie Ihren neuen Access Key und Secret Key ein
- Endpoint:
http://localhost:8333 - Übernehmen Sie die Standardwerte für die verbleibenden Optionen
- 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
Ü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 relutionStarten Sie den Transfer:
rclone copy source:relution dest:relution --progressWarten Sie auf den Abschluss. Die Übertragungszeit hängt von der Datenmenge in Ihrem Bucket ab.
Überprüfen Sie den Transfer:
rclone check source:relution dest:relutionErwartete 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:
| Einstellung | Alter Wert | Neuer Wert |
|---|---|---|
| Endpoint | http://minio:9000 | http://seaweedfs:8333 |
| Access Key | Alter Key | Neuer Key |
| Secret Key | Alter Secret | Neuer Secret |
Eine detaillierte Beschreibung der Einrichtung/Änderung: Relution konfigurieren →
Schritt 5: Überprüfen und Aufräumen
Starten Sie Relution:
docker compose up -d relutionÜberprüfen Sie die Funktionalität: Melden Sie sich bei Relution an und bestätigen Sie, dass Apps und Ressourcen korrekt geladen werden.
Entfernen Sie das alte Backend (nur nach gründlicher Überprüfung):
docker compose down minio # Stoppen Sie den alten ServiceBereinigen Sie die Konfiguration: Entfernen Sie den alten Service aus Ihrer
compose.yml.Löschen Sie alte Daten: Entfernen Sie das alte Speicher-Volume oder -Verzeichnis (z.B.
./volumes/minio/data).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.