Migration
Migriere einen Dienst von einem Node zu einem anderen unter Wahrung der Datenintegrität. Die Migrationsaufgabe orchestriert Backup-, Stopp-, Restore-, Start- und DNS-Update-Schritte über Quell- und Ziel-Nodes hinweg.
Konfiguration
Datenelemente, die während der Migration übertragen werden, müssen sowohl eine backup- als auch eine restore-Aktion in data_protect haben. Deklariere sie in 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| Schlüssel | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
name | string | Ja | Muss auf einen data_protect.data[].name mit sowohl Backup- als auch Restore-Aktionen verweisen. |
enabled | bool | Nein | Aktiviert oder deaktiviert die Migration für dieses Element. |
Migration ausführen
Web-UI:
- Öffne die Dienst-Detailseite.
- Verwende die Migrationssteuerung, um Quell- und Ziel-Nodes auszuwählen.
- Klicke auf Migrieren.
CLI:
composia service my-app migrate --source main --target edge-1 --wait --follow --timeout 30mMigrationsschritte
- Daten exportieren — Führe eine Backup-Aufgabe auf dem Quell-Node für jedes konfigurierte Datenelement aus.
- Quellinstanz stoppen — Führe
docker compose downaus, entferne die Caddy-Konfiguration. - Caddy auf der Quelle neu laden — Entferne den Proxy-Eintrag von der Quell-Caddy-Instanz.
- Daten auf dem Ziel wiederherstellen — Führe eine Restore-Aufgabe auf dem Ziel-Node für jedes Datenelement aus.
- Auf dem Ziel deployen — Führe
docker compose up -daus, synchronisiere die Caddy-Konfiguration. - Caddy auf dem Ziel neu laden — Wende den Proxy-Eintrag auf der Ziel-Caddy-Instanz an.
- DNS aktualisieren — Aktualisiere DNS-Records, um auf den Ziel-Node zu verweisen.
- Konfiguration schreiben — Aktualisiere
nodesincomposia-meta.yaml, committe in Git.
Überlegungen
- Der Dienst muss auf dem Quell-Node deployed sein und der Ziel-Node muss online sein.
- Die Migration verursacht kurze Ausfallzeiten. Führe sie außerhalb der Spitzenzeiten durch.
- Die Quellinstanz wird vor der Datenübertragung gestoppt, um Konsistenz zu gewährleisten.
- Für Datenbanken verwende Exportstrategien (
database.pgdumpall/database.pgimport).
Rollback
State rollback is currently available in the Web UI only. Open the migration task details, choose the recovery actions that match the failed step, and start rollback there.
| Action | Description |
|---|---|
deploy_source | Redeploy the service on the original source node. |
stop_target | Stop and clean up the service on the target node. |
rollback_dns | Sync DNS records back to the source node. |
The CLI does not have a task rollback command yet. You can still inspect and follow the migration task with:
composia task wait --follow --timeout 30m <task-id>Siehe auch
- Backups — Rustic-Einrichtung und Backup-Konfiguration.
- Dienstkonfiguration —
data_protect- undmigrate-Feldreferenz.
Zuletzt aktualisiert am • Renovate Bot