Incus Integration mit Bareos: Vorschau auf ein neues Plugin

Bareos wächst weiter mit neuen Integrationen für moderne Open-Source-Infrastrukturen. In unserem neuesten Video stellt Benjamin Somers von IMT Atlantique seine Arbeit an einem neuen Bareos Plugin für Incus vor.
Incus ist ein Manager für System-Container, Applikations-Container und virtuelle Maschinen aus dem Linux Containers Projekt. Incus bietet eine Public-Cloud-ähnliche Nutzererfahrung und ermöglicht es, Container und virtuelle Maschinen mit gemeinsamen Storage- und Netzwerkkonzepten zu verwalten.

Viele Teams suchen aktuell nach Open-Source-Virtualisierungslösungen und Alternativen zu VMware. Proxmox ist in diesem Bereich bereits sehr bekannt, aber Incus bietet einen anderen Ansatz: einen Manager für Container und virtuelle Maschinen, von lokalen Setups bis hin zu größeren Serverumgebungen.

Das neue Bareos Plugin ergänzt Backup- und Restore-Workflows für Incus Container und virtuelle Maschinen. Das Plugin ist bereits gemergt und für das kommende große Bareos Release geplant.

Warum Incus Backup wichtig ist

Incus kann System-Container, Applikations-Container und virtuelle Maschinen verwalten. Außerdem unterstützt Incus verschiedene Storage-Backends und Netzwerktypen und kann über ein Kommandozeilen-Tool, eine REST API oder Drittanbieter-Tools und Integrationen verwaltet werden.

Dadurch ist Incus in sehr unterschiedlichen Umgebungen nutzbar: auf lokalen Entwicklungssystemen, Cloud-Instanzen, Server-Racks und größeren Cluster-Setups. In der Präsentation nennt Benjamin auch reale Anwendungsfälle wie Build-Infrastrukturen, lokale isolierte Umgebungen und große Cloud-Cluster.

Wenn Incus für echte Workloads genutzt wird, wird Backup ein Teil der Infrastrukturplanung. Container und virtuelle Maschinen müssen so geschützt werden, dass es zu Incus passt: wie Incus Daten exportiert, Instanzen verwaltet und mit Storage arbeitet.

Das neue Bareos Plugin ergänzt Backup- und Restore-Workflows für Incus Container und virtuelle Maschinen. Ziel ist es, vollständige und inkrementelle Backups sowie Restores für beide Instanztypen zu unterstützen.

Wie das Plugin funktioniert

Für Container nutzt das Plugin einen Streaming-Ansatz. Incus erzeugt eine tar-Datei, und das Plugin streamt sie Datei für Datei an Bareos. Die Daten laufen direkt von Incus zum Plugin und dann weiter zu Bareos, ohne eine große temporäre Datei zu erzeugen.

Das ist hilfreich, wenn auf dem Host nicht genug freier Speicherplatz vorhanden ist, um vor dem Backup einen vollständigen temporären Export abzulegen.

Bei virtuellen Maschinen ist das Problem anders. VM-Disk-Images können sehr groß sein. Wenn die gesamte Disk als eine Datei behandelt wird, kann schon eine kleine Änderung inkrementelle Backups ineffizient machen.

Das Plugin löst dies, indem es den Disk-Stream in Chunks aufteilt. Für jeden Chunk wird ein Hash berechnet und an Bareos übergeben. Bei inkrementellen Backups kann Bareos den Hash mit dem Wert in seiner Datenbank vergleichen und nur die geänderten Chunks sichern.

So muss nicht jedes Mal das vollständige VM-Disk-Image gesichert werden.

Restore-Workflow

Für Container funktioniert der Restore in die andere Richtung. Bareos stellt die Dateien wieder her, das Plugin wandelt sie zurück in einen tar-Stream und dieser Stream wird an Incus gesendet. Auch hier funktioniert der Prozess als Stream und benötigt keine große temporäre Datei.

Bei virtuellen Maschinen ist der Restore komplexer. Bei inkrementellen Restores können Disk-Chunks in einer Reihenfolge wiederhergestellt werden, die nicht ihrer endgültigen Position im Disk-Image entspricht. Das Plugin muss die Chunks daher neu ordnen und das Disk-Image rekonstruieren, bevor es zurück an Incus gesendet wird.

Was als Nächstes kommt

Das aktuelle Plugin konzentriert sich auf Backup und Restore von Incus Containern und virtuellen Maschinen.

Zu den weiteren Ideen gehören die Unterstützung zusätzlicher Incus Objekte, zum Beispiel Storage Volumes, die nicht direkt an virtuelle Maschinen angebunden sind, Key-Value Buckets, Betriebssystem-Images und Server-Konfiguration. Auch granularere Restore-Workflows sind geplant, zum Beispiel das Wiederherstellen nur eines Teils eines Containers oder langfristig auch das Wiederherstellen einzelner Teile von Disk-Images über Incus APIs.

Die Arbeit am Plugin hat auch geholfen, mögliche Verbesserungen in Incus selbst zu identifizieren, besonders beim Reduzieren temporärer Dateien und bei den Import- und Exportmechanismen.

Video ansehen

Die vollständige Präsentation finden Sie hier:

Nach oben scrollen