Vývoj trhu s propojenými výpočetními systémy nabírá na obrátkách: Časem
prověřené koncepty dnes musejí čelit konkurenci ze strany alternativních
konfigurací ze světa Linuxu. Paralelně k tomu se navíc ujal model dvou na Javě
založených aplikačních serverů, který slouží jako základ pro otevřené
clusterové architektury.
V ideálním případě by se při propojení několika počítačů do jednoho clusteru
(svazku) neměly pouze sčítat výpočetní výkony jednotlivých strojů. Vzrůst může
také dostupnost celého systému, neboť při výpadku jednoho počítače přebírají
jeho úkoly počítače, které v rámci clusteru zůstaly funkční.
Avšak jak je v reálném světě obvyklé, také v záležitostech kolem clusterů je
praxe od teorie vzdálena více, než by se mohlo zdát. Zrnko pravdy v ironickém
pořekadle "Chcete cluster, nebo raději vysokou dostupnost?" připravilo bezesné
noci již nejednomu IT specialistovi. Investici do clusteru je třeba důkladně
zvážit.
Vysoce výkonné clustery
V případě clusterů s orientací na vysoký výkon vyvstávají klasické otázky
paralelního zpracování dat: Jakým způsobem rozdělit úlohu na několik vzájemně
nezávislých dílčích úloh? Jak minimalizovat komunikaci, které je kvůli
koordinaci řešení dílčích úloh zapotřebí? Odpovědi závisejí na konkrétních
typech úloh. Mimořádně vhodné typy představují vědecko-technické problémy, jako
je například simulace klimatu, výzkum stárnutí jaderných zbraní či modelování
proteinů. Tomu odpovídá také spektrum zákazníků, kteří mají o vysoce výkonné
clustery zájem. Většinou jde o univerzity či vojenské nebo průmyslové
laboratoře.
Systémy tohoto typu jsou téměř výhradně založeny na operačním systému Unix.
Obvykle jsou používány sériově vyráběné počítače se dvěma procesory AMD nebo
Intel, velkou operační pamětí a středně velkým lokálním pevným diskem. Jako
clusterový koordinační software instalují uživatelé open source softwarové
balíky, většinou známý a prověřený systém Beowulf. Ke slovu se však dostanou i
další produkty, například rozsáhlejší Mosix.
V současnosti nejrozsáhlejší systém Beowulf je instalován u společnosti Locus
Discovery v americké Pensylvánii. Superpočítač, který je využíván pro numerický
genový výzkum, pracuje s 1 416 procesory, 364 GB operační paměti a 22 terabajty
prostoru na pevných discích.
Virtuální server
Navzdory nepopiratelným užitným hodnotám jsou však clustery typu Beowulf
vzácnou výjimkou. Většina firem se nezabývá ani analýzou DNA, ani konstrukcí a
skladováním jaderných zbraní, ale stará se o vyřizování každodenní agendy.
Avšak i v těchto oblastech lidské činnosti jsou výkonné clustery s úspěchem
využívány, a to zejména pro podporu internetových služeb například webu nebo
FTP. Jedno dobré řešení je znázorněno na obrázku. V tomto případě jsou všechny
příchozí dotazy z internetu směrovány na tzv. virtuální server, který se z
praktického hlediska představuje vnějšímu světu pod jediným jménem a jedinou
internetovou adresou. Ve virtuálním serveru dotaz dorazí nejdříve na vyhrazený
počítač, jehož funkcí je rozdělování výkonu (loadbalancer). Ten dotaz
přesměruje na jednoho ze skutečných "pracantů" (často označovaných jako real
server). Inteligentní rozdělovač výkonu provádí volbu příslušného real serveru
podle typu došlého dotazu a aktuálního vytížení real serverů.
Tento koncept má četné výhody. V případě potřeby vyššího výpočetního výkonu lze
cluster rozšířit o další real servery. Kromě toho může docházet k výpadkům
jednotlivých real serverů nebo k jejich plánované odstávce z důvodů pravidelné
údržby, aniž by byla ohrožena práce celého svazku. V neposlední řadě jsou
virtuální servery skutečně cenově výhodné, což je na dnešním přeplněném trhu
poskytovatelů internetových služeb dost podstatné.
Jedna z nejznámějších implementací tohoto konceptu se jmenuje LVS (Linux
Virtual Server) a má podobu softwarového balíku sestaveného výrobcem po vzoru
distribuce Red Hat. Kromě webových služeb nabízí balík LVS mnoho dalších
služeb, kromě jiného audiostreaming, elektronickou poštu, vzdálený přístup
pomocí SSH a Telnetu a ve speciálních případech také dotazování v databázi.
Samotné rozdělování výkonu ještě není vším. Další nezbytnou součástí systému je
monitorovací software, který zaznamenává provozní stavy počítačů. Stará se o
to, aby na nefungující nebo přetížený počítač nedocházely žádné další dotazy.
Pro tento účel se ve světě open source používá především software typu
Heartbeat. V případě komerčních clusterových systémů jsou téměř výhradně
nabízena vyladěná vlastní řešení výrobců. Všechny takovéto systémy jsou
založeny na principu "srdečního tlukotu", kdy mezi všemi počítači dochází ke
vzájemné periodické výměně malých paketů s informací "já stále žiji ty také?".
To zní sice jednoduše, ale praktická realizace tohoto konceptu je natolik
komplikovaná, že v některých případech jsou instalována záložní síťová spojení
pro přenos vlastního "srdečního tlukotu".
Vysoká dostupnost
Srdeční tlukot dokáže sice testovat provozuschopnost počítačů a sítě, avšak o
stavu aplikací jakožto hlavním předmětu uživatelova zájmu nedokáže říci nic. Z
tohoto důvodu je zapotřebí instalovat další monitorovací systém, který dokáže
prověřit aplikace z hlediska jejich správného chodu. Za tímto účelem musí
monitorovací systém pravidelně posílat aplikacím skutečné dotazy požadovat z
databáze zobrazení určité webové stránky nebo odpovědi v podobě vybraných dat.
Mezi systémy tohoto druhu patří například Mon či Nanny.
Obvykle musejí počítače přistupovat ke společnému datovému zdroji. V systémech,
kde dochází ke změně dat pouze zřídka, může být postačující, jsou-li data
periodicky kopírována na lokální pevné disky pomocí nástrojů typu rsync nebo
rdist. Jako pokročilejší metody aktualizace dat lze implementovat zasíťování s
podporou síťového souborového systému (Network File System, NFS) nebo
softwarově zajištěné zrcadlení s využitím zařízení Distributed Replicated Block
Device (DRBD). V úvahu přichází rovněž instalace speciálního hardwaru, např.
SCSI zařízení, k nimž lze přistupovat paralelně.
Nicméně snem většiny uživatelů stále zůstává clusterový souborový systém
(Cluster File System). Pod tímto pojmem se rozumí globální souborový systém
distribuovaný v rámci celého clusteru, kde lze synchronně a rychle číst a
zapisovat data současně na všech počítačích. Z technického hlediska je dosažení
takového stavu velmi obtížné, neboť každý počítač musí ve své vyrovnávací
paměti souborového systému obsahovat vlastní kopie všech dat a tyto kopie musí
být nepřetržitě aktualizovány. Pro plnění úkolů spojených se synchronizací lze
použít např. software Distributed Lock Manager (DLM). Synchronizaci je možné
zajistit pomocí dalších komerčních výkonných produktů.
Ztráty způsobené výpadky počítačů bývají v některých případech mimořádně
vysoké. Za předpokladu, že je systém správně nakonfigurován, lze zajistit
trvalou dostupnost jeho jednotlivých částí. V souladu se základní myšlenkou
přebírá v případě výpadku jednoho počítače jeho úkoly počítač jiný (tzv.
failover), takže dostupnost všech poskytovaných služeb například on-line
obchodu s akciemi zůstává navenek nedotčena. Takový typ clusteru bývá označován
jako "HA-Cluster" (HA = high availability, tj. vysoká dostupnost).
V tomto případě je jednoznačně nejdůležitějším kritériem celková dostupnost,
která je obvykle udávána v počtu devítek (viz tabulka). Samostatně instalovaný
server s operačním systémem Unix nebo Windows a s průměrnou správou systému se
pohybuje někde ve třídě 2. Profesionálně spravované izolované servery s běžnými
windowsovými či unixovými clustery spadají do třídy 3. Třída 4 je doménou těch
nejlepších sálových počítačů (mainframů) a unixových clusterů. Spolehlivost
"pěti devítek" čili na 99,999 % je k vidění jen velice zřídka. V současné době
se může tak vysokou spolehlivostí pochlubit pouze společnost IBM se svým
systémem Parallel Sysplex Cluster nebo další speciální hardware, jakým jsou
například systémy Nonstop firmy Compaq (dříve Tandems).
Za nežádoucí výpadky jsou považovány také plánované odstávky systému, neboť
uživatele či zákazníka důvod výpadku v podstatě nezajímá. Právě zde mají vysoce
spolehlivé clustery oproti izolovaným serverům značnou výhodu spočívající v
možnosti provádět údržbu postupně na jednom uzlu clusteru po druhém.
V praxi je vysoká dostupnost spojena se značnými náklady. Vysoce dostupný
systém nesmí obsahovat jediné slabé místo, jehož selhání by mělo za následek
výpadek celého systému. Z tohoto důvodu musí být každé podezřelé místo tzv.
single point of failure důkladně prozkoumáno a případně zálohováno. Například
aby u virtuálního serveru byla z poloviny zajištěna jeho vysoká dostupnost,
musí na něm být provozovány alespoň dva rozdělovače výkonu.
Geocluster
Jak ukázaly tragické události z loňského září, je u mimořádně důležitých
podnikových systémů třeba dbát dokonce i na jeho geografické rozčlenění. Takové
"extrémní" clustery, v jejichž rámci pracují počítače vzdálené od sebe 10 až 50
kilometrů, jsou označovány pojmem metrocluster, v případě ještě větších
vzájemných vzdáleností se užívá termínu geocluster. Výstavba takových systémů
je doménou ligy skutečných profesionálů, kam mezi jinými patří společnosti
HP/Compaq, IBM či SGI.
Zkušenosti z každodenní praxe ukazují, že i ti největší uživatelé extrémních
clusterů nemusí na jejich instalaci a provoz stačit. Do tohoto podniku se mohou
bez obav pustit pouze tací, kteří mají k dispozici nejen hodně peněz, ale také
dostatek odborníků. Vzhledem k tomu, že dosud neexistuje žádný použitelný
benchmarkingový test pro clustery, je obtížná už samotná volba vhodného
produktu. Clusterová varianta známého benchmarku TPC-C byla "hacknuta" a je
proto dále nepoužitelná. Data a dotazy benchmarku TPC-C lze totiž rozdělit tak
šikovně, aby mezi uzly nemusela probíhat prakticky žádná komunikace. Z
použitelného clusterového benchmarku SAP-SD je prozatím k dispozici pouze málo
výsledků. Proto musí příslušní IT pracovníci testovat sami a také sami
rozhodovat bez ohledu na to, zda jde o clusterový software tvůrce operačního
systému, nebo o produkt od nezávislého výrobce (např. Legato či Veritas).
Naštěstí jsou k dispozici užitečné srovnávací studie, které kromě jiných zdrojů
pocházejí například od amerických poradenských firem Aberdeen a D. H. Brown.
Některé jejich části lze bezplatně stáhnout z internetu.
Failover
Dalším problémem technologie clusterů je obvykle jednoduchá logika failoveru.
Poté, co software pro správu clusterů odhalí vadný uzlový počítač, okamžitě jej
pomocí zařízení pro odpojení od počítačové či elektrické sítě násilně odpojí.
Tento postup, který je ve světě clusterů bez skrupulí označován jako "stomith"
(shoot the other machine in the head střelení jiného počítače do hlavy),
představuje záruku, že "zešílivší" uzel nezničí společná data. Výše zmíněná
metoda postačuje pro aplikace typu webového serveru Apache, který lze znovu
jednoduše spustit pomocí skriptu. Pro případ složitějších aplikací to však může
znamenat, že tuto metodu by bylo třeba uzpůsobit speciálně pro daný typ
clusterového softwaru. Z tohoto důvodu dodávají někteří tvůrci softwaru své
produkty s integrovanou podporou clusterů specifickou pro danou aplikaci. Jako
příklad lze uvést Oracle a jeho databázi Oracle Parallel Server.
Jednu možnost, jak džungli vzájemně nekompatibilních clusterových řešení trochu
zpřehlednit, nabízí společnost Sun v podobě standardu Java 2 Enterprise Edition
(J2EE). Tato specifikace zahrnuje většinu nezbytných rozhraní a služeb, kterých
je zapotřebí k programování systémů vyznačujících se vysokou dostupností. Díky
tomu nemusejí vývojáři v J2EE při práci nad failoverem, distribuovanými
transakcemi či spolehlivým systémem pro zasílání zpráv stále dokola "objevovat
Ameriku". Navíc není žádný problém vyvinout aplikaci pro Linux nebo pro Windows
a poté ji upravit pro prostředí Solaris. Relativně jednoduchá je také migrace
mezi aplikačními servery nezbytnými pro J2EE, jakými jsou například Bea
Weblogic či IBM Websphere. V případě J2EE není vždy nutné nasazovat populární
technologii Enterprise JavaBeans (EJB), neboť výhody aplikačních serverů často
spočívají v detailech. Velmi užitečný je například failover aplikovaný na
webová připojení nebo clusterové databázové spojení od firmy Bea.
Současný stav
Závěrem lze konstatovat, že nabídka clusterů je v poslední době zřetelně
atraktivnější. Kdo má peníze a potřebuje velkou clusterovou instalaci, nalezne
profesionální řešení zejména u významných výrobců různých derivátů Unixu. Ti s
dobrodružnější povahou nebo s omezenějším rozpočtem mohou vyzkoušet současná
řešení pro platformu Linux, včetně LVS, GFS a Failsafe společnosti SGI. Ten,
kdo musí vyvíjet vlastní vysoce dostupný software, se dnes sotva vyhne Javě.