Checkpoint a restart

DEFINICE Metoda checkpointů (kontrolních bodů) a restartu (označovaná též zkratkou CPR) zajišťuje ochranu operační...


DEFINICE
Metoda checkpointů (kontrolních bodů) a restartu (označovaná též zkratkou CPR)
zajišťuje ochranu operačních systémů a podnikových aplikací v případě havárie
počítače. Její princip spočívá v tom, že se v určitých kritických okamžicích
provede snímek aktuálního stavu systému a dat (označuje se jako checkpoint) a
po případné havárii se systém restartuje do naposledy uchovaného stavu. Odpadá
tedy nutnost vrátit se na úplný začátek práce a kompletně zopakovat celý
proces, kterým systém od té doby prošel.
Už se vám někdy stalo, že jste se hodiny mořili s nějakým dokumentem a nakonec
vám při psaní poslední řádky spadl počítač? Chybami se člověk učí, a tak si
většina z nás raději zvykla včas a často ukládat, aby v případě jakékoli
poruchy bylo možno v práci zase pokračovat. Pokud jde o ochranu před haváriemi,
stejný princip platí i v oblasti operačních systémů a podnikových aplikací.
Rozdíl je jenom v terminologii místo uložení a obnovení se zde hovoří o tzv.
checkpointech (kontrolních bodech, ve kterých se zaznamená aktuální stav
systému) a o restartu (používá se zkratka CPR, angl. CheckPoint a Restart).
Účelem mechanismu checkpoint a restart je zajistit, aby v případě havárie
nedošlo ke ztrátě dat a počítač mohl dále pokračovat v práci od posledního
checkpointu, jako by k žádné poruše vůbec nedošlo. "U všech programů náročných
na výpočetní výkon je CPR absolutní nezbytností," říká Ed Hall, systémový
analytik z Virginské univerzity v Charlottesville, který se zabývá výzkumy v
oblasti výpočetní techniky. "Musíte mít možnost v určitém okamžiku proces
ukončit, ať už v případě havárie počítače nebo při dávkovém zpracování v
systému s časovým limitem."

Praxe
V praxi to v některých firmách a výpočetních střediscích vypadá tak, že se
dlouhé výpočetní procesy rozdělují do několika dávek. Náročné programy, pro
příklad uveďme aplikaci pro výzkum posloupnosti genového řetězce, spočívají v
prohledávání obrovských databází a v provádění složitých algoritmů, jež mohou
trvat až několik týdnů. U těchto časově náročných programů vše funguje tak, že
v určitých časových intervalech (např. na začátku pracovní doby) dojde v
definovaném bodu (checkpointu) k jejich záměrnému zastavení, aby bylo možno
zpracovat menší úlohy. Jakmile jsou tyto menší úlohy provedeny, obnoví hlavní
program znovu svou činnost od posledního checkpointu. Tato koncepce je sice na
první pohled jednoduchá, ale technické mechanismy, které zastavení operačního
systému zajišťují a poté realizují restart, bývají velmi složité.

V operačním systému
Metodu CPR lze používat buď v rámci operačního systému, nebo na rovině
aplikací. U většiny mainframů a špičkových operačních systémů provozovaných na
serverech, jako je například Irix od kalifornské společnosti SGI nebo Unicos od
společnosti Cray ze Seattlu, jsou utility zajišťující CPR automatizovány. Pokud
je CPR na úrovni operačního systému, ukládá se stav všeho, co se provádí, v
pravidelných bodech a restart systému je možný od posledního takového bodu.
Tento typ checkpointu umožňuje uživateli vypnout počítač a zase zapnout, aniž
by o svá data přišel.
Problém však nastává u velkých počítačů, na kterých běží statisíce procesů
najednou. Zde totiž může uložení kompletního stavu operačního systému trvat
značně dlouhou dobu. Rovněž restartování takového počítače do tohoto stavu může
trvat dlouho u velkých úloh až několik hodin. Protože je třeba uložit obrovské
objemy dat nezávisle na tom, zda jsou všechny tyto informace k novému spuštění
systému vůbec nutné, dochází ke zbytečnému zpoždění obnovy provozu. "Zavedení
checkpointů v operačním systému je sice užitečné, ale velmi nákladné. Operační
systém totiž neví, která data aplikace ke svému budoucímu restartování skutečně
potřebuje, a zbytečně ukládá všechno," vysvětluje James Kasdorf, ředitel pro
speciální projekty v Supercomputing Center v Pittsburgu. "Představte si
počítač, na jehož 512 procesorech jsou replikována úplně stejná data. Systémový
checkpoint to ale neví a uloží kompletně všechno. Výsledkem je, že máte data
uložená ve stovkách zbytečných kopií a u nich ještě navíc i programový kód a
systémové knihovny," dodává Kasdorf.

U aplikace
Druhou alternativou je zavedení checkpointů na úrovni aplikace. K provedení
činností potřebných pro realizaci checkpointu a restartu používá aplikace
záchytné body (hooks) operačního systému, které jí umožňují uložit pouze ty
prostředky a data, jež jsou k restartování potřeba. Pokud je technika CPR
realizována na úrovni aplikace, může vývojář výběrem optimálního okamžiku k
provedení checkpointu většinou na konci procesu, který se cyklicky opakuje
zajistit maximální efektivitu tohoto procesu. Takový názor zastává Reagan
Moore, hlavní výzkumný pracovník v oblasti vědeckého programování ve středisku
Supercomputing Center v San Diegu. CPR na úrovni aplikace může být
efektivnější, protože se ukládají pouze data, která jsou třeba. Usnadňuje to
nejen zastavení aplikace v checkpointech, ale i její rychlejší restartování.
Ovšem ani CPR na úrovni aplikaci není zcela bez problémů, protože v některých
případech nemusí být provedení celého procesu snadné. Například v situaci, kdy
má aplikace otevřené komunikační kanály k externímu zařízení, nebo tehdy, když
aplikace běží na clusterovaném počítači. "V těchto případech je uložení stavu
aplikace obtížné, protože běží na několika síťových uzlech najednou," říká
Moore. Aktivace checkpointů a restartování trvá déle také u aplikací s větší
vyrovnávací pamětí. Podle Kasdorfa lze optimalizaci procesu CPR nejlépe
zajistit vysokými rychlostmi vstupně/výstupních operací počítače. Rychlý zápis
dat na disk v checkpointu je zárukou toho, že se proces CPR nezdrží, i když je
checkpointů v rámci aplikace větší množství.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.