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
Ein Zustands-Rollback ist derzeit nur in der Web-UI verfügbar. Öffne die Details der Migrationsaufgabe, wähle die zum fehlgeschlagenen Schritt passenden Wiederherstellungsaktionen und starte dort den Rollback.
| Aktion | Beschreibung |
|---|---|
deploy_source | Dienst erneut auf dem ursprünglichen Quell-Node bereitstellen. |
stop_target | Dienst auf dem Ziel-Node stoppen und bereinigen. |
rollback_dns | DNS-Einträge wieder mit dem Quell-Node synchronisieren. |
Die CLI hat noch keinen Befehl task rollback. Die Migrationsaufgabe kann weiterhin so geprüft und verfolgt werden:
composia task wait --follow --timeout 30m <task-id>Siehe auch
- Backups — Rustic-Einrichtung und Backup-Konfiguration.
- Dienstkonfiguration —
data_protect- undmigrate-Feldreferenz.
Zuletzt aktualisiert am • alexma233