Guide de migration

Ce guide explique comment migrer vos 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 :

  1. Mettre en place le nouveau backend de stockage
  2. Copier les données de l’ancien vers le nouveau stockage
  3. Mettre à jour la configuration de Relution
  4. 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

Si vous migrez vers SeaweedFS, suivez d’abord notre guide d’installation SeaweedFS →, mais ne démarrez pas encore Relution.

Assurez-vous 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

Suivez les instructions sur rclone.org/install → pour votre système d’exploitation.

Créer les configurations distantes

Lancez l’assistant de configuration :

rclone config

Configurez la source (MinIO) :

  1. Tapez n pour un nouveau remote
  2. Nom : source
  3. Type de stockage : sélectionnez s3
  4. Fournisseur : sélectionnez Minio (ou Other pour un S3 générique)
  5. Saisissez votre Access Key et Secret Key
  6. Endpoint : http://localhost:9000
  7. Conservez les valeurs par défaut pour les options restantes
  8. Confirmez avec y

Configurez la destination (SeaweedFS) :

  1. Tapez n pour un nouveau remote
  2. Nom : dest
  3. Type de stockage : sélectionnez s3
  4. Fournisseur : sélectionnez Other
  5. Saisissez votre nouvel Access Key et Secret Key
  6. Endpoint : http://localhost:8333
  7. Conservez les valeurs par défaut pour les options restantes
  8. Confirmez avec y

Tapez q pour quitter la configuration.

Vérifier l’accès aux ports

Assurez-vous que les ports de l’API S3 sont exposés sur votre hôte. Vérifiez votre 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

  1. Vérifiez 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 relution
    
  2. Démarrez le transfert :

    rclone copy source:relution dest:relution --progress
    
  3. Attendez la fin du transfert. Le temps de transfert dépend de la quantité de données dans votre bucket.

  4. Vérifiez le transfert :

    rclone check source:relution dest:relution
    

    Sortie attendue : 0 differences found

Mettre à jour la configuration de Relution

Mettez à jour la configuration de Relution pour qu’elle pointe vers le nouveau backend. Vous devez modifier les éléments suivants :

ParamètreAncienne valeurNouvelle valeur
Endpointhttp://minio:9000http://seaweedfs:8333
Access KeyAncienne cléNouvelle clé
Secret KeyAncien secretNouveau secret

Pour une description détaillée de la configuration/modification, consultez Configurer Relution →

Vérifier et nettoyer

  1. Démarrez Relution :

    docker compose up -d relution
    
  2. Vérifiez le bon fonctionnement : Connectez-vous à Relution et confirmez que les applications et ressources se chargent correctement.

  3. Supprimez l’ancien backend (uniquement après une vérification approfondie) :

    docker compose down minio  # Arrêtez l'ancien service
    
  4. Nettoyez la configuration : Supprimez l’ancien service de votre compose.yml.

  5. Supprimez les anciennes données : Supprimez l’ancien volume ou répertoire de stockage (par exemple ./volumes/minio/data).

  6. Nettoyez rclone : Vous pouvez éventuellement supprimer la configuration rclone :

    rclone config delete source
    rclone config delete dest
    

Dépannage

Connexion refusée / Timeout

Assurez-vous que les ports de l’API S3 sont exposés et non bloqués par un pare-feu ou une segmentation réseau. Testez la connectivité :

curl http://localhost:8333  # Doit retourner une erreur S3

Access denied / 401 / 403

Vérifiez que vos identifiants sont corrects et que l’utilisateur a accès au bucket.

Fichiers manquants après la migration

Relancez la vérification :

rclone check source:relution dest:relution

Si des différences sont détectées, relancez rclone copy ; seuls les fichiers manquants seront transférés.

Top