Migrationsanleitung
Diese Anleitung erklärt, wie sich Relution-Daten von einem Objektspeicher-Backend zu einem anderen migrieren lassen. 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.
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
Neues Backend einrichten
Bei einer Migration zu SeaweedFS zuerst der SeaweedFS-Einrichtungsanleitung → folgen, aber Relution noch nicht starten.
Sicherstellen, dass sowohl altes als auch neues Speicher-Backend laufen:
docker compose up -d minio seaweedfs
rclone konfigurieren
Das rclone Tool bietet eine schnelle und zuverlässige Möglichkeit, Daten zwischen S3-kompatiblen Backends zu kopieren.
rclone installieren
Den Anweisungen auf rclone.org/install → für das jeweilige Betriebssystem folgen.
Remote-Konfigurationen erstellen
Den Konfigurationsassistenten starten:
rclone config
Die Quelle konfigurieren (MinIO):
nfür neuen Remote tippen- Name:
source - Storage-Typ:
s3wählen - Provider:
Miniowählen (oderOtherfür generisches S3) - Den eigenen Access Key und Secret Key eingeben
- Endpoint:
http://localhost:9000 - Die Standardwerte für die verbleibenden Optionen übernehmen
- Mit
ybestätigen
Das Ziel konfigurieren (SeaweedFS):
nfür neuen Remote tippen- Name:
dest - Storage-Typ:
s3wählen - Provider:
Otherwählen - Den neuen Access Key und Secret Key eingeben
- Endpoint:
http://localhost:8333 - Die Standardwerte für die verbleibenden Optionen übernehmen
- Mit
ybestätigen
q tippen, um die Konfiguration zu beenden.
Port-Zugriff überprüfen
Sicherstellen, dass die S3-API-Ports auf dem eigenen Host freigegeben sind. Die compose.yml prüfen:
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
Daten kopieren
Überprüfen, dass Relution gestoppt ist, um Datenänderungen während der Migration zu verhindern:
docker compose ps # Sollte Speicher-Backends anzeigen, aber NICHT relutionDen Transfer starten:
rclone copy source:relution dest:relution --progressAuf den Abschluss warten. Die Übertragungszeit hängt von der Datenmenge im Bucket ab.
Den Transfer überprüfen:
rclone check source:relution dest:relutionErwartete Ausgabe:
0 differences found
Relution-Konfiguration aktualisieren
Die Relution-Konfiguration aktualisieren, um auf das neue Backend zu zeigen. Dabei muss Folgendes geändert werden:
| 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 →
Überprüfen und Aufräumen
Relution starten:
docker compose up -d relutionDie Funktionalität überprüfen: Bei Relution anmelden und bestätigen, dass Apps und Ressourcen korrekt geladen werden.
Das alte Backend entfernen (nur nach gründlicher Überprüfung):
docker compose down minio # Alten Service stoppenDie Konfiguration bereinigen: Den alten Service aus der eigenen
compose.ymlentfernen.Alte Daten löschen: Das alte Speicher-Volume oder -Verzeichnis entfernen (z. B.
./volumes/minio/data).rclone bereinigen: Optional lässt sich die rclone-Konfiguration entfernen:
rclone config delete source rclone config delete dest
Fehlerbehebung
Connection refused / Timeout
Sicherstellen, dass die S3-API-Ports freigegeben und nicht durch eine Firewall oder Netzwerktrennung blockiert sind. Die Verbindung testen:
curl http://localhost:8333 # Sollte einen S3-Fehler zurückgeben
Access denied / 401 / 403
Überprüfen, dass die Zugangsdaten korrekt sind und der Benutzer Zugriff auf den Bucket hat.
Fehlende Dateien nach der Migration
Die Überprüfung erneut ausführen:
rclone check source:relution dest:relution
Wenn Unterschiede gefunden werden, rclone copy erneut ausführen; es werden nur fehlende Dateien übertragen.