Spolehlivost každého výrobku se samozřejmě odráží v jeho ceně.
Například spolehlivé a robustní automobily jsou vždy dražší než
masověji vyráběné vozy. Totéž platí prakticky ve všech dalších
oblastech - počítače, jejichž výrobci se snaží dosáhnout maximálního
výkonu za co nejmenší cenu, zdaleka nedosahují spolehlivosti řídicích
systémů letadel či kosmických lodí. Stačí zastavení ventilátoru
aktivního chlazení procesoru v moderním stolním počítači a systém
přestane fungovat během několika desítek sekund či minut. Výpadek
stolního počítače a s ním spojená možná ztráta dat, i když velmi
nepříjemná, ale zpravidla neohrozí běh celé firmy. V případě firemních
serverů udržujících podnikové databáze či řídících klíčové technologie
je ale situace jiná. Proto se například v serverech používá jiný
systém chlazení procesorů, u něhož výpadek jediného ventilátoru
neohrozí celý počítač a navíc jsou v takových systémech zabudovány
prostředky pro diagnostiku a hlášení těchto poruch. Samozřejmě cena
serveru je oproti stolnímu počítači patřičně vyšší.
Technické vybavení ale pouze přispívá ke spolehlivosti počítačových
systémů. Velmi podstatnou roli hraje spolehlivost software. Programové
vybavení je zpravidla tou vrstvou, která činí systém unikátní, která
plní specifické požadavky uživatele a která také jednotlivé systémy
navzájem odlišuje. Software je tedy zákonitě mnohem variabilnější a
flexibilnější než hardware. Bankovní transakce, digitální triky v
novém filmu, simulace fyzikálního děje či počítačová hra - nelze
vyjmenovat byť jen nepatrný zlomek úloh vykonávaných na v podstatě
shodných počítačích. Zatímco finanční analytik, filmový výtvarník,
vědec či počítačový hráč mohou používat shodný počítač se stejným
procesorem, určitě budou používat jiné programové vybavení. Přitom
komplexnost programového vybavení je často nesmírná a snad jen
komplexnost samotného procesoru je srovnatelná s rozsáhlými
programovými systémy. Velká variabilita a rychlejší inovační cyklus
software ale neumožňuje firmám vyvíjejícím programové vybavení
investovat stejné množství prostředků do testování svých produktů,
jako to dělají firmy vyvíjející procesory. Řada chyb obsažených
například v různých verzích procesorů Intel Pentium jsou dokladem, že
ani největší firmy s obrovskými zdroji nejsou zárukou naprosté
spolehlivosti. A tak díky chybám programového vybavení havarují
civilní letadla se spoustou cestujících, umírají pacienti na následky
překročení dávek při ozařování, kosmické sondy se rozbíjejí o povrch
Marsu a explodují nosné rakety s komunikačními satelity.
Ačkoliv naprosto spolehlivý hardware ani software nelze udělat,
přesto vysoké požadavky na spolehlivost existují a nemohou je
uspokojit ani nejpropracovanější návrhy daných systémů. Jediné řešení
je použití zálohování - redundantních prvků, které jsou schopny práce
(byt se sníženým výkonem) i po vysazení nějaké komponenty. Redundance
může být na úrovni chladicích ventilátorů, napájecích zdrojů, disků a
tak porucha těchto komponent není kritická. Je ale nutné zdůraznit, že
redundance poruchu nevylučuje, jen výrazně snižuje její
pravděpodobnost.
Návrh redundantních chladicích prvků nebo napájecích zdrojů je
poměrně prostý, neboť tyto komponenty neudržují žádnou stavovou
informaci systému. V případě diskových pamětí je to již horší, protože
na discích jsou uchovávána data a jejich ztráta při poruchy disku je
nepřípustná. Nejjednodušší metodou je zrcadlení - data jsou uchovávána
současně na dvou discích. Za svou jednoduchost platí zrcadlení
snížením dostupné kapacity disků na polovinu. Existují i
propracovanější mechanismy rozprostření dat na více disků tak, že
poměr skutečné ku využitelné kapacitě disků je výrazně lepší než 2:1
(např. RAID5). Ovšem navrhnout systém, který pomocí redundance dokáže
přestát poruchu procesoru nebo modulu paměti, je ale nepoměrně
složitější a ekonomicky velmi náročné. Proto bývá mnohem častěji
používána redundance na úrovni celých počítačů - dva nebo více
počítačů pracují na shodném úkolu s tím, že v případě výpadku jednoho
systému jeho práci převezme druhý (aktivní záloha) nebo druhý počítač
jen pasivně čeká a monitoruje stav aktivního počítače a začíná
pracovat v okamžiku, kdy první počítač selže (pasivní záloha). Skupina
takto spolupracujících počítačů je nazývána „cluster" (česky
chumel nebo nakupení).
Pojmu cluster počítačů se ovšem používá mnohem obecněji.
Vědecko-výzkumné instituce často spojují velké množství počítačů do
jediného systému a využívají velkého výpočetního výkonu paralelně
pracujících strojů k řešení rozsáhlých simulací apod. V těchto
případech se ale nejedná o zálohování, jednotlivé počítače si sice
vyměňují data ale zpravidla nesdílejí žádné prostředky a navenek
vystupují jako jednotlivé systémy. Běh distribuované aplikace bývá
často zajišťován aplikací samotnou, nikoliv operačním systémem.
Jako cluster může například vystupovat taktéž skupina serverů
služby WWW, před něž je předřazen tzv. vyvažovač zátěže (load
balancer). Z hlediska klientů se celý systém jeví jako jediný server s
jedinou IP adresou, ale ve skutečnosti práci na pozadí provádí řada
serverů, které dostávají jednotlivé požadavky podle momentální zátěže.
Skutečný cluster ale dokáže mnohem více. Z hlediska klientů
vystupuje jako jediný počítač s unikátní IP adresou a s řadou služeb,
které poskytuje. Tyto služby zahrnují nejen WWW, ale taktéž přístup k
databázím, výměnu zpráv apod. Systém trvale monitoruje stav všech
prostředků, které byly administrátorem určeny jako sdílené, a v
okamžiku jejich výpadku je spouští na záložním počítači. Důvod jejich
výpadku není důležitý - služba může vysadit vlivem poruchy hardware
nebo vlastní programovou chybou nebo může být dokonce ukončena chybným
zásahem obsluhy. Situace může být i natolik fatální jako odstavení
celého systém z důvodu poruchy procesoru, čipové sady či paměti. Ve
všech případech její činnost přebírá záložní systém. Tento způsob
práce clusteru ale již vyžaduje podporu na úrovni operačního systému.
Nasazení systému Control Web 2000 na cluster
Ačkoliv se historicky jedná o poměrně starý koncept, cena za takové
řešení v prostředí sálových počítačů IBM či vlastnických systémů UNIX
bývá velmi vysoká. Schopnost budovat zálohované clustery je ale
začleněna i do rodiny Advanced Server systémů Microsoft Windows NT a
Windows 2000, čímž se celá technologie stává podstatně přístupnější.
Potřeba dosažení velmi vysoké spolehlivosti a odolnosti před
náhodnými chybami jednotlivých komponent systému se ale netýká jen
rozsáhlých databází či serverů WWW. Existují i náročná nasazení
technologických řídicích a vizualizačních systémů, kdy je nepřetržitý
běh podmínkou. Proto byl systém Windows 2000 Advanced Server
konfigurovaný do clusteru vybrán jako platforma pro aplikaci
komplexního řízení energetiky závodu Škoda-Auto v Mladé Boleslavi
běžící pod systémem Control Web 2000.
Aplikace dosud pracovala na dvojici počítačů s průmyslovým systémem
Control Panel v3. Svým rozsahem ojedinělá aplikace komunikující s
desítkami průmyslových automatů prostřednictvím více jak deseti tisíc
kanálů a obsluhující tisíce archivních souborů ale potřebuje další
rozšiřování, efektivnější navázání na podnikový informační systém,
lepší distribuci na více počítačů a zabudování WWW služby. Proto se
realizační firma DMS rozhodla pro nasazení systému Control Web 2000 v
prostředí clusteru Windows 2000.
Struktura systému
Ačkoliv Windows 2000 Advanced Server dokáže prakticky jakoukoliv
službu nebo aplikaci konfigurovat jako sdílený prostředek, toto řešení
je často nevyhovující, protože pokud aplikace nedokáže se správcem
clusteru komunikovat, její spouštění a zastavování se děje
standardními prostředky API Win32. To s sebou přináší nejen značné
prodlevy spojené se zaváděním a ukončováním aplikace, ale taktéž
nerespektuje vnitřní stav aplikace. Přepnutí běhu aplikace z jednoho
serveru na druhý je prováděno jako její zastavení a opětovné spuštění.
Z těchto důvodů byl systém Control Web 2000 rozšířen o prostředky
komunikace se správcem clusteru Windows 2000. Toto rozšíření nejen
dovoluje správně uchovávat vnitřní stavy aplikace, ale také
mnohonásobně zrychluje reakční dobu systému v případě výpadku jednoho
serveru. Integrací s Windows 2000 Advanced Server potvrdil Control Web
2000 svou pozici mocného nástroje pro tvorbu rozsáhlých podnikových
aplikací vizualizace, sběru dat a řízení průmyslových procesů.
|