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 :

  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

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) :

  1. Taper n pour un nouveau remote
  2. Nom : source
  3. Type de stockage : sélectionner s3
  4. Fournisseur : sélectionner Minio (ou Other pour un S3 générique)
  5. Saisir l’Access Key et la Secret Key
  6. Endpoint : http://localhost:9000
  7. Conserver les valeurs par défaut pour les options restantes
  8. Confirmer avec y

Configurer la destination (SeaweedFS) :

  1. Taper n pour un nouveau remote
  2. Nom : dest
  3. Type de stockage : sélectionner s3
  4. Fournisseur : sélectionner Other
  5. Saisir le nouvel Access Key et le nouveau Secret Key
  6. Endpoint : http://localhost:8333
  7. Conserver les valeurs par défaut pour les options restantes
  8. 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

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

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

  4. Vérifier le transfert :

    rclone check source:relution dest:relution
    

    Sortie 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è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, consulter Configurer Relution →


Vérifier et nettoyer

  1. Démarrer Relution :

    docker compose up -d relution
    
  2. Vérifier le bon fonctionnement : Se connecter à Relution et confirmer que les applications et ressources se chargent correctement.

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

    docker compose down minio  # Arrêtez l'ancien service
    
  4. Nettoyer la configuration : Supprimer l’ancien service du compose.yml.

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

  6. 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.

Top