Guide de migration
Ce guide explique comment migrer les données Relution d’un backend de stockage objet vers un autre. Les scénarios courants incluent :
- La migration de MinIO vers SeaweedFS (MinIO n’est plus maintenu)
- Le passage d’un fournisseur cloud vers un hébergement auto-géré (ou l’inverse)
- Le changement de fournisseur cloud
Les exemples ci-dessous illustrent une migration de MinIO vers SeaweedFS, mais les étapes peuvent être adaptées à toute source et destination compatibles S3.
Le processus de migration comprend quatre étapes :
- Mettre en place le nouveau backend de stockage
- Copier les données de l’ancien vers le nouveau stockage
- Mettre à jour la configuration de Relution
- Supprimer l’ancien backend
Prérequis
- Un accès simultané aux deux backends de stockage
- L’outil en ligne de commande
rclone(guide d’installation →) - Les identifiants des deux backends de stockage
Mettre en place le nouveau backend
Pour une migration vers SeaweedFS, suivre d’abord notre guide d’installation SeaweedFS →, mais ne pas encore démarrer Relution.
S’assurer que l’ancien et le nouveau backend de stockage sont tous deux en cours d’exécution :
docker compose up -d minio seaweedfs
Configurer rclone
L’outil rclone offre un moyen rapide et fiable de copier des données entre backends compatibles S3.
Installer rclone
Suivre les instructions sur rclone.org/install → selon le système d’exploitation utilisé.
Créer les configurations distantes
Lancer l’assistant de configuration :
rclone config
Configurer la source (MinIO) :
- Taper
npour un nouveau remote - Nom :
source - Type de stockage : sélectionner
s3 - Fournisseur : sélectionner
Minio(ouOtherpour un S3 générique) - Saisir l’Access Key et la Secret Key
- Endpoint :
http://localhost:9000 - Conserver les valeurs par défaut pour les options restantes
- Confirmer avec
y
Configurer la destination (SeaweedFS) :
- Taper
npour un nouveau remote - Nom :
dest - Type de stockage : sélectionner
s3 - Fournisseur : sélectionner
Other - Saisir le nouvel Access Key et le nouveau Secret Key
- Endpoint :
http://localhost:8333 - Conserver les valeurs par défaut pour les options restantes
- Confirmer avec
y
Taper q pour quitter la configuration.
Vérifier l’accès aux ports
S’assurer que les ports de l’API S3 sont exposés sur l’hôte. Vérifier le compose.yml :
minio:
ports:
- "9000:9000" # API S3 - doit être accessible
- "9001:9001" # Console web
# ...
seaweedfs:
ports:
- "8333:8333" # API S3 - doit être accessible
- "23646:23646" # Console web
Copier les données
Vérifier que Relution est arrêté afin d’éviter toute modification des données pendant la migration :
docker compose ps # Doit afficher les backends de stockage, mais PAS relutionDémarrer le transfert :
rclone copy source:relution dest:relution --progressAttendre la fin du transfert. Le temps de transfert dépend de la quantité de données dans le bucket.
Vérifier le transfert :
rclone check source:relution dest:relutionSortie attendue :
0 differences found
Mettre à jour la configuration de Relution
Mettre à jour la configuration de Relution pour qu’elle pointe vers le nouveau backend. Les éléments suivants doivent être modifiés :
| Paramètre | Ancienne valeur | Nouvelle valeur |
|---|---|---|
| Endpoint | http://minio:9000 | http://seaweedfs:8333 |
| Access Key | Ancienne clé | Nouvelle clé |
| Secret Key | Ancien secret | Nouveau secret |
Pour une description détaillée de la configuration/modification, consulter Configurer Relution →
Vérifier et nettoyer
Démarrer Relution :
docker compose up -d relutionVérifier le bon fonctionnement : Se connecter à Relution et confirmer que les applications et ressources se chargent correctement.
Supprimer l’ancien backend (uniquement après une vérification approfondie) :
docker compose down minio # Arrêtez l'ancien serviceNettoyer la configuration : Supprimer l’ancien service du
compose.yml.Supprimer les anciennes données : Supprimer l’ancien volume ou répertoire de stockage (par exemple
./volumes/minio/data).Nettoyer rclone : Il est également possible de supprimer la configuration rclone :
rclone config delete source rclone config delete dest
Dépannage
Connexion refusée / Timeout
S’assurer que les ports de l’API S3 sont exposés et non bloqués par un pare-feu ou une segmentation réseau. Tester la connectivité :
curl http://localhost:8333 # Doit retourner une erreur S3
Access denied / 401 / 403
Vérifier que les identifiants sont corrects et que l’utilisateur a accès au bucket.
Fichiers manquants après la migration
Relancer la vérification :
rclone check source:relution dest:relution
Si des différences sont détectées, relancer rclone copy ; seuls les fichiers manquants seront transférés.