Hvorfor vi genstarter servere
Et spørgsmål, der dukker op ret regelmæssigt, er, om servere bør genstartes rutinemæssigt, f.eks. én gang om ugen, eller om de bør have lov at køre så længe som muligt for at opnå maksimal “oppetid.” For mig er svaret enkelt – med sjældne undtagelser er regelmæssige genstarter det mest hensigtsmæssige valg for servere.
Som med enhver regel er der tilfælde, hvor den ikke gælder. For eksempel har nogle virksomheder, der kører kritiske systemer, ingen tildeling til nedetid og skal være tilgængelige 24/7. Åbenbart kan sådanne systemer ikke blot genstartes på en rutinemæssig måde. Imidlertid, hvis et system er så kritisk, at det aldrig må gå ned, bør denne situation udløse et rødt flag om, at dette system er et fejlpunkt, og overvejelse af, hvordan man håndterer nedetid, hvad enten den er planlagt eller uplanlagt, bør igangsættes.
En anden undtagelse er, at nogle AIX-systemer har brug for betydelig oppetid, mere end et par uger, for at opnå maksimal effektivitet, da systemet er selvjusterende og har brug for tid til at indhente brugsoplysninger og justere sig i overensstemmelse hermed. Dette er typisk begrænset til store, sjældent-ændrende databaseservere og lignende anvendelsesscenarier, der er mindre almindelige end andre platforme.
I IT tilbeder vi ofte konceptet “oppetid” – hvor længe et system kan køre uden at skulle genstarte. Men “oppetid” er ikke et koncept, der bringer værdi til virksomheden, og IT skal altid holde virksomhedens behov for øje frem for at fokusere på kunstige metrikker. Virksomheden er ikke bekymret for, hvor længe en server har formået at forblive online uden at genstarte – de bekymrer sig kun om, at serveren er tilgængelig og klar, når der er brug for den til forretningsbehandling. Dette er meget forskellige koncepter.
For de fleste normale forretningsservere er der et vindue, hvor serveren skal være tilgængelig til forretningsformål, og et vindue, hvor den ikke er nødvendig. Disse vinduer kan være daglige, ugentlige eller månedlige, men det er en sjælden server, der faktisk er i brug døgnet rundt uden undtagelse.
Jeg hører ofte folk sige, at fordi de kører operativsystem X frem for Y, behøver de ikke længere at genstarte, men dette er simpelthen ikke sandt. Der er to hovedårsager til at genstarte regelmæssigt: at verificere serverens evne til at genstarte med succes og at anvende patches, der ikke kan anvendes uden genstart.
At anvende patches er grunden til, at de fleste virksomheder genstarter. Næsten alle operativsystemer modtager regelmæssige opdateringer, der kræver genstart for at træde i kraft. Da de fleste patches udgives til sikkerheds- og stabilitetsformål, især dem der kræver genstart, er vigtigheden af at anvende dem ret høj. At gøre en server unødigt sårbar blot for at opretholde oppetid er ikke klogt.
At teste en servers kapacitet til at genstarte med succes er det, der ofte overses. De fleste servere har ændringer anvendt på sig regelmæssigt. Ændringer kan være patches, nye applikationer, konfigurationsændringer, opdateringer eller lignende. Enhver ændring introducerer risiko. Bare fordi en server er sund umiddelbart efter, at en ændring er anvendt, betyder det ikke, at serveren eller de applikationer, der kører på den, vil starte som forventet ved genstart.
Hvis serveren aldrig genstartes, ved vi aldrig, om den kan genstarte med succes. Over tid vil antallet af ændringer, der er anvendt siden den seneste genstart, stige. Dette er meget farligt. Det, vi frygter, er at et stort antal ændringer er foretaget, muligvis mange af dem udokumenterede, og en genstart derefter fejler. På det tidspunkt kan identifikation af, hvilken ændring der forårsager systemfejlen, være en uoverkommelig proces. Ingen enkelt ændring at rulle tilbage, ingen kendt sti til gendannelse. Det er her panikken opstår. Selvfølgelig er en server, der aldrig genstartes intentionelt, mere tilbøjelig til at genstarte utilsigtet – hvilket betyder, at chancen for en mislykket genstart er både mere sandsynlig og mere tilbøjelig til at opstå under aktiv brug.
Mens regelmæssige genstarter ikke er beregnet til at reducere hyppigheden af mislykkede genstarter – faktisk øger de faktisk forekomsten af fejl – er formålet at gøre disse fejl let håndterbare ud fra et “kendt ændring”-synspunkt, og vigtigere endnu at kontrollere, hvornår disse genstarter forekommer, for at sikre, at de sker på et tidspunkt, hvor serveren er udpeget som tilgængelig til vedligeholdelse og er designet til at blive stresset, så problemer opdages på et tidspunkt, hvor de kan afbødes uden forretningsmæssig påvirkning.
Jeg har hørt mange systemadministratorer sige, at de undgår weekend-genstarter, fordi de ikke ønsker at ende med at arbejde om søndagen på grund af servere, der ikke starter op igen efter genstart. Jeg er selv blevet tilkaldt mange søndagsmorgener på grund af mislykkede genstarter, men hver gang jeg modtager det opkald, føler jeg en lettelse. Jeg ved, at vi netop har fanget et problem på et tidspunkt, hvor virksomheden ikke er finansielt påvirket. Hvis den server ikke var genstartet i ikke-arbejdstiden, ville det måske ikke være blevet opdaget, at den var “uopstartelig”, før den fejlede i aktive arbejdstimer og forårsagede et tab af omsætning.
Takket være regelmæssige weekend-genstarter kan vi fange forestående katastrofer sikkert, og takket være det faktum, at vi kun har én uges ændringer at undersøge, er vi rutinemæssigt i stand til at løse problemerne med generelt lidt besvær og stor tillid til, at vi forstår, hvilke ændringer der var foretaget forud for fejlen.
Regelmæssige genstarter handler om at beskytte virksomheden mod driftsstop og nedetid, der kan afbødes gennem meget enkle og pålidelige processer.

