Dienstag, 18. August 2009, 14:42
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.
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
Kelsar
Mal davon abgesehen, dass man bei verschlüsselung der Root-Partition eh immer eine Initrd benötigt.
Marki
Einen Hash der initrd beim booten rechnen und vergleichen?
Andere Ideen?
BSfH
Marki
Wenn jmd was umbaut ist der Hash nit mehr dasselbe, das ist ja der Sinn eines Hash-Wertes.
mmarx
Kelsar
Das muss ich mir mal durch den Kopf gehen lassen.
Markus_
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.