
Am 25. Mai soll openSUSE Leap 15 offiziell freigegeben werden. Die Distribution steht im bereits seit einem Vierteljahrhundert rotierenden SUSE-Produktuniversum in der Mitte zwischen dem Rolling-Release Tumbleweed und der kommerziellen Ausgabe SUSE Linux Enterprise Server (SLES) und speist sich aus beiden. Im Februar hatte ich bereits auf einen Blick auf einen Snapshot im Betas-Status geworfen. Heute geht es eher um ein herausragendes Merkmal des neuen openSUSE Leap – die transaktionalen Updates.
Neue Herausforderungen
In den letzten Jahren trugen die Weiterentwicklung des Linux-Kernels und die Entstehung neuer Paketformate und Container dazu bei, dass sich vielerorts die Art und Weise, wie Software und deren Konglomerierung zu Distributionen aktualisiert wird, veränderte. Im Internet der Dinge (IoT), wo Linux auf eingebetteten Geräten läuft, sind Updates einerseits enorm wichtig, andererseits aber sehr schwierig. Sie müssen zentralisiert und automatisiert durchgeführt und kontrolliert werden. Geht dabei etwas schief, wäre bei herkömmlichen Methoden der Aktualisierung guter Rat teuer.
Deswegen kommen dort und anderswo sogenannte atomare Updates, auch als transaktionale Updates bezeichnet, zum Einsatz. Dabei wird ein Update gebündelt, nicht ungleich einem Image vollzogen. Geht dabei etwas schief, wird das gesamte Update zurückgerollt und der Zustand vor dem Update wieder hergestellt. So aktualisiert etwa Canonical seine Snaps, die bereits in vielen Geräten des IoT werkeln.
OSTree
Auch die Container-Variante von Fedora, Atomic-Workstation, trägt diese Art der Aktualisierung bereits im Namen. Gerade arbeiten die Fedora-Entwickler daran, die Workstation-Ausgabe der Distribution im Rahmen des Projekts Silverblue transaktional zu gestalten. Den Update-Mechanismen liegt die Bibliothek libostree zugrunde, die zusammen mit einigen Kommandozeilentools als OSTree bezeichnet wird. Das Paketformat Flatpak bedient sich dieses Modells ebenso wie die gerade in Version 3.4 erschienene Endless OS. Dazu wurde bei Endless eigens ein Updater geschrieben.
Btrfs + Snapper + Zypper
OpenSuse verfügt durch die Verwendung von Btrfs als Dateisystem und per Snapper kontrollierte Snapshots des Systems bereits seit längerem über ein ähnliches System, allerdings entkoppelt vom Aktualisierungsmechanismus der Distribution. Zu festgelegten Zeiten oder vor einem umfangreichen Update wird mit Snapper ein Snapshot erstellt, der eingespielt wird, falls das Update schiefgeht. Mit openSUSE Leap 15 wird dieses System nun direkt mit den Aktualisierungen verknüpft. Aus dem auf Tumbleweed basierenden Projekt Kubic, das der Entwicklung von Container-Technologien dient, stammt die Entwicklung, die künftig den Anwendern von openSUSE Leap alternativ transaktionale Updates bescheren wird.
Dabei werden Aktualisierungen entweder in einer einzigen Transaktion oder gar nicht auf das System angewendet. Dies geschieht ohne Beeinflussung des laufenden Systems. Wenn ein Update fehlschlägt oder wenn das erfolgreiche Update als inkompatibel oder anderweitig fehlerhaft angesehen wird, kann es verworfen werden, um das System sofort wieder in seinen vorherigen Betriebszustand zu versetzen.
Unberührt
Transaktions-Updates berühren nie direkt das laufende System. Anstatt das aktuelle System zu patchen, erstellt das Transaktions-Update-Tool einen neuen Snapshot. Alle für das Update erforderlichen Operationen werden vorerst nur in diesem Snapshot ausgeführt. Am Ende des Updates wird bei erfolgreicher Aktualisierung ein abgeschlossener Snapshot als neuer Standard markiert. Diese Updates werden dann beim Neustart des Systems wirksam. Wenn die Aktualisierung nicht erfolgreich war, wird der Snapshot verworfen und keine Änderung am System vorgenommen.
Wer die neue Technik bereits jetzt testen möchte, wählt bei der Installation von openSUSE Leap 15 im Tab »User Interface« die Option »Transactional Server«. Das Image der Beta-Version ist rund 3.6 GByte groß. Viel Spaß beim Testen.
Schreibe einen Kommentar