Clustery: Vývoj přináší nové koncepty

1. 2. 2002

Sdílet

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 k...

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ě.