Warum wir Server neu starten
Eine Frage, die ziemlich regelmäßig aufkommt, lautet, ob Server routinemäßig neu gestartet werden sollten, etwa einmal pro Woche, oder ob man sie so lange wie möglich laufen lassen sollte, um maximale “Uptime” zu erreichen. Für mich ist die Antwort einfach – von seltenen Ausnahmen abgesehen sind regelmäßige Neustarts die angemessenste Wahl für Server.
Wie bei jeder Regel gibt es Fälle, in denen sie nicht zutrifft. Beispielsweise haben manche Unternehmen, die kritische Systeme betreiben, kein Kontingent für Ausfallzeiten und müssen rund um die Uhr verfügbar sein. Systeme wie diese können offensichtlich nicht einfach in routinemäßiger Weise neu gestartet werden. Wenn ein System jedoch so kritisch ist, dass es niemals ausfallen darf, dann sollte diese Situation ein Warnsignal auslösen, dass dieses System ein Ausfallpunkt ist und vielleicht eine Überlegung dazu eingeleitet werden sollte, wie mit Ausfallzeiten – ob geplant oder ungeplant – umzugehen ist.
Eine weitere Ausnahme sind einige AIX-Systeme, die eine erhebliche Uptime von mehr als ein paar Wochen benötigen, um maximale Effizienz zu erreichen, da sich das System selbst abstimmt und Zeit braucht, um Nutzungsinformationen zu gewinnen und sich entsprechend anzupassen. Dies beschränkt sich tendenziell auf große, sich selten ändernde Datenbankserver und ähnliche Einsatzszenarien, die seltener vorkommen als bei anderen Plattformen.
In der IT verehren wir oft das Konzept der “Uptime” – wie lange ein System laufen kann, ohne neu gestartet werden zu müssen. Doch “Uptime” ist kein Konzept, das dem Unternehmen Wert bringt, und die IT muss stets die Bedürfnisse des Unternehmens im Blick behalten, anstatt sich auf künstliche Kennzahlen zu konzentrieren. Das Unternehmen kümmert sich nicht darum, wie lange es ein Server geschafft hat, ohne Neustart online zu bleiben – es ist ihm nur wichtig, dass der Server verfügbar und bereit ist, wenn er für die Geschäftsverarbeitung benötigt wird. Das sind sehr unterschiedliche Konzepte.
Für nahezu jeden normalen Geschäftsserver gibt es ein Zeitfenster, in dem der Server für geschäftliche Zwecke verfügbar sein muss, und ein Zeitfenster, in dem er nicht benötigt wird. Diese Zeitfenster können täglich, wöchentlich oder monatlich sein, aber es ist ein seltener Server, der tatsächlich ohne Ausnahme rund um die Uhr im Einsatz ist.
Ich höre oft Leute behaupten, dass sie, weil sie Betriebssystem X statt Y betreiben, keinen Neustart mehr benötigen, doch das ist schlicht nicht wahr. Es gibt zwei Hauptgründe, regelmäßig neu zu starten: um die Fähigkeit des Servers zu überprüfen, erfolgreich neu zu starten und um Patches anzuwenden, die ohne Neustart nicht angewendet werden können.
Das Anwenden von Patches ist der Grund, warum die meisten Unternehmen neu starten. Nahezu alle Betriebssysteme erhalten regelmäßige Updates, die einen Neustart erfordern, um wirksam zu werden. Da die meisten Patches zu Sicherheits- und Stabilitätszwecken veröffentlicht werden, insbesondere jene, die einen Neustart erfordern, ist die Wichtigkeit ihrer Anwendung ziemlich hoch. Einen Server unnötig verwundbar zu machen, nur um die Uptime aufrechtzuerhalten, ist nicht klug.
Die Fähigkeit eines Servers zu testen, erfolgreich neu zu starten, ist das, was oft übersehen wird. Bei den meisten Servern werden regelmäßig Änderungen vorgenommen. Änderungen können Patches, neue Anwendungen, Konfigurationsänderungen, Updates oder Ähnliches sein. Jede Änderung birgt ein Risiko. Nur weil ein Server unmittelbar nach dem Anwenden einer Änderung gesund ist, bedeutet das nicht, dass der Server oder die darauf laufenden Anwendungen beim Neustart wie erwartet starten werden.
Wenn der Server niemals neu gestartet wird, erfahren wir nie, ob er erfolgreich neu starten kann. Mit der Zeit wird die Zahl der seit dem letzten Neustart angewendeten Änderungen zunehmen. Das ist sehr gefährlich. Was wir fürchten, ist, dass eine große Zahl von Änderungen vorgenommen wurde, möglicherweise viele davon undokumentiert, und ein Neustart dann fehlschlägt. An diesem Punkt könnte es ein unüberwindbarer Prozess sein, herauszufinden, welche Änderung das Versagen des Systems verursacht. Keine einzelne Änderung, die sich zurücknehmen ließe, kein bekannter Weg zur Wiederherstellbarkeit. Dann setzt Panik ein. Selbstverständlich ist eine Maschine, die niemals absichtlich neu gestartet wird, eher anfällig dafür, unabsichtlich neu zu starten – was bedeutet, dass die Wahrscheinlichkeit eines fehlgeschlagenen Neustarts sowohl höher ist als auch eher während des aktiven Betriebs auftritt.
Auch wenn regelmäßige Neustarts nicht dazu gedacht sind, die Häufigkeit fehlgeschlagener Neustarts zu verringern – tatsächlich erhöhen sie sogar das Auftreten von Fehlern –, besteht der Zweck darin, diese Fehler aus dem Blickwinkel einer “bekannten Änderung” leicht handhabbar zu machen und, was noch wichtiger ist, zu steuern, wann diese Neustarts erfolgen, um sicherzustellen, dass sie zu einem Zeitpunkt geschehen, zu dem der Server als für Wartung verfügbar ausgewiesen ist und gezielt belastet werden soll, sodass Probleme zu einem Zeitpunkt gefunden werden, an dem sie ohne geschäftliche Auswirkungen abgemildert werden können.
Ich habe so manchen Systemadministrator sagen hören, dass er Wochenend-Neustarts vermeidet, weil er nicht sonntags festsitzen und arbeiten will, weil Server nach dem Neustart nicht wieder hochkommen. Ich selbst bin so manchen Sonntagmorgen wegen eines fehlgeschlagenen Neustarts angepiept worden, doch jedes Mal, wenn ich diesen Anruf erhalte, empfinde ich ein Gefühl der Erleichterung. Ich weiß, dass wir gerade ein Problem zu einem Zeitpunkt aufgespürt haben, an dem das Unternehmen finanziell nicht beeinträchtigt ist. Wäre dieser Server nicht außerhalb der Geschäftszeiten neu gestartet worden, hätte sich womöglich erst herausgestellt, dass er “nicht startfähig” ist, nachdem er während der aktiven Geschäftszeiten ausgefallen wäre und einen Umsatzverlust verursacht hätte.
Dank regelmäßiger Wochenend-Neustarts können wir bevorstehende Katastrophen gefahrlos aufspüren, und dank des Wissens, dass wir nur die Änderungen einer einzigen Woche untersuchen müssen, sind wir routinemäßig in der Lage, die Probleme im Allgemeinen mit geringem Aufwand und großer Zuversicht zu beheben, dass wir verstehen, welche Änderungen vor dem Versagen vorgenommen worden waren.
Bei regelmäßigen Neustarts geht es darum, das Unternehmen vor Ausfällen und Ausfallzeiten zu schützen, die sich durch sehr einfache und zuverlässige Prozesse abmildern lassen.

