Linux Administration

Container migrieren und kopieren – Systeme sicher zwischen Incus-Servern übertragen

Eine der größten Stärken von Incus ist die einfache Migration von Containern und virtuellen Maschinen. Ob für Wartungsarbeiten, einen Hardwarewechsel oder den Aufbau einer Hochverfügbarkeitslösung – mit wenigen Befehlen lassen sich Systeme zwischen verschiedenen Incus-Hosts kopieren oder verschieben. In diesem Teil der Serie lernst du, wie du Remote-Server einrichtest, Container migrierst und Backup-Server effizient nutzt.

4 min Lesezeit
Grafik: Container mit Incus sicher migrieren

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:

  1. Neuen Incus-Server installieren.
  2. Remote hinzufügen.
  3. Container kopieren oder verschieben.
  4. Funktion testen.
  5. DNS oder Reverse Proxy anpassen.
  6. 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.