Počítače všech zemí, spojte se!

Určitě jste již podobné heslo někdy slyšeli a určitě budete souhlasit s tím, že něco pravdy na něm je. V množstv


Určitě jste již podobné heslo někdy slyšeli a určitě budete souhlasit s tím, že
něco pravdy na něm je. V množství je totiž obrovská síla a nejinak tomu je i u
počítačů. Ačkoliv vám to bude drásat srdce již teď, před čtením zbytku tohoto
tématu zapomeňte na svůj počítač, ten je totiž úplná nula proti monstrům, o
kterých bude dále řeč. Váš nejnověji koupený počítač ovšem není úplně na
vyhození, protože to bude právě on, který vám může posloužit jako základní
stavební kámen při budování vašeho nového superpočítače.
V dnešním Tématu týdne se totiž budeme věnovat clusterovým technologiím, a to
většinou takovým, které si s trochou práce můžete lehce zprovoznit i doma.
Protože se ale jedná o oblast relativně složitou, věnujeme mu malinko více
prostoru, než je obvyklé. Takovéto počítače jsou totiž tou opravdovou
budoucností, stále se zrychlující procesory brzy narazí na své fyzikální
hranice a...
Potřebuji cluster?
Toť věru dobrá otázka. Já osobně si myslím, že ano a dokonce si troufám tvrdit,
že ho již máte. Ano, téméř určitě i vy jste pyšnými vlastníky nějakého řešení,
které využívá výhod paralelismu.
Paralelismus totiž využívá i obyčejný procesor, který se snaží řadu instrukcí
vykonávat paralelně, totéž platí i u rozšíření MMX, které vlastně není nic
jiného než simultánní zpracování více dat. Paralelismem zavání také jakýkoliv
SMP (Symmetric Multi-Processor) systém, který využívá sdílené paměti a 2 či
více procesorů na to, aby požadovaný úkol splnil v co nejkratším čase.
Ale vraťme se k úvodní otázce, odpověď ve stylu, "vždyť ho již vlastním, tak ho
určitě potřebuji" asi neuspokojí. Potřebnost clusteru lze poznat relativně
snadno podle následujících otázek: Váš nový a superrychlý počítač již nestačí,
ať jste program optimalizovali sebevíc? Program lze dobře paralelizovat a vy
potřebujete výsledky mnohem dříve než doposud? A nebo chcete zkusit něco
složitějšího a ze svých "stařečků" chcete vytáhnout nějaký pořádný výkon? Pokud
jste aspoň na jednu otázku odpověděli ano, pak je tento Computerworld právě pro
vás kromě dvou úvodních stránek Tématu se této problematice ještě více věnujeme
uvnitř čísla, kde si na své přijdou zejména příznivci operačního systému Linux,
i když ani ti ostatní nepřijdou zkrátka.

Technologie clusteringu: Dnes a zítra
Yousef Khalidi
Souběžně s tím, jak stále více společností rozšiřuje své podnikatelské modely
směrem na Internet, tyto podniky těžce docházejí k poznání, že výpadek není jen
nepříjemností. Dokonce pouhých několik minut výpadku sítě může znamenat ztrátu
tisíců dolarů v příjmech, poškození důvěry veřejnosti a nižší produktivitu.
S cílem napomoci předcházení výpadkům se podniky obracejí k technologii
clusteringu, aby udržely své sítě v nepřetržitém provozu. V případě clusteringu
pracuje několik serverů či uzlů společně jako jediný celek, aby pomohly
zajistit stálou dostupnost aplikací, systémových prostředků a dat. Pokud v
prostředí tvořeném clustery vypadne jeden uzel, jeho pracovní zatížení může být
rozprostřeno na zbývající servery v clusteru.
Avšak clustering dneška je často smíšenou reaktivní technologií vytvořenou
výhradně za účelem redukování prostojů serverů, takže větší dostupnost
prostřednictvím clusteringu se odráží na jeho ceně. Protože techniky
clusteringu jsou rozvrstveny na vrcholu serverového operačního systému, těžko
se spravují a nesdílejí automaticky prostředky mezi uzly, což je vlastnost,
která by zlepšila výkonnost clusteru.
Naneštěstí samotný základ clusteringu použití redundantních komponent významně
přispívá ke složitosti správy a údržby systému propojeného do clusteru. Příští
generace produktů pro clustering pomůže tuto složitost odstranit
prostřednictvím integrace clusteringu do operačního systému a usnadnění správy
složité sestavy komponent clusteru, jako kdyby šlo o jediný systém.
Hledejme budoucnost
Příští generace clusterů by mohla spoléhat na Cluster File System (CFS)
(clusterový souborový systém), který umožní globální přístup ke všem souborům,
zařízením a síťovým prostředkům v systému a vytvoří úplný obraz jednotného
systému.
CFS umožní každému uživateli vzdálenému i místnímu přístup k aplikaci, bez
ohledu na to, který server v clusteru hostí software. Jakákoliv aplikace může
přistupovat k jakémukoliv souboru nebo uzlu v clusteru. Dokonce i když se
aplikace přemístí z jednoho uzlu do druhého, nejsou v ní nutné žádné změny,
které by zajistily přístup k souborům v rámci celého systému.
CFS se zapojuje do rozhraní stávajícího unixového virtuálního souborového
systému (vnode). To znamená, že systémoví manažeři a správci médií, kteří dnes
používají vnode, k nimž patří souborové systémy Unix File System, Veritas File
System, CD-ROM file system, Solstice Disk Suite a Veritas Volume Manager,
automaticky získají schopnosti clusterového souborového systému.
Používejte co chcete a kdykoliv
Kromě globálního přístupu k souborům příští generace prostředí podporujících
clustering rovněž prostřednictvím clusteru zpřístupní a zviditelní všechna
zařízení. Vstupní/výstupní subsystém umožní přístup k jakémukoliv zařízení v
clusteru z jakéhokoliv uzlu, bez ohledu na to, kde je zařízení fyzicky
připojeno. Od toho si slibujeme vysoce dostupný globální přístup k zařízením.
Stejně jako v případě jiných komponent architektury představuje síť z pohledu
aplikací a uživatelů jediný systém. V prostředí tvořeném clustery je podstatné,
že aplikace a uživatelé mohou s clusterem zacházet jako s jedinou entitou, na
kterou se odkazujeme pomocí jediného logického hostitelského jména a globální
IP adresy. Tato vlastnost umožňuje jakémukoliv klientovi přistupovat ke
clusteru pomocí sdíleného logického jména a běžet na jakémkoliv uzlu v rámci
clusteru.
Globální přístup k souborům a zařízením v kombinaci s globálními síťovými
službami umožní systémovému administrátorovi přihlásit se k jakémukoliv uzlu
clusteru a přistupovat k jakýmkoliv nástrojům potřebným pro monitorování
systému, opravám nebo údržbě. Administrátor má dohled nad celým clusterem a bez
ohledu na to, jaký uzel zpracovává daný proces, systém reaguje na správcovské
příkazy tak, jako kdyby všechny procesy běžely na jediném stroji.
Daleko vyšší škálovatelnost
Kromě toho tento obraz jediného systému vytvářený pokročilým clusterem rovněž
zvyšuje flexibilitu a škálovatelnost v rámci clusteru. Pomocí některých
produktů můžete sestavit clustery tvořené až čtyřmi uzly obsahujícími až 256
procesorů. Škálovatelnost však zde nekončí. V případě pokročilého clusteringu
můžete též dle potřeby doplnit jistou kapacitu paměti.
Dále platí, že globální síťové prostředí získává možnost automatického
vyvažování zátěže. Prostřednictvím monitorování pracovních zatížení a dob
odezvy serverů ve všech uzlech může pokročilý cluster určit optimální uzel, na
němž by měl běžet klient.
Dnes je možné prostřednictvím serverového clusteringu, pečlivého plánování a
údržby sítě téměř zcela odstranit výpadky.
0 1824 / alsn
Typy clusteringu
Tři nejobvyklejší typy clusteringu zahrnují vysoce výkonné vědecké clustery,
clustery vyvažující zatížení a clustery zajišťující vysokou dostupnost.
Vědecké clustery první typ obvykle zahrnuje vývoj aplikací paralelního
programování pro cluster, určených k řešení složitých vědeckých problémů. To je
podstatou paralelního počítačového zpracování, ačkoliv se nepoužívají
specializované paralelní superpočítače, které jsou interně tvořeny desítkami
tisíc samostatných procesorů. Místo toho se pro zpracování těchto paralelních
aplikací používají komoditní systémy, například skupiny jednonebo
dvojprocesorových PC propojených vysokorychlostními spoji a komunikujících
prostřednictvím společné vrstvy, zajišťující výměnu zpráv. A tak dosti často
slyšíte o dalším novém linuxovém superpočítači. Ve skutečnosti však jde o
cluster počítačů disponující výpočetním výkonem srovnatelným se skutečným
superpočítačem a cena takové slušné clusterové konfigurace obvykle překračuje
hranici 100 000 dolarů. Průměrnému člověku se to může zdát drahé, je to však
stále levnější než specializovaný superpočítač v ceně několika milionů dolarů.
Load-balancing clustery clustery vyvažující zatížení jsou praktičtějšími
systémy pro uspokojování podnikových potřeb. Jak vyplývá z jejich názvu, tyto
systémy zajišťují co nejrovnoměrnější rozdělování procesní zátěže na clustery
počítačů. Tato zátěž může mít formu zátěže vyvolané zpracováním aplikací nebo
zátěže způsobované provozem sítě, která musí být vyvážena. Takový systém se
perfektně hodí pro velký počet uživatelů pracujících se stejným souborem
aplikací. Každý uzel se může postarat o část tohoto zatížení a zátěž může být
dynamicky rozdělována mezi uzly s cílem jejího vyvážení. Totéž platí pro síťový
provoz. Síťové serverové aplikace na sebe často nabalují příliš mnoho
příchozího síťového provozu, takže nejsou schopny jej dostatečně rychle
zpracovat, a tudíž je nutné tento provoz přesměrovat na síťové serverové
aplikace běžící na jiných uzlech. To může být rovněž optimalizováno vzhledem k
různým prostředkům dostupným na každém z uzlů nebo ve vztahu ke konkrétnímu
síťovému prostředí (více se o těchto systémech dovíte v dalším čísle).
High-availabity clustery jejich úkolem je udržovat co největší dostupnost
souhrnu služeb daného clusteru, přičemž je brána v úvahu poruchovost
počítačového hardwaru i softwaru. Pokud primární uzel v clusteru zajišťujícím
vysokou dostupnost vypadne, je nahrazen sekundárním uzlem, který na takový
okamžik čeká. Tento sekundární uzel je obvykle zrcadlovým obrazem primárního
uzlu, takže v okamžiku náhrady primárního uzlu je schopen převzít jeho identitu
a tak udržet konzistenci systémového prostředí z hlediska uživatele (více se o
těchto systémech dovíte v dalším čísle).
Spolu s těmito třemi základními typy clusterů se mezi nimi často vyskytují
hybridní a navzájem zkřížená řešení. Můžete tak narazit na cluster zajišťující
vysokou dostupnost, který je rovněž schopen vyvažovat v rozsahu svých uzlů
zatížení způsobované uživateli, zatímco se stále pokouší udržovat určitý stupeň
vysoké dostupnosti. Podobně se můžete setkat s paralelním clusterem, jenž
rovněž může vyvažovat zatížení mezi uzly odděleně od toho, co bylo
naprogramováno v aplikaci. Ačkoliv clusteringový systém je sám o sobě nezávislý
na tom, jaký software či hardware používá, má--li takový systém pracovat
efektivně, klíčovou roli hrají hardwarová propojení.

Paralelní počítače důležité pojmy
Nejprve základní rozdělení systémů (dle Flynna)
SISD (Single Instruction stream, Single Data stream) tento model nemá s
paralelismem nic společného, jde o standardní vonneumannovský počítač, jehož
nějakou variantu máme asi všichni na stole (důležitý pouze pro srovnání s
ostatními modely).
SIMD (Single Instruction stream, Multiple Data stream) jedná se o situaci, kdy
všechny procesory vykonávají identickou operaci ve stejný čas, ale každý z nich
nad svými daty. Protože je všechno synchronizováno, je vlastní interakce mezi
procesory relativně jednoduchá a lehce naprogramovatelná.
MISD (Multiple Instruction stream, Single Data stream) jde vlastně jen o
teoretický model, který zatím nenašel v praktickém světě žádnou realizaci.
MIMD (Multiple Instruction stream, Multiple Data stream) paralelní model, ve
kterém každý procesor pracuje úplně nezávisle na ostatních. Každý procesor tedy
vykonává pouze svoje instrukce nad svými daty. Tento model znázorňuje ideál, ke
kterému všechny paralelní systémy směřují jde sice o nejsložitější možnost
ovšem tu nejvíce distribuovatelnou.
Další možné pojmy a rozšíření
SPMD (Single Program, Multiple Data stream) jedná se o zjednodušenou variantu
MIMD, kdy všechny procesory vykonávají stejný program, který ovšem v závislosti
na datech a typu procesoru může trvat různou dobu a může procházet jinými
větvemi kódu (v závislosti na datech).
SMP (Symmetric Multi-Processor) jedná se o řešení, kdy více procesorů pracuje
dohromady tak, že jakýkoliv kus programu může být identicky zpracován
libovolným procesorem. Nejčastěji se jedná o MIMD systém spojený se sdílenou
pamětí.
SWAR (SIMD Within A Register) jedná se o pojem charakterizující rozdělení
registru procesoru do více polí, které obsahují integerové hodnoty. S tímto
registrem je pak provedena SIMD operace. Toto řešení se objevilo např. jako
rozšíření MMX (MultiMedia eXtensions) u procesorů Intel a spol.
Message Passing (předávání zpráv) jeden z nejpoužívanějších mechanismů pro
interakci mezi procesory v paralelním systému. Důležité je zejména zpoždění,
které nastává při přenosu zpráv, a restrikce, které jednotlivé systémy na
vlastní obsah zpráv kladou.
Shared Memory (sdílená paměť) možná varianta k předchozímu řešení, které sice
klade často menší nároky na programování, je ale často náročnější na síťové
zdroje. K vlastnímu přenosu informací jak ostatně i název napovídá je používána
sdílená paměť informace v ní jsou dostupné ze všech participujících uzlů.

Serverový clustering s CFS
Clusterový souborový systém, příští generace technologie clusteringu,
zjednodušuje klientský přístup k síťovým prostředkům a poskytuje schopnost
předcházet výpadkům a vyvažovat zatížení. CFS se připojuje ke stávajícím
unixovým clusteringovým schématům.









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