Waarom we servers herstarten
Een vraag die vrij regelmatig naar voren komt, is of servers routinematig zouden moeten worden herstart, bijvoorbeeld eens per week, of dat ze zo lang mogelijk zouden moeten kunnen draaien om een maximale “uptime” te bereiken. Voor mij is het antwoord eenvoudig – op zeldzame uitzonderingen na zijn regelmatige herstarts de meest gepaste keuze voor servers.
Zoals bij elke regel zijn er gevallen waarin hij niet van toepassing is. Sommige bedrijven die kritieke systemen draaien, hebben bijvoorbeeld geen ruimte voor downtime en moeten 24/7 beschikbaar zijn. Uiteraard kunnen systemen als deze niet zomaar op routinematige wijze worden herstart. Als een systeem echter zo kritiek is dat het nooit uit mag vallen, dan zou deze situatie een waarschuwingssignaal moeten doen rinkelen dat dit systeem een faalpunt is en zou er wellicht moeten worden nagedacht over hoe om te gaan met downtime, of die nu gepland of ongepland is.
Een andere uitzondering is dat sommige AIX-systemen aanzienlijke uptime nodig hebben, meer dan een paar weken, om maximale efficiëntie te verkrijgen, aangezien het systeem zichzelf afstemt en tijd nodig heeft om gebruiksinformatie te verzamelen en zichzelf dienovereenkomstig aan te passen. Dit blijft doorgaans beperkt tot grote, zelden veranderende databaseservers en vergelijkbare gebruiksscenario's die minder gangbaar zijn dan op andere platforms.
In de IT vereren we vaak het concept van “uptime” – hoe lang een systeem kan draaien zonder te hoeven herstarten. Maar “uptime” is geen concept dat waarde oplevert voor het bedrijf, en de IT moet te allen tijde de behoeften van het bedrijf in gedachten houden in plaats van zich te richten op kunstmatige metrieken. Het bedrijf is niet geïnteresseerd in hoe lang een server erin geslaagd is online te blijven zonder te herstarten – het kan ze alleen schelen dat de server beschikbaar en gereed is wanneer dat nodig is voor bedrijfsverwerking. Dat zijn zeer verschillende concepten.
Voor vrijwel elke normale bedrijfsserver is er een venster waarin de server beschikbaar moet zijn voor bedrijfsdoeleinden en een venster waarin hij niet nodig is. Deze vensters kunnen dagelijks, wekelijks of maandelijks zijn, maar het is een zeldzame server die daadwerkelijk zonder uitzondering rond de klok in gebruik is.
Ik hoor mensen vaak stellen dat ze, omdat ze besturingssysteem X draaien in plaats van Y, niet langer hoeven te herstarten, maar dit is simpelweg niet waar. Er zijn twee hoofdredenen om op regelmatige basis te herstarten: om het vermogen van de server om succesvol te herstarten te verifiëren en om patches toe te passen die niet kunnen worden toegepast zonder te herstarten.
Het toepassen van patches is waarom de meeste bedrijven herstarten. Vrijwel alle besturingssystemen ontvangen regelmatig updates die een herstart vereisen om van kracht te worden. Aangezien de meeste patches worden uitgebracht voor beveiligings- en stabiliteitsdoeleinden, met name die welke een herstart vereisen, is het belang ervan toe te passen tamelijk hoog. Een server onnodig kwetsbaar maken alleen maar om uptime te behouden is niet verstandig.
Het testen van het vermogen van een server om succesvol te herstarten is wat vaak over het hoofd wordt gezien. Op de meeste servers worden op regelmatige basis wijzigingen toegepast. Wijzigingen kunnen patches, nieuwe applicaties, configuratiewijzigingen, updates en dergelijke zijn. Elke wijziging introduceert risico. Het feit dat een server gezond is direct nadat een wijziging is toegepast, betekent niet dat de server of de applicaties die erop draaien bij een herstart zullen starten zoals verwacht.
Als de server nooit wordt herstart, dan weten we nooit of hij succesvol kan herstarten. Na verloop van tijd zal het aantal wijzigingen dat sinds de laatste herstart is toegepast toenemen. Dit is zeer gevaarlijk. Wat we vrezen, is een groot aantal aangebrachte wijzigingen, mogelijk veel ervan ongedocumenteerd, en een herstart die vervolgens mislukt. Op dat moment kan het identificeren welke wijziging het systeem doet falen een onoverkomelijk proces zijn. Geen enkele wijziging om terug te draaien, geen bekend pad naar herstelbaarheid. Dit is wanneer de paniek toeslaat. Uiteraard is een server die nooit opzettelijk wordt herstart meer geneigd om onopzettelijk te herstarten – wat betekent dat de kans op een mislukte herstart zowel groter is om voor te komen als groter is om voor te komen terwijl hij actief in gebruik is.
Hoewel regelmatige herstarts niet bedoeld zijn om de frequentie van mislukte herstarts te verminderen – ze verhogen feitelijk juist het optreden van storingen – is het doel om die storingen gemakkelijk beheersbaar te maken vanuit een “bekende wijziging”-standpunt en, belangrijker nog, om te bepalen wanneer die herstarts plaatsvinden, zodat ze gebeuren op een tijdstip waarop de server is aangewezen als beschikbaar voor onderhoud en bedoeld is om te worden belast, zodat problemen worden gevonden op een moment waarop ze kunnen worden verzacht zonder gevolgen voor het bedrijf.
Ik heb menig systeembeheerder horen stellen dat ze herstarts in het weekend vermijden omdat ze niet op zondag aan het werk willen zitten doordat servers na een herstart niet meer opkomen. Ik ben zelf menig zondagochtend gepiept vanwege een mislukte herstart, maar elke keer dat ik dat telefoontje ontvang, voel ik een gevoel van opluchting. Ik weet dat we zojuist een probleem hebben opgevangen op een moment waarop het bedrijf financieel niet wordt geraakt. Was die server niet tijdens de daluren herstart, dan was hij wellicht niet als “niet-opstartbaar” ontdekt totdat hij tijdens de actieve werkuren was uitgevallen en omzetverlies had veroorzaakt.
Dankzij regelmatige herstarts in het weekend kunnen we dreigende rampen veilig opvangen en, dankzij de wetenschap dat we slechts één week aan wijzigingen hoeven te onderzoeken, zijn we routinematig in staat de problemen met over het algemeen weinig moeite te verhelpen en met groot vertrouwen dat we begrijpen welke wijzigingen er vóór de storing waren aangebracht.
Regelmatige herstarts draaien om het beschermen van het bedrijf tegen storingen en downtime die kunnen worden verzacht door middel van zeer eenvoudige en betrouwbare processen.

