ubuntuusers.de

[Kwami] Debian, Ubuntu, systemd und die Zukunft

kwami.png

ubuntuusers-Serverteammitglied Stefan Betz wirft einen Blick auf die Entscheidung, zukünftig in Ubuntu das Init-System systemd anstatt der Eigenentwicklung Upstart zu nutzen.

Hinweis:

Dieser Artikel gehört der Kategorie Kwami an. Er spiegelt damit allein die Meinung des Autors und nicht zwingend die des ubuntuusers.de-Teams wider.

Mark Shuttleworth hat am vergangenen Freitag in seinem Blog 🇬🇧 bekannt gegeben, dass auch Ubuntu in Zukunft auf systemd statt Upstart setzen wird. Diese Entscheidung hat große Auswirkungen auf die Distribution. Siehe hierzu auch den Ikhaya-Artikel.

Motivation

Der Grund für diesen Sinneswandel dürfte auf die Entscheidung des Debian-CTTE von letzter Woche zurückzuführen sein. Dieses Komitee hat sich dazu entschieden, für die nächste Debian-Version „Jessie“ systemd als Standard-Init-System zu verwenden.

Zwar steht eine GR („General Resolution“) unter den rund tausend Debian-Entwicklern noch aus, dennoch ist auch hier zu erwarten, dass sich systemd als Init-System durchsetzen wird, da dieses auch in den aktuellen popcon-Daten 🇬🇧 gegenüber den vorhandenen Alternativen favorisiert wird.

Durch die, wenn auch vorübergehende, Entscheidung seitens Debian für systemd wären so alle großen Distributionen (RHEL, SLES, Debian, ...) mit Ausnahme von Ubuntu auf einem einheitlichen Init-System. Um eine weitere Isolation von Ubuntu zu verhindern, wird nun also eine sinnvolle Wende auf einen gemeinsamen Standard vollzogen.

Die Konsequenzen

Das Resultat dieser Entscheidung ist vor allem, dass eine zukünftige Weiterentwicklung des eigenen Init-Systems Upstart 🇬🇧 eher unwahrscheinlich ist, denn ohne Canonical als treibende Kraft dürften auch andere Nutzer von Upstart wie z.B. ChromeOS bald auf Alternativen umschwenken.

Eine weitere Konsequenz ist, dass Ubuntu 14.04 LTS „Trusty Tahr” wohl die letzte LTS-Version von Ubuntu mit Upstart ist. Ich gehe davon aus, dass bereits in Ubuntu 14.10 eine erste Entwicklerversion von systemd enthalten sein wird. Die nächste LTS-Version, also 16.04, wird, wenn keine größeren Komplikationen auftreten, vollständig auf systemd setzen, und somit auf einer Ebene mit den anderen Enterprise-Distributionen SLES und RHEL liegen.

Die Vorteile dieses neuen, einheitlichen Standards sind, dass sich Software leichter zwischen verschiedenen Distributionen portieren lässt, da zukünftig einheitliche Units (das systemd-Pendant zu Upstart-Jobs oder SysVinit-Skripten) ohne größere Probleme distributionsübergreifend genutzt werden können. Auch andere Teile von systemd stehen nun auf den großen Distributionen zu Verfügung, unter anderem die Timer-Units als Alternative zu crond oder auch systemd-journald als Alternative zum vorhandenen syslog.

Für Administratoren stehen durch systemd endlich standardmäßig Techniken bereit, um die Ressourcen von Diensten (CPU, RAM, IO) ordentlich zu begrenzen. Durch die Integration von systemd-logind ist es auch möglich, nach dem Logout eines Benutzers alle verbleibenden Programme restlos zu beenden. Weitere Vorteile sind die Möglichkeit, Dienste wie z.B. MySQL in Abhängigkeit für bestimmte Dateisysteme zu setzen, sodass diese Dienste erst starten, wenn auch ihre Dateisysteme verfügbar sind. Apache kann ebenfalls von MySQL und einem NFS-Share abhängig gemacht werden: Fällt ein Service aus, können davon abhängige Dienste automatisch beendet werden.

Zukünftig wird eine vollständige Protokollierung des Startvorgangs genauso Standard sein wie die Möglichkeit, Dienste bei einer Änderung der Konfigurationsdatei automatisch neu zu starten. Die Ausgaben von stdout/stderr sind nicht länger Meldungen welche beim Starten des Systems ins Nirvana verschwinden. Auch diese landen zuverlässig im Journal (und wahlweise syslog).

Mehr Arbeit

Die Migration von Upstart nach systemd bedeutet vor allem viel Arbeit, denn Upstart ist unter Ubuntu für mehr als nur das Booten des Systems zuständig. Auch die Verwaltung von User Sessions wird teilweise durch Upstart übernommen. Hier müssen Teile von Unity auf systemd – welches ebenfalls User Sessions beherrscht – portiert werden.

Dazu kommt, dass systemd wesentlich tiefer in das System integriert ist als Upstart, was durch den Wechsel von Debian nach systemd aber natürlich wiederum teilweise kompensiert wird.

Auch als Anwender sind hier einige Anpassungen erforderlich. Auf Standardsystemen wird ein dist-upgrade auch mit dem Wechsel von Upstart nach systemd noch funktionieren, doch sobald PPAs oder andere Fremdquellen im Spiel sind, dürfte für den einen oder anderen Dienst Handarbeit angesagt sein. Dazu sind für den Anwender einige neue Tools erforderlich, was aber auch zu neuen Möglichkeiten führt wie etwa der Einsatz von systemd-analyze 🇬🇧, um die Bootzeit zu optimieren.

Die Schattenseite

Durch den Wegfall von Upstart als Alternative entsteht durch systemd natürlich auch eine Monokultur, mit all seinen Nachteilen und Risiken. Keine der großen Distributionen verwendet ein anderes Init-System, mal von Gentoo abgesehen, welches optionalen Support anbietet. Ob sich diese Monokultur negativ auf die Entwicklung von Linux auswirkt, kann gegenwärtig nicht beantwortet werden, denn auch in anderen Bereichen (grafische Oberflächen, X11) waren Monokulturen lange Zeit der Standard.

Über den Autor

Stefan Betz, in diesem Portal als encbladexp bekannt, ist einer der Systemadministratoren und langjähriges Mitglied im ubuntuusers.de-Team, wo er schon als Supporter, Moderator und Mitglied des Webteams tätig war. Er beschäftigt sich schon viele Jahre mit Linux, der Systemadministration, IT-Security und den vielen Neuerungen aus der Open-Source-Szene.