Open Source im professionellen Einsatz

Neue Systemd-Tools: Mkosi und Casync

29.06.2017

In seinem Blog hat Systemd-Entwickler Lennart Poettering zwei neue Systemd-Tools vorgestellt: Mkosi und Casync. Während Entwickler mit Mkosi OS-Images generieren, hilft Casync beim Verteilen derselben.

345

Wer "mkdir" und "mkfs" kennt, kann sich womöglich denken, wofür "mkosi" steht: Make Operating System Image. Es erzeugt, wie einige andere Linux-Tools auch, bootbare Betriebssystem-Images. Laut Lennart Poettering eignet es sich aber für einige Aufgaben besonders gut, die vergleichbare Tools nicht oder anders machen.

Mkosi richtet sich an Entwickler, die OS-Images zum Testen und Debuggen brauchen, aber kryptografisch geschützte Images für den produktiven Einsatz. Ergänzt ein Entwickler sein Projekt um ein File namens "mkosi.default" baut Mkosi zunächst ein Image mit Headern und Tools, kompiliert den Projektcode und startet die Testsuite. Dann verwirft es das Image, baut ein neues ohne die Header und Tools, installiert aber die beim Build generierten Dateien (Build Artifacts). Das finale Image sei produktionsreif, weil es nur das erzeugte Programm und ein minimales, vom Entwickler vorkonfiguriertes, Set an Paketen enthält.

Für die generierten Images verwendet das Tool zeitgemäße Technologien. Dazu zählen GPT-Partitionstabellen anstelle von MBR/DOS, die der Discoverable Partition Spec folgen. Bootbare Images laufen auf EFI-Firmware, nicht aber auf BIOS-Basis. Konkret erzeugt Mkosi rohe GPT-Images mit wahlweise Ext4, Btr-FS und RO-Squash-FS als Root-Dateisystem. Alternativ generiert Mkosi ein flaches Verzeichnis auf dem Laufwerk, das den reinen OS-Tree enthält, ein Btr-FS-Subvolume oder einen Tarball eines flachen Verzeichnisses. Zusätzliche Möglichkeiten, wie das Anlegen eines Swap-Bereichs, eine LUKS-Verschlüsselung für "/root" und separate "/home" oder "/srv"-Partitionen, stellt die Mkosi-Ankündigung vor.

Casync kann die fertigen Images dann bei Bedarf ausliefern. Es kombiniere laut Poettering die Rsync-Algorithmen mit dem Content-Address-Ansatz von Git und eigne sich insbesondere für den Anwendungsfall, häufig aktualisierte Images mit Dateisystemen effizient und sicher zu verteilen. Vereinfacht dargestellt serialisiert der Chunking-Algorithmus die Daten und zerlegt sie in verschieden große Häppchen. Die Xz-komprimierten Chunks landen dann in einem Chunk Store, während sich ein Chunk Index mit Hilfe einer SHA256-Hashfunktion die Reihenfolge der komprimierten Chunks merkt. Weitere Details zu den Funktionen von Casync liefert der zugehörige Blogeintrag.

Ähnliche Artikel

comments powered by Disqus

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.