Migration
Migrez un service d’un nœud à un autre tout en préservant l’intégrité des données. La tâche de migration orchestre les étapes de sauvegarde, arrêt, restauration, démarrage et mise à jour DNS à travers les nœuds source et cible.
Configuration
Les éléments de données transportés pendant la migration doivent avoir à la fois une action backup et une action restore dans data_protect. Déclarez-les dans migrate :
name: my-app
nodes:
- main
data_protect:
data:
- name: uploads
backup:
strategy: files.copy
include:
- ./data/uploads
restore:
strategy: files.copy
include:
- ./data/uploads
migrate:
data:
- name: uploads| Clé | Type | Requis | Description |
|---|---|---|---|
name | string | Oui | Doit référencer un data_protect.data[].name avec les deux actions de sauvegarde et de restauration. |
enabled | bool | Non | Activer ou désactiver la migration pour cet élément. |
Exécuter la migration
Interface web :
- Ouvrez la page de détail du service.
- Utilisez les contrôles de migration pour sélectionner les nœuds source et cible.
- Cliquez sur Migrate.
CLI :
composia service my-app migrate --source main --target edge-1 --wait --follow --timeout 30mÉtapes de la migration
- Exporter les données — exécuter une tâche de sauvegarde sur le nœud source pour chaque élément de données configuré.
- Arrêter l’instance source — exécuter
docker compose down, supprimer la configuration Caddy. - Recharger Caddy sur la source — supprimer l’entrée de proxy de l’instance Caddy source.
- Restaurer les données sur la cible — exécuter une tâche de restauration sur le nœud cible pour chaque élément de données.
- Déployer sur la cible — exécuter
docker compose up -d, synchroniser la configuration Caddy. - Recharger Caddy sur la cible — appliquer l’entrée de proxy sur l’instance Caddy cible.
- Mettre à jour le DNS — mettre à jour les enregistrements DNS pour pointer vers le nœud cible.
- Écrire la configuration — mettre à jour
nodesdanscomposia-meta.yaml, commiter dans Git.
Considérations
- Le service doit être déployé sur le nœud source et le nœud cible doit être en ligne.
- La migration entraîne une brève interruption de service. Effectuez-la pendant les heures creuses.
- L’instance source est arrêtée avant le transfert de données pour garantir la cohérence.
- Pour les bases de données, utilisez les stratégies d’export (
database.pgdumpall/database.pgimport).
Restauration
La restauration d’état est actuellement disponible uniquement dans l’interface web. Ouvrez les détails de la tâche de migration, choisissez les actions de récupération correspondant à l’étape ayant échoué, puis démarrez la restauration.
| Action | Description |
|---|---|
deploy_source | Redéployer le service sur le nœud source d’origine. |
stop_target | Arrêter et nettoyer le service sur le nœud cible. |
rollback_dns | Resynchroniser les enregistrements DNS vers le nœud source. |
La CLI ne dispose pas encore de commande task rollback. Vous pouvez néanmoins inspecter et suivre la tâche de migration avec :
composia task wait --follow --timeout 30m <task-id>Voir aussi
- Sauvegardes — configuration Rustic et configuration des sauvegardes.
- Configuration des services — référence des champs
data_protectetmigrate.