Skip to content

Monolith oder nicht?

In Bezug auf unseren Rootserver-Kernel, den wir für Erst- und Neuinstallationen und auch für unsere eigenen Server verwenden, werden wir oft gefragt, warum wir einen monolithischen Kernel verwenden - eine modulare Bauweise hat ja durchaus ihre Daseinsberechtigung.

Es gibt für beides viele Pro- und ebenso viele Contra-Argumente. Man kann hierüber durchaus heiß und bis ins technisch kleinste Detail diskutieren, je nach Anwender-Typ werden die einen oder eben die anderen Argumente mehr zur Geltung kommen.

Ich glaube, dass man hier praktisch orientiert denken soll. Wer zu Hause eine Workstation hat, mit der er viel Zeit verbringen kann, vor der er sitzen und direkt arbeiten kann, wer ein paar Server in einem kleinen Unternehmen zu administrieren hat, an die er notfalls relativ schnell dran kann, wird die Vorzüge des Modularen sicherlich zu schätzen wissen und die damit verbundenen Risiken hinnehmen können.

Wer viele Systeme, besonders dann, wenn sie im Rechenzentrum eines Dienstleisters wie bei uns stehen, administriert, wird es hingegen zu schätzen wissen, wie bequem es sein kann, wenn ein Kernel einfach alles, was für die Unterstützung der grundlegenden Hardware nötig ist, mitbringt. Gerade, wenn es sich um Treiber für Festplattencontroller (das ist meist weniger das Thema) oder Netzwerkkarten handelt, ist man froh, wenn der Server wenigstens bis zur Netzwerkebene kommt.

Hierzu ein praktisches Beispiel. In der Regel haben alle unsere Rootserver dieselben oder sehr ähnliche Netzwerkkarten. Aber das kann sich - gerade wenn der Server einmal getauscht wird (im Fehlerfall) - schnell ändern. Wer dann nur einen Kernel mit genau einem fixen Treiber gebaut hat, oder wer nur das entsprechende Modul lädt, wird sich am Anfang garantiert nicht mehr über den Vorzug eines schlanken Minimal-Kernels freuen. In meinen Augen ist der Geschwindigkeitsnachteil eines Kernels, der die gängigste Hardware unterstützt, und von dem ein paar KB ungenutzten Programmcodes eben im Speicher rumliegen, definitiv zu verschmerzen. Wer hier einen Kernel, wie wir ihn verwenden, 'hat', ist auf der sicheren Seite. Schließlich geht es darum, zu arbeiten, die Systeme mit einem sinnvollen Kompromiss aus betriebswirtschaftlichen und technischen Gesichtspunkten zu administrieren und zu betreiben.

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Marki

Wenn man ALLE Partitionen (bis auf Boot) verschlüsseln will (und beim Booten ne Passwortabfrage (auch per SSH) haben will) dann braucht man glaub ich schonmal ne initrd ;-) Wenn man dann noch Module mit reinpacken will, wieso nit ^^

Kelsar

Bei der Verschlüsselung das Passwort über SSH einzugeben hab ich auch überlegt, aber dann kann man es sich eh sparen,zumindest bei ungewollten Reboot. Weil man kann niemals nicht feststellen ob die initrd nicht kompromitiert wurde, womit man sich das dann auch sparen kann.

Mal davon abgesehen, dass man bei verschlüsselung der Root-Partition eh immer eine Initrd benötigt.

Marki

Guter Einwand! Was könnte man denn dagegen machen?
Einen Hash der initrd beim booten rechnen und vergleichen?
Andere Ideen?

BSfH

Und wie willst du den Hash zum Vergleich gegen Manipulation schützen? Wer mal eben die initrd manipuliert, der kann dann doch auch gleich den Hash so mitmanipulieren, dass es wieder passt...

Marki

Ich merke mir den richtigen Hash vorher.
Wenn jmd was umbaut ist der Hash nit mehr dasselbe, das ist ja der Sinn eines Hash-Wertes.

mmarx

Und wie berechnest du den Hash? Richtig, mit Werkzeugen aus der initrd, was anderes ist ja noch gar nicht vorhanden. Man braeuchte schon mindestens die Werkzeuge auf einem eigenen, verschluesselten Volumen, bei dem es unkritisch ist, wenn die Passphrase bekannt wird.

Kelsar

Hmm, ein Zwischenschritt über eine andere verschlüsselte Partition oder Image Datei...

Das muss ich mir mal durch den Kopf gehen lassen.

Markus_

Das Laden der nötigen Module übernimmt bei modernen Distributionen udev innerhalb der initramfs. In der Praxis booten die Standard-Kernel der großen Distributionen auch dann noch das System sauber, wenn sich die Hardware drunter ändert, vorausgesetzt natürlich die Hardware ist nicht so neu, dass sie noch nicht unterstützt wird. Eine geänderte Netzwerk-Karte oder ein neuer SCSI Controller sind kein Problem.

Ich fahre gut mit den Debian-Kerneln, gerade weil ich "viele Systeme" betreuen muss habe ich besseres zu tun, als meine Zeit mit dem Bauen von Kerneln zu verbringen.

Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA

BBCode-Formatierung erlaubt
Formular-Optionen