In vielen Umgebungen bleibt es nicht bei einem einzelnen Incus-Server. Spätestens wenn neue Hardware angeschafft, Wartungsarbeiten durchgeführt oder eine Test- von einer Produktivumgebung getrennt werden soll, müssen Container oder virtuelle Maschinen auf andere Hosts übertragen werden.
Incus bietet dafür mehrere Möglichkeiten:
- Container kopieren
- Container verschieben
- Virtuelle Maschinen migrieren
- Backup-Server nutzen
- Remote-Hosts verwalten
Alle Verfahren sind direkt in Incus integriert und benötigen keine zusätzliche Software.
Migration oder Kopie?
Incus unterscheidet grundsätzlich zwischen zwei Verfahren.
Kopieren
Beim Kopieren bleibt das ursprüngliche System erhalten.
Es entsteht eine identische Kopie auf dem Zielserver.
Geeignet für:
- Testumgebungen
- Backups
- Klonen
- Entwicklung
Verschieben
Beim Verschieben wird das System auf den Zielserver übertragen und anschließend vom Quellserver entfernt.
Geeignet für:
- Hardwarewechsel
- Servermigration
- Lastverteilung
- Wartungsarbeiten
Voraussetzungen
Vor einer Migration sollten einige Voraussetzungen erfüllt sein.
Beide Server benötigen:
- eine aktuelle Incus-Version
- Netzwerkverbindung
- ausreichenden Speicherplatz
- passende Storage Pools
- kompatible Architektur
Zusätzlich sollten Datum und Uhrzeit auf beiden Hosts korrekt synchronisiert sein.
Remote-Server verwalten
Incus verwaltet entfernte Server über sogenannte Remotes.
Alle konfigurierten Remotes anzeigen:
incus remote list
Beispiel:
NAME URL local unix:// backup https://backup.example.com produktion https://server.example.com
Neuen Remote hinzufügen
Ein neuer Incus-Server wird mit folgendem Befehl eingebunden:
incus remote add backup https://backup.example.com
Während der Einrichtung fragt Incus nach der Vertrauensstellung zwischen beiden Servern.
Nach erfolgreicher Einrichtung erscheint der Remote automatisch in der Liste.
Verbindung testen
Ob der Remote erreichbar ist:
incus list backup:
Werden die Container des entfernten Servers angezeigt, funktioniert die Verbindung.
Container kopieren
Ein Container lässt sich sehr einfach kopieren.
incus copy webserver backup:
Jetzt existiert der Container:
- auf dem Quellserver
- auf dem Backup-Server
Beide Systeme arbeiten unabhängig voneinander.
Container unter anderem Namen kopieren
Auch ein neuer Name ist möglich.
incus copy webserver backup:webserver-test
Dies eignet sich hervorragend für:
- Testsysteme
- Schulungen
- Entwicklungsumgebungen
Virtuelle Maschinen kopieren
Virtuelle Maschinen werden genauso behandelt.
incus copy windows-vm backup:
Incus erkennt automatisch den Typ des Systems.
Container verschieben
Soll der Container vollständig umziehen:
incus move webserver backup:
Nach erfolgreicher Übertragung wird der Container auf dem Quellserver entfernt.
Dies spart Speicherplatz und verhindert doppelte Systeme.
Verschieben mit neuem Namen
Auch beim Verschieben kann ein neuer Name vergeben werden.
incus move webserver backup:webserver-produktiv
Migration auf neue Hardware
Ein typischer Ablauf:
- Neuen Incus-Server installieren.
- Remote hinzufügen.
- Container kopieren oder verschieben.
- Funktion testen.
- DNS oder Reverse Proxy anpassen.
- Alten Server außer Betrieb nehmen.
Mit dieser Vorgehensweise lassen sich Hardwarewechsel meist ohne Neuinstallation durchführen.
Backup-Server
Ein zweiter Incus-Server eignet sich hervorragend als Backup-System.
Regelmäßig können Container dorthin kopiert werden.
Beispiel:
incus copy nextcloud backup:
Zusätzlich empfiehlt sich weiterhin ein klassisches Backup der Daten.
Kombination mit Snapshots
Vor jeder Migration sollte ein Snapshot erstellt werden.
incus snapshot create webserver vor-migration
Falls Probleme auftreten, kann jederzeit zum ursprünglichen Zustand zurückgekehrt werden.
Migration kompletter Projekte
Nicht nur einzelne Container lassen sich übertragen.
Auch mehrere Systeme eines Projekts können nacheinander migriert werden.
Typischer Ablauf:
Projekt:
Produktion
enthält:
- Apache
- MariaDB
- Redis
- Nextcloud
Alle Systeme werden auf den neuen Host kopiert und anschließend getestet.
Images übernehmen
Eigene Images können ebenfalls übertragen werden.
Image exportieren:
incus image export apache-template .
Auf dem Zielserver:
incus image import metadata.tar.xz rootfs.squashfs --alias apache-template
Dadurch bleiben standardisierte Installationen erhalten.
Storage beachten
Bei Migrationen spielt der Storage Pool eine wichtige Rolle.
Besitzt der Zielserver:
- ZFS
- Btrfs
- LVM
- Ceph
sollte das passende Backend vorhanden sein.
Unterschiedliche Storage Pools sind grundsätzlich möglich, können jedoch längere Übertragungszeiten verursachen.
Netzwerk prüfen
Nach einer Migration sollten folgende Punkte kontrolliert werden:
- IP-Adresse
- Bridge
- DNS
- Gateway
- Firewall
- Reverse Proxy
Besonders bei Produktivsystemen empfiehlt sich eine vollständige Funktionsprüfung.
Live-Migration
In Cluster-Umgebungen unterstützt Incus auch Live-Migrationen.
Dabei wird ein laufender Container oder eine virtuelle Maschine auf einen anderen Host verschoben.
Vorteile:
- minimale Ausfallzeit
- keine Neuinstallation
- Wartung ohne längere Unterbrechung
- Lastverteilung
Diese Funktion setzt kompatible Storage- und Netzwerk-Konfigurationen voraus.
Typische Einsatzgebiete
Migrationen werden häufig verwendet für:
- Hardwareaustausch
- Serverumzüge
- Lastverteilung
- Clusterbetrieb
- Wartungsarbeiten
- Testumgebungen
- Backup-Server
- Hochverfügbarkeit
Best Practices
Für den produktiven Betrieb haben sich folgende Empfehlungen bewährt:
- Vor jeder Migration einen Snapshot erstellen.
- Zusätzlich ein vollständiges Backup anlegen.
- Migration zunächst in einer Testumgebung ausprobieren.
- Storage Pools auf beiden Hosts vergleichen.
- Netzwerke nach der Migration überprüfen.
- Reverse Proxy und DNS-Einträge kontrollieren.
- Systeme erst nach erfolgreicher Funktionsprüfung löschen.
- Remote-Server regelmäßig auf Erreichbarkeit testen.
Häufige Fehler
Remote nicht erreichbar
Prüfen:
incus remote list
und
incus list backup:
Firewall, Zertifikate und Netzwerkverbindung kontrollieren.
Zu wenig Speicherplatz
Vor der Migration sollte ausreichend freier Speicherplatz auf dem Zielserver vorhanden sein.
Prüfen:
df -h
Netzwerk funktioniert nach der Migration nicht
Kontrollieren:
- Bridge
- Firewall
- IP-Adresse
- DNS
- Reverse Proxy
Nützliche Befehle im Überblick
incus remote list
Zeigt alle eingerichteten Remote-Server an.
incus remote add
Bindet einen neuen Incus-Server als Remote ein.
incus list remote:
Zeigt die Container eines entfernten Servers an.
incus copy
Kopiert einen Container oder eine virtuelle Maschine auf einen anderen Host.
incus move
Verschiebt einen Container oder eine virtuelle Maschine auf einen anderen Host.
incus snapshot create
Erstellt vor einer Migration einen Sicherungspunkt.
incus image export
Exportiert ein Image.
incus image import
Importiert ein Image auf einem anderen Server.
Die integrierten Migrationsfunktionen von Incus erleichtern den Umzug von Containern und virtuellen Maschinen erheblich. Mit Remotes, Kopier- und Verschiebefunktionen sowie der Unterstützung von Backup-Servern lassen sich selbst größere Infrastrukturen effizient verwalten. In Kombination mit Snapshots und Backups entstehen sichere Migrationsprozesse, die Ausfallzeiten minimieren und einen flexiblen Betrieb ermöglichen.
Im nächsten Teil der Serie beschäftigen wir uns mit der REST-API von Incus. Du lernst, wie du Incus automatisierst, Skripte erstellst und Container oder virtuelle Maschinen über API-Aufrufe verwaltest.