Linux Administration

Die Architektur von Incus verstehen – So arbeiten Container und virtuelle Maschinen im Hintergrund

Incus überzeugt nicht nur durch eine einfache Bedienung, sondern auch durch eine durchdachte Architektur. Wer die wichtigsten Komponenten kennt, versteht schnell, wie Container, virtuelle Maschinen, Netzwerke und Speicherbereiche zusammenspielen. In diesem Teil der Serie werfen wir einen Blick hinter die Kulissen und erklären die zentralen Bausteine von Incus.

4 min Lesezeit
Grafik: Die Architektur von Incus einfach erklärt

Einleitung

Nach der erfolgreichen Installation stellt sich häufig die Frage: Wie funktioniert Incus eigentlich?

Auf den ersten Blick scheint alles recht einfach zu sein: Ein Befehl erstellt einen Container, ein anderer startet ihn. Tatsächlich steckt dahinter jedoch eine leistungsfähige Architektur, die verschiedene Komponenten intelligent miteinander verbindet.

Incus verwaltet Container und virtuelle Maschinen über einen zentralen Daemon. Images dienen als Vorlagen für neue Systeme, Storage Pools übernehmen die Datenspeicherung und virtuelle Netzwerke sorgen für die Kommunikation. Ergänzt wird das Ganze durch Profile, Projects und Devices, die eine flexible und übersichtliche Verwaltung ermöglichen.

Wer diese Architektur versteht, kann Incus effizient einsetzen und auch komplexe Umgebungen problemlos verwalten.


Die Architektur im Überblick

Die wichtigsten Komponenten von Incus sind:

  • Incus Daemon
  • Client (CLI)
  • Images
  • Container und virtuelle Maschinen
  • Storage Pools
  • Networks
  • Profiles
  • Projects
  • Devices
  • Cluster

Alle diese Bausteine arbeiten eng zusammen.

Ein typischer Ablauf sieht so aus:

  1. Der Administrator gibt einen Befehl über die Incus-CLI ein.
  2. Die CLI sendet den Befehl an den Incus-Daemon.
  3. Der Daemon verarbeitet die Anfrage.
  4. Das gewünschte Image wird verwendet.
  5. Der Container oder die virtuelle Maschine wird erstellt.
  6. Profile, Netzwerk und Storage werden automatisch eingebunden.
  7. Das System wird gestartet.

Dadurch bleibt die Bedienung einfach, obwohl im Hintergrund viele Prozesse ablaufen.


Der Incus-Daemon

Der Daemon ist das Herzstück von Incus.

Er läuft dauerhaft im Hintergrund und übernimmt sämtliche Verwaltungsaufgaben.

Zu seinen Aufgaben gehören:

  • Container erstellen
  • virtuelle Maschinen verwalten
  • Images herunterladen
  • Netzwerke konfigurieren
  • Storage verwalten
  • Snapshots erzeugen
  • Backups erstellen
  • API-Anfragen bearbeiten

Die CLI kommuniziert ausschließlich mit diesem Daemon.

Sein Status lässt sich jederzeit prüfen:

systemctl status incus

Starten:

sudo systemctl start incus

Stoppen:

sudo systemctl stop incus

Aktivieren beim Systemstart:

sudo systemctl enable incus

Die Incus-CLI

Die meisten Administratoren arbeiten über die Kommandozeile.

Typische Befehle sind:

incus list
incus launch
incus shell
incus exec
incus info

Die CLI selbst enthält keine Logik.

Sie dient lediglich als Schnittstelle zum Daemon.

Alternativ lässt sich Incus auch vollständig über die REST-API automatisieren.


Images

Ein Image ist die Vorlage für einen neuen Container oder eine virtuelle Maschine.

Man kann sich ein Image wie eine Installations-DVD vorstellen.

Incus lädt Images automatisch herunter und speichert sie lokal zwischen.

Unterstützt werden zahlreiche Distributionen:

  • Debian
  • Ubuntu
  • Alpine Linux
  • Fedora
  • Rocky Linux
  • AlmaLinux
  • Arch Linux
  • openSUSE

Verfügbare Images anzeigen:

incus image list images:

Debian suchen:

incus image list images: debian

Beim ersten Start eines Containers wird das benötigte Image automatisch heruntergeladen.

Weitere Container können anschließend wesentlich schneller erstellt werden.


Storage Pools

Jeder Container benötigt Speicherplatz.

Diesen verwaltet Incus über sogenannte Storage Pools.

Ein Storage Pool ist der zentrale Bereich, in dem Container, virtuelle Maschinen, Images und Snapshots gespeichert werden.

Unterstützte Backends sind unter anderem:

  • dir
  • ZFS
  • Btrfs
  • LVM
  • Ceph

Je nach Umgebung bieten die verschiedenen Backends unterschiedliche Vorteile.

dir

  • einfach
  • keine Zusatzsoftware
  • ideal zum Lernen

ZFS

  • Snapshots
  • Clones
  • Komprimierung
  • hohe Performance
  • Datenintegrität

Btrfs

  • Copy-on-Write
  • Snapshots
  • Prüfsummen

LVM

  • klassische Volume-Verwaltung
  • gute Performance

Ceph

  • Clusterbetrieb
  • verteilte Speicherung
  • Hochverfügbarkeit

Storage Pools anzeigen:

incus storage list

Networks

Container benötigen Netzwerkzugriff.

Incus verwaltet Netzwerke vollständig selbst.

Standardmäßig wird eine Bridge angelegt:

incusbr0

Diese übernimmt:

  • DHCP
  • NAT
  • IPv4
  • IPv6
  • DNS

Dadurch erhalten neue Container automatisch eine funktionierende Netzwerkverbindung.

Weitere Netzwerktypen sind:

  • Bridge
  • MacVLAN
  • OVN
  • Physical
  • Routed

Netzwerke anzeigen:

incus network list

Projects

Projects dienen der logischen Trennung verschiedener Umgebungen.

Ein Beispiel:

Projekt „Entwicklung“

  • Testserver
  • Datenbanken
  • GitLab

Projekt „Produktion“

  • Webserver
  • Reverse Proxy
  • Nextcloud

Projekt „Kunde A“

  • Webserver
  • Datenbank
  • Mailserver

Die einzelnen Projekte sind voneinander getrennt und besitzen eigene Ressourcen.

Gerade in Unternehmen sorgt das für Übersicht und Sicherheit.

Projects anzeigen:

incus project list

Profiles

Profiles gehören zu den wichtigsten Funktionen von Incus.

Ein Profil enthält wiederverwendbare Einstellungen.

Beispielsweise:

  • CPU-Limit
  • RAM-Limit
  • Netzwerk
  • Storage
  • Devices
  • Sicherheitsrichtlinien

Ein neues Profil kann auf beliebig viele Container angewendet werden.

Dadurch muss dieselbe Konfiguration nicht mehrfach erstellt werden.

Profile anzeigen:

incus profile list

Devices

Devices verbinden den Host mit Containern oder virtuellen Maschinen.

Typische Geräte sind:

  • Netzwerkkarten
  • Festplatten
  • USB-Geräte
  • GPU
  • PCI-Geräte
  • Serielle Schnittstellen

Beispiele:

  • Ein USB-Stick soll im Container verfügbar sein.
  • Eine NVIDIA-GPU soll für KI-Anwendungen genutzt werden.
  • Ein zusätzliches Verzeichnis wird eingebunden.
  • Eine zweite Netzwerkkarte wird hinzugefügt.

Diese Geräte werden über das jeweilige Profil oder direkt am Container konfiguriert.


Container und virtuelle Maschinen

Incus unterstützt zwei Betriebsarten.

Linux-Container

Container teilen sich den Kernel des Hosts.

Vorteile:

  • extrem schnell
  • geringer Speicherbedarf
  • ideal für Linux-Dienste

Typische Anwendungen:

  • Apache
  • Nginx
  • MariaDB
  • PostgreSQL
  • Nextcloud
  • Gitea

Virtuelle Maschinen

Virtuelle Maschinen besitzen einen eigenen Kernel.

Sie laufen auf Basis von QEMU/KVM.

Vorteile:

  • vollständige Hardwarevirtualisierung
  • Windows möglich
  • BSD möglich
  • maximale Isolation

Sie eignen sich besonders für Anwendungen, die einen eigenen Kernel oder ein anderes Betriebssystem benötigen.


Clusterfähigkeit

Eine der leistungsfähigsten Funktionen von Incus ist der Clusterbetrieb.

Dabei arbeiten mehrere Server gemeinsam.

Ein Cluster ermöglicht:

  • zentrale Verwaltung
  • Lastverteilung
  • Migration laufender Systeme
  • Hochverfügbarkeit
  • gemeinsame Storage-Lösungen

Typischer Aufbau:

Server 1

  • Container
  • Storage

Server 2

  • Container
  • Storage

Server 3

  • Container
  • Storage

Alle Server erscheinen als eine gemeinsame Incus-Umgebung.

Für kleine Homelabs ist diese Funktion meist nicht erforderlich. In Unternehmensumgebungen bietet sie jedoch erhebliche Vorteile hinsichtlich Ausfallsicherheit und Skalierbarkeit.


Zusammenspiel der Komponenten

Die Architektur von Incus folgt einem klaren Prinzip:

  • Der Daemon verwaltet alle Ressourcen.
  • Images dienen als Vorlagen für neue Systeme.
  • Storage Pools speichern Container, virtuelle Maschinen und Snapshots.
  • Networks stellen die Kommunikation sicher.
  • Profiles definieren wiederverwendbare Einstellungen.
  • Projects trennen unterschiedliche Umgebungen logisch voneinander.
  • Devices verbinden Hardware mit Containern oder virtuellen Maschinen.
  • Cluster ermöglichen den Betrieb über mehrere Server hinweg.

Durch dieses modulare Konzept bleibt Incus sowohl für kleine Einzelserver als auch für große Cluster übersichtlich und flexibel.


Die Architektur von Incus wirkt auf den ersten Blick umfangreich, folgt jedoch einem klaren und logischen Aufbau. Der zentrale Daemon koordiniert alle Aufgaben, während Images, Storage Pools, Netzwerke, Profiles und Projects jeweils einen klar definierten Zweck erfüllen. Dieses modulare Konzept macht Incus sowohl für Einsteiger als auch für professionelle Administratoren zu einer leistungsfähigen Plattform.

Wer die einzelnen Bausteine verstanden hat, wird sich in den folgenden Teilen der Serie deutlich leichter zurechtfinden.

Im nächsten Teil erstellen wir unseren ersten Linux-Container, greifen per Shell darauf zu und lernen die wichtigsten Verwaltungsbefehle im praktischen Einsatz kennen.