Po celé dlouhé roky znělo základní pravidlo IT: Když všechno selže, proveďte reboot. Rebootování v takovém případě opravdu často funguje, ale možná je na čase klást si otázku: Neexistuje lepší řešení problémů s nefunkčním softwarem, který s oblibou shodí počítač a někdy vás i připraví o cenné údaje v něm uložené?
Tento článek je překladem z amerického Computerworldu. Úplná česká verze vyšla v CW 5/2005.
Uvedenou myšlenkou se zabývali i výzkumníci na Stanfordské a Kalifornské univerzitě, kteří horečně pracují na nalezení lepších způsobů, jak počítači zabránit zřítit se do propasti, na jejímž okraji občas stojí. Cíl je jasný: Najít novou alternativu k rebootování.
Hned na počátku realisticky usoudili, že bude dobré vzdát se ideálu — totiž myšlenky na tvorbu zcela bezproblémového softwaru. Místo toho začali hledat způsoby, jak v případě havárie provést obnovu funkčnosti systému beze ztráty dat nebo času.
Výše nastíněná idea je konceptem, z něhož vychází programování zaměřené na rychlou obnovu po selhání. Tradiční myšlení je tu doslova postaveno na hlavu. Vychází se totiž z postulátu, že není možné vytvořit naprosto bezchybný software. Proto by měl být alespoň napsán tak, aby bylo možné jej rychleji rebootovat, a tím uživatelům umožnit téměř okamžitý návrat k jejich práci.
Snadno a rychle
„Na úsvitu programování si lidé mysleli, že softwarové problémy vymizí. Ale nevymizely, takže potřebujeme najít způsoby, jak s nimi žít. Myslím, že to je prostě fakt, který musíme přijmout,“ vysvětluje David Patterson, profesor počítačových věd na Kalifornské univerzitě v Berkeley. „Pokud je pro uživatele nezbytná rychlá dostupnost dat, pak může být rychlá obnova důležitější než redukce počtu spadnutí počítače,“ dodává.
Jeden ze způsobů, jak toho dosáhnout, představuje rozvíjející se technika zvaná mikro-rebootování. Ta zajišťuje rychlé vypnutí a nové zapnutí procesů programu. Tím má být zajištěna jeho stabilizace a možnost dalšího využití.
Mikro-rebootování se přitom dotkne jen dané problematické oblasti softwarového kódu a nemá naprosto žádný vliv na ostatní části aplikace. Data připravená ke zpracování tak nejsou rebootováním ovlivněna.
Projekt mikro-rebootování, vedený Davidem Pattersonem a Armandem Foxem, asistentem počítačových věd ve Stanfordu, odstartoval již na konci roku 2000. Patterson, Fox a tým absolventů přišli na to, že spolehlivost systémů je možné prostřednictvím rychlých rebootů vylepšit. Některé IT systémy používané v letectví, kosmonautice a zdravotnictví jsou ultra spolehlivé, protože prostě musejí být — ale současně jsou nákladné a složité. Takový druh spolehlivosti byl nepraktický pro typické využití v oblasti běžných IT. Mikro-rebootování představuje jinou, cenově efektivnější cestu.
Předcházení havárii
Výzkumníci experimentují s algoritmy, které dohlížejí na systémové procesy a sledují, kdy se stane něco špatného a hrozí havárie. Při své práci se zaměřují na určení normálních hodnot parametrů provozu aplikací, a pokud dojde k významné odchylce, může systém rychle provést mikro-reboot — a to dokonce i bez toho, že by uživatel věděl, že došlo k nějakému problému.
Klíčem k úspěchu je izolování softwarových závad od okolí a zajištění redundancí, takže systém zůstane naživu i v době, kdy dochází k jeho okamžité obnově. Výzkumníci nyní hledají dostupné techniky, které by podporovaly softwarové a hardwarové projekty, jež drasticky zlepšují restartovatelnost programů a zařízení.
Problémem tradičního rebootováním je fakt, že proces vyvolaný kombinací kláves [CTRL]+[ALT]+[DEL] trvá příliš dlouho. Fox říká, že mikro-rebootování je o několik řádů rychlejší. „Není zaručeno, že se tím problém vyřeší, ale je zaručeno, že se věci nezhorší, takže není důvod to nevyzkoušet,“ říká.
Výzkumníci během svých prací používají aplikační server Java 2 Enterprise Edition. Ten je totiž velmi populární mezi uživateli a jako open source software je rychle modifikovatelný. J2EE je dobrým výchozím bodem pro výzkum, protože jeho aplikace používají strukturu modulárního designu s jasnými hranicemi mezi softwarovými moduly — takže je jednodušší zastavit a rebootovat jeden proces v rámci aplikace.
Rozšíření technologie
I když se výzkum dosud zaměřoval na internetové aplikace na firemních serverech založených na J2EE, Fox tvrdí, že se technologie mikro-rebootování pomalu rozšíří i do dalších oblastí. „Stolní počítače dnes mají takový výkon, že by mohla být nakonec určitá jeho část obětována právě za vyšší spolehlivost,“ říká.
Některé problémy ale přetrvávají. „Na metodách mikro-obnovy se stále musí pracovat,“ tvrdí Fox. „Našli jsme způsob, jak využít zkušenosti lidí, kteří používají algoritmy statistického monitorování, ale vyvstaly nám nové problémy s dalšími algoritmy a s bezpečností,“ dodává.
„Vědci stále doufají, že se přesně dozvědí, co je na J2EE dobré a co špatné, pokud jde o řešení problémů s rebootováním,“ říká Fox. A pak získané zkušenosti budou moci aplikovat i jinde. Podle Foxe je rovněž potřebný vznik dalších výzkumných orgánů, které se budou zabývat stejnými problémy u jiných široce používaných počítačových systémů.
„Mikro-rebootování by mohlo být zabudováno do aplikačního serveru J2EE během příštích dvou až tří let,“ tvrdí Fox. „Nicméně aby se tato technika pevně zakořenila v současném světě IT, je evidentně potřeba udělat ještě hodně práce,“ upozorňuje.
Výrazně komplikovanější zřejmě bude zahrnutí podpory mikro-rebootování do velkých proprietárních aplikací. Často totiž nejsou složeny z modulů. Fox ale tvrdí, že by výzkumníci mohli pracovat na usnadnění implementace této funkce do budoucích verzí některých druhů softwaru.
Častý reboot
„Definitivní verze systému pro mikro-rebootování by mohla profylakticky procházet celým stolním počítačem nebo serverem a pravidelně provádět rebootování na pozadí. Tím by se stroje posilovaly bez toho, že by rebootování způsobovalo uživatelům problémy,“ říká Patterson.
Podle Foxe nyní firemní IT sektor začíná myšlenku rychlého a automatického rebootování pomalu akceptovat. „Teď již nemusíme přesvědčovat lidi o potřebnosti takové funkce,“ říká. „Oni moc dobře chápou, proč je důležité bránit se selháním jejich firemních IT systémů — a tuší, že toto by mohla být správná cesta,“ uzavírá.
Tento článek je překladem z amerického Computerworldu. Úplná česká verze vyšla v CW 5/2005.