Linuxová clusteringová hojnost

Možnost tvorby superpočítače díl II. Ačkoliv výkon jednotlivých počítačů každým dnem a týdnem roste téměř o d...


Možnost tvorby superpočítače díl II.
Ačkoliv výkon jednotlivých počítačů každým dnem a týdnem roste téměř o desítky
procent, pořád je pro řadu aplikací nepostačující, kladené požadavky totiž
nabízenou kapacitu několikanásobně překračují. V takovém případě jsou možné jen
dvě cesty buď čekat až výkon jednotlivých počítačů pokročí natolik, že budou
schopné takové požadavky splnit, anebo využít clusteru. A právě to druhé řešení
probereme na následujících řádcích, které navazují na předchozí díl z čísla
29/2000.
V tomto pokračování se již vzdálíme ze sféry složitých výpočtů a vědeckých
aplikací a podíváme se na daleko praktičtější použití, a to na load-balancing
clustery a řešení poskytující vysokou dostupnost. Oba tyto požadavky jsou totiž
v této nové době plné internetových obchodů a nepřetržitých služeb určitě
klíčovým faktorem úspěchu.
Load-balancing clustery
Clustery vyvažující zatížení rozdělují poždavky na síť nebo zátěž vyvolanou
počítačovým zpracováním na více uzlů. Diferenciačním faktorem je v tomto
případě nedostatek jednoduchého paralelního programu, jenž běží napříč těmito
uzly. Každý uzlový server v tomto typu clusteru je ve většině případů
nezávislým systémem pracujícím se samostatným softwarem. Existuje však obecný
vztah mezi uzly, buď ve formě přímé komunikace mezi nimi, nebo prostřednictvím
centrálního serveru pro vyvažování zátěže, jenž řídí zatížení každého z uzlů.
Pro distribuci tohoto zatížení se obvykle používá specifický algoritmus.
Vyvažování zátěže způsobené síťovým provozem je procesem vyšetřování provozu
vstupujícího do clusteru a distribuce tohoto provozu do každého z uzlů za
účelem příslušného zpracování. Toto je nejlepší pro "těžkotonážní" síťové
aplikace, jakými jsou například webové nebo FTP servery. Síťové aplikační
služby, které se starají o vyvažování zátěže, vyžadují, aby clusteringový
software vyšetřoval okamžité zatížení každého uzlu a určoval, které uzly jsou
schopny přebírat nové úlohy. To se nejlépe hodí pro zpracování sériových a
dávkových úloh, k nimž patří analýza dat. Tyto systémy mohou být rovněž
nakonfigurovány tak, aby braly v úvahu vlastnosti hardwaru nebo operačního
systému konkrétních uzlů. A tak uniformní uzly nejsou v clusteru nezbytné.
7. Linuxový virtuální server
Projekt linuxového virtuálního serveru implementoval množství záplat kernelu, s
cílem vytvořit systém vyvažující zátěž způsobovanou příchozím TCP/IP provozem.
Software LVS zkoumá příchozí provoz a na základě algoritmu pro vyvažování
zátěže jej přesměrovává do skupiny serverů fungujících jako cluster. To
umožňuje síťovým aplikacím, jakými jsou webové servery, pracovat na clusteru
složeném z uzlů, a podporovat tak větší počet uživatelů.
LVS podporuje uzly clusteru, které jsou přímo připojeny ke stejné síti LAN jako
server vyvažující zátěž, může se však též připojovat ke vzdáleným serverům
prostřednictvím tunelování IP paketů. Druhá z metod zahrnuje zapouzdření
vyvážených požadavků uvnitř IP paketů zasílaných ze serveru vyvažujícího
zatížení přímo do vzdáleného uzlu clusteru. Ačkoliv LVS může podporovat
vyvažování zátěže webových sídel na dálku, algoritmus pro vyvažování zátěže,
který nyní používá, není efektivní v případě široce rozprostřených webových
serverů tvořících virtuální cluster. A tak LVS pracuje nejlépe, pokud jsou
webové servery na stejné LAN síti jako server vyvažující zatížení.
Mnoho hardwarových implementací tohoto systému vyvažování zátěže může běžet
mnohem rychleji, než by tomu bylo v případě univerzálních operačních systémů,
jejichž příkladem je Linux. Patří k nim systémy firem Alteon & Foundry a
vyznačují se přítomností hardwarové logiky a miniaturních operačních systémů,
které jsou schopny vykonávat správu provozu přímo v hardwaru při mnohem vyšších
rychlostech, než jakých dosahuje čistý software. Jsou rovněž dodávány ve
vyšších cenových relacích, obvykle začínajících nad 10 000 dolary. Pokud si
přejete jednoduché a levné řešení, dobrý systém pro vyvažování zátěže lze
realizovat linuxovou skříní střední velikosti s dostatkem paměti (256 MB).
8. TurboLinux TurboCluster a enFuzion
Společnost TurboLinux je výrobcem produktu s názvem TurboCluster, jenž byl
původně založen na záplatách kernelu vyvinutých v rámci projektu Linux Virtual
Server. Díky tomu přináší většinu stejných výhod a má stejné nedostatky jako
původní projekt. TurboLinux rovněž vyvinul stejné nástroje pro monitorování
chování clusteru, které přispívají k užitečnosti tohoto produktu. Komerční
podpora od vedoucího dodavatele jej rovněž činí atraktivnějším pro rozsáhlá
sídla.
EnFuzion je nastupujícím produktem pro vědecký clustering od firmy TurboLinux,
jenž není založen na Beowulfu. Podporuje však stovky uzlů a mnoho různých
nelinuxových platforem včetně Solaris, Windows NT, HP-UX, IBM AIX, SGI Irix a
Tru64. EnFusion je zajímavý, protože pod ním může běžet jakýkoliv stávající
software a nevyžaduje speciální paralelní aplikace napsané pro toto prostředí.
Podporuje automatické vyvažování zátěže a sdílení prostředků mezi uzly, a
úlohy, které se nepodařilo vyřešit, je možné automaticky znovu rozplánovat.
9. LSF Batch od Platform Computing
Společnost Platform Computing, veterán v oblasti clusteringového počítačového
zpracování, nyní nabízí svůj software Load-Sharing Facility (LSF) Batch na
platformě Linux. LSF Batch umožňuje centrální řídicí jednotce plánovat úlohy
pro běh na jakémkoliv počtu uzlů v clusteru.
Je koncepčně podobný softwaru enFuzion firmy TurboLinux a podporuje běh
jakékoliv aplikace na uzlu.
Tato metoda je velmi přizpůsobivá ve vztahu k velikosti clusteru, poněvadž
můžete konkrétně vybrat určitý počet uzlů, či dokonce samotné uzly, na nichž by
mohla aplikace běžet. Takto můžete 64uzlový cluster rozdělit
do menších logických clusterů, z nichž každý bude zpracovávat svou vlastní
dávku aplikací. Kromě toho může předat úlohu jiným serverům, pokud by aplikace
nebo uzel přestaly fungovat.
Produkty Platforms běží na velkých unixových systémech, jakož i na Windows NT.
V tomto okamžiku byl na Linux portován pouze jejich produkt LSF Batch. Posléze
bude následovat zbytek komponent balíku LSF.
10. Resonate Dispatch series
Resonate používá k vyvažování zátěže softwarový přístup, který se podobá
linuxovému virtuálnímu serveru. Podporuje však více vlastností a obsahuje
některé lepší algoritmy pro vyvažování zátěže. Pomocí Resonate můžete například
na každý z uzlů clusteru nahrát agenta, který určuje okamžité systémové
zatížení tohoto uzlu. Server vyvažující zátěž pak řídí agenty na každém uzlu,
aby určil, který z nich je nejméně zatížen, a na ten směruje nový provoz. Kromě
toho může Resonate pomocí svého produktu Global Dispatch efektivněji podporovat
geograficky distribuované servery.
Společnost Resonate tento software důkladně testovala na Red Hat Linuxu,
neexistuje však žádný reálný důvod pro to, aby nemohl běžet též na jiných
distribucích. Software Resonate rovněž pracuje na různých jiných platformách
včetně Solarisu, AIXu a Windows NT a je schopen vyvažovat zatížení též ve
smíšených prostředích.
11. MOSIX
MOSIX využívá úpravy kernelu Linuxu k implementaci procesního clusteringového
systému pro vyvažování zátěže. V rámci tohoto clusteru se jakýkoliv server nebo
pracovní stanice může dle libosti připojovat nebo odpojovat, a tak zvyšovat
nebo snižovat celkový výpočetní výkon clusteru. Podle své dokumentace MOSIX
používá adaptivní procesní vyvažování zátěže a algoritmy pro přidělování
paměti, aby maximalizoval celkovou výkonnost. Aplikační procesy mohou být
preemptivně přemisťovány mezi uzly, s cílem využít výhody nejlepších
prostředků, což je podobný způsob, jaký používají symetrické multiprocesorové
systémy při přepínání aplikací mezi různými procesory.
MOSIX je zcela transparentní na úrovni aplikace a nevyžaduje žádnou rekompilaci
nebo opakované sestavování s novými knihovnami, poněvadž se vše odehrává na
úrovni kernelu. Může být několika způsoby konfigurován jako víceuživatelský
sdílený environmentální cluster. Může existovat jediný svazek všech serverů a
systémů, které jsou součástmi clusteru, nebo může být dynamicky rozčleněn do
několika dílčích clusterů, z nichž každý slouží pro jiný účel. Linuxové
pracovní stanice mohou být buď trvalou součástí clusteru, dočasnou součástí
nebo mohou sloužit jen jako předávací místa dávkových úloh. Jako dočasný uzel
clusteru může být pracovní stanice použita pro zvýšení výpočetních schopností
clusteru v mimopracovní době, zatímco není využívána. Cluster může být také
použit jen v dávkovém režimu, kdy je nakonfigurován tak, aby akceptoval úlohy
vyžadující dávkové zpracování řazené ve frontě. Tyto úlohy pak přebírá daemon,
jenž je rozesílá jednotlivým uzlům clusteru ke zpracování.
MOSIX nabízí zajímavou možnost pro vytváření prostředí tvořených clustery v
podnikových sférách, kromě vysoce výkonného vědeckého počítačového zpracování.
Prostřednictvím zapojení málo využívaných prostředků v serverech a pracovních
stanicích může vytvářet a provozovat aplikace mnohem rychleji a účinněji.
Poněvadž má přístup k mnoha serverům a je schopen dynamicky měnit velikost
clusterů a modifikovat pravidla pro vyvažování zátěže, rovněž nabízí vysoký
stupeň dostupnosti serverů. Nevýhodou MOSIXu je, že mění chování některých
základních částí kernelu Linuxu, a proto aplikace pracující na systémové úrovni
nemusejí fungovat podle očekávání. MOSIX je v současné době rovněž omezen,
pokud jde o síťové aplikace používající socketů pro připojení založené na
jediné serverové adrese. To znamená, že když síťová aplikace začne běžet na
serverovém uzlu, musí pokračovat v běhu na tomto uzlu, zatímco IP adresa je
vázána k socketu. Zdá se, že MOSIX pracuje i na migrujících socketech, takže se
možná brzy stane předmětem diskuze.
Clustery s vysokou dostupností high availabity
Clustery s vysokou dostupností (high-availability HA) se zaměřují na udržení
serverového systému v provozu a při životě po co nejdelší dobu. Obvykle
využívají redundantní uzly a služby běžící na více strojích, aby si udržely
aktivní obraz jeden o druhém. Dojde-li k výpadku uzlu, jeho náhradník převezme
jeho povinnosti během několika sekund nebo dokonce dříve. A tak z hlediska
uživatele cluster nikdy není vyřazen z provozu.
Některé HA clustery rovněž udržují napříč uzly redundantní aplikace. A tak
uživatelská aplikace bude pokračovat v běhu, i když uzel, na němž dotyčný nebo
dotyčná pracuje, selže. Běžící aplikace je během několika sekund přemístěna na
jiný uzel a vše, co uživatel pozoruje, je menší zpomalení odezvy. Tento druh
redundance na úrovni aplikací však vyžaduje, aby software byl navržen jako
clusterově orientovaný, a je třeba vědět, co dělat v případě výpadku uzlu. To
je však dnes pro Linux většinou nedostupné, protože v oblasti HA clusteringu
neexistuje standard pro linuxové systémy a není k dispozici žádné API, které by
vývojáři aplikací mohli použít pro tvorbu clusterově orientovaného softwaru.
HA clustery mohou provádět vyvažování zátěže, avšak systémy typicky jen udržují
sekundární služby v běhu naprázdno, zatímco primární servery zpracovávají
úlohy. Sekundární server je obvykle zrcadlovým obrazem operačního systému na
primárním serveru, i když je samotný hardware mírně odlišný. Sekundární uzly
udržují aktivní zrcadlo nebo sledují tepovou frekvenci primáru, aby viděly, zda
ještě pracuje. Pokud by se hodinový stroj zastavil a primární systém přestal
odpovídat, sekundární převezme jeho síťovou a systémovou identitu (IP
hostitelské jméno a adresu v případě linuxových systémů).
Linux je naneštěstí v této oblasti stále poněkud laxní. Dobrou zprávou je, že
dodavatelé s velkými jmény dělají, co mohou, aby nabídli vysokou dostupnost tak
rychle, jak jen to půjde, protože jde o vlastnost, která je obecně požadována
jejich servery podnikové třídy.
12. Linuxový HA projekt
Linuxový projekt vysoké dostupnosti si podle svého programového prohlášení
klade za cíl poskytnout řešení vysoké dostupnosti pro Linux, který skrze úsilí
vývojářské komunity propaguje spolehlivost, dostupnost a praktičnost. Jde o
pokus dát Linuxu stejné konkurenční vlastnosti, jaké mají přední unixové
systémy jako Solaris, AIX a HP/UX, pokud jde o clustering s vysokou
dostupností. A tak cílem tohoto projektu je dosáhnout do roku 2001 úrovně
funkčnosti, kterou specifikovala analytická skupina D. H. Browna ve své
porovnávací zprávě zabývající se unixovým clusteringem
(http://www.sun.com/clusters/dh.brown.pdf).
Tento projekt disponuje softwarem, který je schopen udržovat tepovou frekvenci
mezi uzly a přebírat IP adresy havarovaných uzlů. Pokud dojde k poruše uzlu,
bude použit softwarový balík Fake Redundant IP pro doplnění adresy porouchaného
uzlu do pracujícího uzlu, za účelem převzetí jeho odpovědnosti. Tak může být
porouchaný uzel automaticky nahrazen během několika milisekund. Pro praktické
použití se tato tepová frekvence obvykle udržuje v několikasekundovém rozsahu,
pokud nemáte jednoúčelové síťové propojení mezi uzly. V tomto stadiu je stále
nutné na novém uzlu restartovat aplikace, které běžely na vadném systému.
Všudypřítomný clustering
Pro Linux je k dispozici velký výběr clusteringových systémů. V současné době
je několik takových projektů nekomerčních a dokonce experimentálních. Ačkoliv
to neznamená problém pro akademické prostředí a některé organizace, velké
podniky obvykle preferují komerčně podporované platformy známých dodavatelů.
Dodavatelé jako IBM, SGI, HP a Sun nabízejí produkty nebo služby pro budování
vědeckých clusterů pracujících pod Linuxem z důvodu své popularity a možnosti
prodávat velká množství serverových zařízení. Zatímco jiné formy clusteringu
jsou ze strany komerčních organizací vnímány jako spolehlivé, titíž dodavatelé
serverů by kolem open source clusteringových řešení raději vytvářeli své
vlastní produkty.
Důležitost Linuxu jako serverové platformy závisí na schopnosti podporovat
velké servery a clustery serverů. To vytváří předpoklad pro konkurování ve
vyšší sféře obsazené unixovými servery společností Sun, HP, IBM a jinými.
Ačkoliv Windows NT a 2000 nepodporují takový rozsah clusteringu jako Linux,
dostupnost oficiální metody HA clusteringu a API pro budování clusterově
orientovaných aplikací tyto operační systémy rovněž zapojuje do hry.
Uvažujete-li o vybudování clusteru, měli byste tyto možnosti důkladně
prozkoumat a porovnat je se svými potřebami. Možná zjistíte, že to, čeho chcete
dosáhnout, není dosud k dispozici jako ucelené, ale možná také naleznete již
hotové a odzkoušené řešení. V každém případě si buďte jisti, že mnoho dnešních
organizací svěřuje své aplikace clusterům sestaveným z linuxových systémů,
které provádějí rozsáhlé výpočty nebo slouží velkému počtu webových stránek.
Clustering je jednou z podnikových služeb, která byla pod Linuxem úspěšně
testována. Ačkoliv se jistě objeví nové možnosti, široký výběr je výhodou,
která staví Linux před jiné systémy, Windows NT nevyjímaje.
0 1816 / alsn

Probraná řešení
Tento článek zkoumá mnoho linuxových clusteringových projektů, které jsou k
dispozici komerční cestou nebo formou freeware. Vyšetřuje též různé dostupné
typy clusteringu včetně toho, jak jsou implementovány pod Linuxem.
Řešení popisovaná v tomto článku jsou následující (včetně minulého dílu):
Ę1. Beowulf http://www.beowulf.org
Ę2. Giganet cLAN http://www.giganet.com
Ę3. Legion http://legion.virginia.edu
Ę4. Cplant http://www.cs.sandia.gov/cplant
Ę5. JESSICA 2 http://www.srg.csis.hku.hk
Ę6. PARIS http://www.irasa.fr/paris
Ę7. Linux Virtual Server http://www.linuxvirtualserver.org
Ę8. TurboLinux TurboCluster a enFuzion http://www.turbolinux.com
Ę9. LSF Batch od Platform Computing http://www.platform.com
10. Resonate Dispatch series http://www.resonate.com
11. MOSIX http://www.mosix.org
12. Projekt Linux-HA http://www.linux-ha.org









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