Login
Newsletter
Werbung

Mi, 18. Juni 2014, 14:46

Software::Systemverwaltung

Systemd 214 unterstützt zustandslose Systeme

Die Entwickler von Systemd haben dem neuen Init-System neue Funktionen spendiert, die die Bandbreite seiner Anwendungsmöglichkeiten weiter erhöhen. Lennart Poettering erläutert die Änderungen in seinem Blog.

Systemd-UI

Sievers

Systemd-UI

Zustandslose Systeme sind nach der Definition von Systemd Systeme, die ohne die Verzeichnisse /etc und /var starten. Solche Systeme speichern keine Zustände dauerhaft, sondern starten immer in demselben definierten Zustand. Die Idee ist nicht neu, war aber mit bisherigen Linux-Systemen nur schwer zu erreichen. Die meisten Programme sind bisher darauf ausgelegt, zumindest eine minimale Konfiguration aus Dateien in /etc oder /var zu lesen. Systemd arbeitet daher mit dem Trick, diese Dateien in /etc oder /var zu erzeugen, bevor die jeweiligen Programme starten.

Beginnend mit Version 214 enthält Systemd Funktionen, die zustandslose Systeme und andere spezielle Anforderungen unterstützen, weitgehend vollständig dürfte die Funktionalität erst im noch nicht veröffentlichten Systemd 215 werden. Ausgangspunkt ist die Annahme, dass alle von den Distributionen installierten Daten unterhalb von /usr liegen, was von einigen Distributionen mittlerweile umgesetzt wurde.

Die erste von Systemd ermöglichte neue Funktion ist das Rücksetzen auf Standardeinstellungen. Das Auslösen des Factory Resets führt zum Löschen aller Konfigurationen in /etc und /var und somit zu einem Systemstart wie im Auslieferungszustand. Das kann für zahlreiche Geräte von Nutzen sein, von Servern über Desktops zu eingebetteten Geräten. Ein zustandsloses System führt diese Idee noch etwas weiter, indem es überhaupt niemals Daten in /etc oder /var persistent speichert; die beiden Verzeichnisse können beispielsweise als RAM-Disks realisiert sein. Für solche Systeme entspricht jeder Neustart einem Factory Reset, vergleichbar mit dem Starten eines Live-Systems von einer DVD. Alle Konfigurationsinformationen werden zur Laufzeit bereitgestellt, sei es über Pakete des Herstellers, Server im Netz oder anderes.

Als weiteren Anwendungsfall will Systemd reproduzierbare Systeme unterstützen. Die individuellen Systeme speichern in diesem Fall nur lokale Konfigurationen oder Zustände, während sie mit einem unveränderlichen, allen gemeinsamen Schnappschuss des Basissystems starten. Konkret wird in diesem Fall das /usr-Verzeichnis schreibgeschützt per NFS oder als Bind-Mount (z.B. bei Containern) gemountet. Auch für solche Systeme gibt es zahlreiche Anwendungsfälle.

Ein weiterer Typ von Systemen sind verifizierbare Systeme. Diese dürfen nur kryptografisch gesicherte Dateien lesen. Wenn die Integrität von /usr sichergestellt werden kann, brauchen diese Systeme nur noch sicherzustellen, dass gleiches auch für /etc und /var gilt. Das heißt, dass letztere Verzeichnisse entweder ebenfalls im Betriebssystem-Image enthalten sind oder zum Booten, wie bei zustandslosen Systemen, nicht benötigt werden.

Im weiteren Verlauf seines Artikels erklärt Poettering die technischen Details hinter den Neuerungen. Neben vollständig zustandslosen Systemen gibt es auch solche, bei denen nur auf /etc oder /var verzichtet wird. Recht einfach ist der Fall des fehlenden /var. Das kann durch eine RAM-Disk ersetzt werden, in der die benötigten Verzeichnisse und Links mit einer kurzen Konfigurationsdatei angelegt werden.

Fehlt dagegen /etc, müssen zumindest einige grundlegende Daten konstruiert werden, darunter die Systembenutzer in /etc/passwd. Um hier Flexibilität zu ermöglichen, führt Systemd das Verzeichnis /usr/lib/sysusers.d ein, in dem die Benutzer deklariert werden können. Systemd verzichtet darauf, die Einrichtung mit Programmen wie useradd und groupadd vorzunehmen, sondern setzt wie überall auf einen deklarativen Ansatz. Weitere Verzeichnisse und Links können auch hier mit einer kurzen Konfigurationsdatei angelegt werden. Zudem erhält Systemd die Fähigkeit, Verzeichnisbäume an die richtige Stelle zu kopieren, wenn sie beispielsweise in /usr bereitgestellt werden.

Auch wenn Systemd mit Version 215 all diese Möglichkeiten anbietet, bleibt den Distributoren noch einige Arbeit. Pakete, die die Möglichkeiten des neuen Systemd nutzen wollen, müssen angepasst und neu erstellt werden, da sie sich nicht automatisch auswirken. Wünschenswert wäre darüber hinaus, dass der Großteil der Software auch dann starten würde, wenn /etc und /var nicht vorhanden oder leer sind, und in diesem Fall Standardeinstellungen nutzen würde. Aktuell verlassen sich sicher noch sehr viele Programme auf /etc und /var.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung