[lug-ld] Warum systemd?

Sebastian Schumb webmaster at sebastians-site.de
Mi Sep 24 02:23:14 CEST 2014


Moin,

das Timing passt ja sehr gut, gestern Mittag haben wir in der Mensa
genau dieses Thema mal wieder ausführlich durchgekaut.

Ich benutze gezwungener Maßen auch systemd weil ich mehrere
ArchLinux-Installationen habe.
(2 die ich privat verbrochen habe und 2 die ich an der Uni administriere)

Auf meinen Debian-Installationen werde ich systemd allerdings solange
wie nur irgend möglich vermeiden.

Da ich bei der Diskussion von vor einigen Monaten nicht mit dabei war
sollte ich vielleicht noch meinen Standpunkt zu systemd kurz beleuchten.

Kurfassung: Die Idee ist super, die Implementierung ist Mist.

Langfassung (Achtung kann Rants und persöhnliche Meinungen enthalten):
Ich hasse das Ding wie die Pest.

Ich meine das Konzept was es alleine als Init-System tut ist nicht
schlecht und das SystemV nicht das gelbe vom Ei und upstart auch keine
sinnvolle Alternative ist ist mir schon länger klar.

Allerdings hätte man es bei einem Init-System belassen sollen.
Dass das Teil auch Logging, Teile der systemconfig, Management von
hardware, automounter, cron und in zunkunft auch noch gleich
container-Verwaltung spielen will
(http://0pointer.net/blog/revisiting-how-we-put-together-linux-systems.html)
gefällt vom Design Standpunkt aus schon überhaupt nicht.
Ich bin ein starker Verfechter der Philosophie, dass man modulare Tools
haben sollte die ein einzelnes Problem sinnvoll lösen und sich über
sauber definierte Schnittstellen zusammen schalten lassen.
Damit macht man es Leute leicht Alternativen zu entwickeln, wenn ihnen
ein Teil eines Systems nicht passt oder einfach für ihren Einsatzzweck
ungeeignet ist.
Und weil genau das Jahre lang unter Linux passiert ist, kann man sich
als Anwender an vielen Stellen aussuchen welche Kombo an Komponenten man
einsetzen will.
Systemd ist großer komplexer monolithischer Block der immer mehr
Systemkompenten schluckt.
Vor allem schluckt er sie so, dass sogar die sourcecodes zusammenwachsen
und man Dinge die früher ohne systemd liefen,
nicht einmal mehr ohne systemd kompilieren kann (siehe udev).
Das steigert den Aufwand Alternativen zu Systemd entwickeln extrem und
gerade weil systemd so verbreitet ist sterben viele alternative Projekte
langsam.
In meinen Augen geht damit viel von Artenvielfalt in der Linuxwelt verloren.

Außerdem komme ich mit systemd zwar auch gut klar, renne aber im Alltag
immer wieder in Probleme die außer mir wohl keiner damit hat.

Ich kann mal so ein paar Beispiele aufzählen:

1. Das Network-Target ist in meinen Augen broken beyond repair.
Die zwei Arch-Installationen an der Uni bekommen ihre statischen IPs per
DHCP vom RHRK (Rechenzentrum).
Außerdem mounten sie ihre homes und diverse andere Ordner per NFS.
Soweit zur Theorie ... systemd versucht nämlich das die NFS-Shares zu
mounten sobald die Netzwerkkarte eine IPv6 link local Adresse hat.
Das kann natürlich nicht funktionieren. (Außer man würde die link local
Adresse des Servers zu mounten nehmen.)
Also schlägt es fehl und die Kisten fallen auf die Emergency-Shell.
Was ist passiert ?
Na ja das Network-Target das Systemd erreichen muss, bevor er versucht
NFS-Shares zu mounten tut nur in Verbindung mit einem
Netwerkmanagement-Tool wie netctl, systemd-network oder NetworkManager
das richtige.
Ansonsten ist es einfach kaputt.
Das ist kein Bug, das soll so:
http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/
Sprich ich habe jetzt ein netctl auf zwei Kisten installiert, nicht
damit es das Netzwerk für mich konfiguriert, das ging ja auch sehr gut
ohne, sonder nur um systemd zu sagen wann ich Netzwerk habe.

2. sytemd-coredump frisst meine CPU.
Neulich schaue ich Abends eine Film in noch nicht mal HD auf meinem
Desktoprechner (neuerer i7, dicke Radeongrafikkarte für
KerbalSpaceProgram) und der Film ruckelt.
Verwirrt mache ich ein htop auf ... 12 Instanzen von systemd-coredump
schreiben um die Wette Daten irgendwo hin und lasten alle 4 Kerne voll aus.
Grund dafür war ein kaputtes flashplugin im noch offenen firefox was
wohl regelmäßig abgestürzt und neu-gestartet ist.
War aber dann auch kein Problem die Kiste war soooo langsam das man mit
dem Firefox sowieso nicht mehr viel tun konnte außer schließen.

3. Das wäre ja nicht weiter schlimm wenn ich aus den Coredumps auf das
Problem hätte schließen können.
Aber der Rechner war so eingefroren das selbst ein als root abgesetztes
reboot 10min dauerte.
Nach dem Neustart wollte ich dann mal im journal nachsehen was da
überhaupt passiert war.
Da beschwert sich journalctl über corrupted files.
Also mal gegoogelt was man da tun kann ... genau nichts:
https://bugs.freedesktop.org/show_bug.cgi?id=64116



Was mögliche Alternativen angeht:
Es gibt ein Projekt was mir da momentan etwas Hoffnung macht.
http://uselessd.darknedgy.net/
Allerdings glaube ich nicht das irgendeine Distro das in naher Zukunft
benutzen wird.
Es ist aber immerhin mal ein Anfang den großen Blob wieder modularer zu
gestalten.

Falls irgendjemand andere sinnvolle Alternative kennt oder eine
Distribution außer Gentoo empfehlen kann, die mehrere Init-Systeme
unterstützt ... immer her damit !

Grüße
Sebastian

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 884 bytes
Beschreibung: OpenPGP digital signature
URL         : http://lists.lug-ld.de/mailman/private/lug-ld/attachments/20140924/112a91a4/attachment.pgp