WWW-sivujen katko 31.3.2010

Joonas Kuorilehto / 1. huhtikuuta 2010

Kapsin jäsenten verkkosivuilla (palvelimet kirsikka ja karviainen) olevat WWW-palvelimen konfiguraatiotiedostot rikkoontuivat 31.3. Säätöä vierestä seuranneena kirjoitankin nyt analyysin, mistä katko luultavasti johtui.

Ensin hieman taustaa. Yhdistyksellä on noin 4400 virtuaalihostia WWW-palvelinten konfiguraatiossa. Samat sivut palvellaan molemmilta palvelimilta, joskin vain toinen koneista palvelee kerrallaan yhtä sivustoa (kirsikka *.kapsi.fi ja karviainen kaikkia muita). Konfiguraation koko on generoituna noin 1,9 megatavua ja se generoidaan skriptillä helpommin hallittavasta muodosta. Tämänhetkinen generointiskripti käy myös läpi, että kaikilla sivustoilla on lokihakemisto olemassa ja asettaa lokin käyttöoikeudet kuntoon. Skripti on ajettu 10 minuutin välein.

  1. Make-kääntöohjelma huomaa, että lähdetiedostot ovat uudempia kuin konfiguraatio, joten se aloittaa konfiguraation generoinnin.
  2. 10 minuuttia myöhemmin Make ajetaan uudestaan ja koska edellinen ei ole valmistunut, generointi aloitetaan uudestaan päällekäin edellisen kanssa.
  3. Ensimmäinen generointi valmistuu ja uusi konfiguraatio otetaan käyttöön (ei tutkittu onnistuiko tämä).
  4. Toinen generointi valmistuu, mutta koska se oli ylikirjoittanut keskeneräisen välituloksen, lopputulos on väärä. Apache ladataan taas uudestaan, mutta tällä kertaa konfiguraatiossa on ainoastaan uudelleenohjaussivustot (esim. www.domain.tld ➝ domain.tld) toimivat, koska ne generoitiin myöhemmin.

Tilanteen toistumisen estämiseksi lisättiin Makefileen toimiva lukitus. Aiemminkin siinä oli kyllä lukitus, mutta se varmisti vain pienen, sekunteja kestävän, osuuden toimivuuden.

Tämänkin pitäisi sinänsä riittää, mutta koska konfiguraation generointi on paisunut yhdistyksen koon kasvaessa kohtuuttoman hitaaksi, myös generointiskripti kirjoitetaan uudestaan heti kun ehditään (kirjoitan tätä alle tunti korjautumisen jälkeen). Merkittävin hidaste sivustojen toimintaan palauttamiselle tuli siitä, että skriptin ajaminen ja Apache-palvelimen uudelleenlataaminen kestää kymmeniä minuutteja. Lisäksi häiriön aiheuttaja selvisi tarkasti vasta minuutteja ennen kuin korjaus saatiin valmiiksi, minkä vuoksi ajastettu generointi ehti tuhota yhden sinänsä täysin ehjän konfiguraation. Tämä konfiguraatio ehdittiin kuitenkin saamaan käyttöön kirsikka-palvelimelle ennen kuin se tuhoutui, minkä vuoksi muut kuin *.kapsi.fi-osoitteet toimivat jo aiemmin kuin muut.

Vastaa