Úvod: klastrové výpočtové systémy. História projektu Beowulf. Škálovateľná klastrová architektúra

Rýchly vývoj informačných technológií, rast spracovávaných a prenášaných dát a zároveň zvyšujúce sa požiadavky na spoľahlivosť, dostupnosť, odolnosť voči chybám a škálovateľnosť nás nútia pozrieť sa na už tak ďaleko od mladej technológie klastrovania. Táto technológia umožňuje vytvárať celkom flexibilné systémy, ktoré budú spĺňať všetky vyššie uvedené požiadavky. Bolo by nesprávne myslieť si, že inštalácia klastra vyrieši absolútne všetky problémy. Z klastrovania je však celkom možné dosiahnuť pôsobivé výsledky. Musíte len jasne pochopiť, čo to je, aké sú najvýznamnejšie rozdiely medzi ich jednotlivými odrodami a tiež poznať výhody určitých systémov - z hľadiska efektívnosti ich aplikácie vo vašom podnikaní.

Analytici z IDC vypočítali, že veľkosť trhu s klastrami v roku 1997 bola len 85 miliónov dolárov, kým minulý rok mal tento trh „hodnotu“ už 367,7 milióna dolárov.

Skúsme teda bodovať „i“. K dnešnému dňu neexistuje jasná definícia klastra. Navyše neexistuje jediný štandard, ktorý by klaster jasne reguloval. Nezúfajte však, pretože samotná podstata klastrovania neznamená súlad so žiadnou normou. Jediná vec, ktorá určuje, že klaster je klaster, je súbor požiadaviek kladených na takéto systémy. Uvádzame tieto požiadavky (štyri pravidlá): l spoľahlivosť, l dostupnosť funkcie (dostupnosť), l škálovateľnosť, l výpočtový výkon. Na základe toho formulujeme definíciu klastra. Klaster je systém ľubovoľných zariadení (servery, diskové jednotky, úložné systémy atď.), ktorý poskytuje 99,999% odolnosť voči chybám a tiež spĺňa „štyri pravidlá“. Napríklad: klaster serverov je skupina serverov (bežne označovaných ako uzly klastra) prepojených a nakonfigurovaných takým spôsobom, aby poskytli používateľovi prístup ku klastru ako jedinému koherentnému prostriedku.

odolnosť proti chybám

Hlavnou charakteristikou klastra je nepochybne odolnosť voči chybám. Potvrdzuje to aj používateľský prieskum: 95 % respondentov odpovedalo, že potrebujú spoľahlivosť a odolnosť voči poruchám v klastroch. Tieto dva pojmy by sa však nemali zamieňať. Odolnosť voči poruchám sa vzťahuje na dostupnosť určitých funkcií v prípade poruchy, inými slovami ide o redundanciu funkcií a vyvažovanie záťaže. A spoľahlivosť sa chápe ako súbor prostriedkov na zabezpečenie ochrany pred poruchami. Takéto požiadavky na spoľahlivosť a odolnosť klastrových systémov sú dané špecifikami ich použitia. Uveďme si malý príklad. Klaster obsluhuje elektronický platobný systém, takže ak klient v určitom okamihu zostane bez obsluhy prevádzkovej spoločnosti, vyjde ho to draho. Inými slovami, systém musí fungovať nepretržite 24 hodín denne, sedem dní v týždni (7-24). Odolnosť voči chybám 99 % však zjavne nestačí, pretože to znamená takmer štyri dni v roku Informačný systém závod alebo prevádzkovateľ bude nefunkčný. To sa nemusí zdať až taká dlhá doba, vzhľadom na preventívnu prácu a Údržba systémov. No dnešnému klientovi sú dôvody, prečo systém nefunguje, absolútne ľahostajné. Potrebuje služby. Takže 99,999 % sa stáva prijateľnou hodnotou pre odolnosť voči chybám, čo je ekvivalent 5 minút za rok. Takéto ukazovatele môže dosiahnuť samotná architektúra klastra. Zoberme si príklad klastra serverov: každý server v klastri zostáva relatívne nezávislý, to znamená, že ho možno zastaviť a vypnúť (napríklad z dôvodu údržby alebo inštalácie dodatočného zariadenia) bez narušenia klastra ako celku. Úzka interakcia serverov tvoriacich klaster (uzly klastra) zaručuje maximálny výkon a minimálne prestoje aplikácie v dôsledku skutočnosti, že: l v prípade zlyhania softvéru na jednom uzle aplikácia naďalej funguje (alebo sa automaticky reštartuje) na iných uzloch klastra, l zlyhanie alebo zlyhanie uzla (alebo uzlov) klastra z akéhokoľvek dôvodu (vrátane ľudských chýb) neznamená poruchu klastra ako celku, l preventívne a opravné práce, rekonfiguráciu a zmenu verzií softvéru možno vo väčšine prípadov vykonávať na uzloch klastra jeden po druhom, bez prerušenia prevádzky aplikácií na iných uzloch klastra Možné prestoje, ktorým normálne systémy v klastri nedokážu zabrániť, majú za následok buď určité zníženie výkonu (ak uzly klesnú), alebo výrazné zníženie výkonu (aplikácie sú nedostupné iba na krátky čas potrebné prepnúť na iný uzol), čo umožňuje 99,99% úroveň dostupnosti.

Škálovateľnosť

Vysoká cena klastrových systémov je spôsobená ich komplexnosťou. Škálovateľnosť klastrov je preto dosť dôležitá. Počítače, ktorých výkon uspokojí dnešné požiadavky, ich totiž nemusia spĺňať ani v budúcnosti. S takmer akýmkoľvek zdrojom v systéme sa skôr či neskôr musí stretnúť s problémom s výkonom. V tomto prípade sú možné dve možnosti škálovania: horizontálne a vertikálne. Väčšina počítačových systémov umožňuje niekoľko spôsobov, ako zlepšiť svoj výkon: pridanie pamäte, zvýšenie počtu procesorov vo viacprocesorových systémoch alebo pridanie nových adaptérov alebo jednotiek. Toto škálovanie sa nazýva vertikálne škálovanie a umožňuje vám dočasne zlepšiť výkon systému. Systém sa však nastaví na maximálne podporované množstvo pamäte, procesorov alebo diskov a systémové prostriedky sa vyčerpajú. A používateľ bude čeliť rovnakému problému zlepšenia výkonu počítačového systému ako predtým. Horizontálne škálovanie poskytuje možnosť pridávať do systému ďalšie počítače a rozdeľovať medzi ne prácu. Takže výkon nový systém vo všeobecnosti presahuje predchádzajúci. Prirodzeným obmedzením takéhoto systému by bolo softvérže sa na ňom rozhodnete bežať. Najjednoduchším príkladom použitia takéhoto systému je distribúcia rôznych aplikácií medzi rôzne komponenty systému. Môžete napríklad presunúť svoje kancelárske aplikácie na jeden uzol klastra webových aplikácií na druhý, podnikové databázy na tretí. To však vyvoláva otázku vzájomnej interakcie týchto aplikácií. Opäť platí, že škálovateľnosť je zvyčajne obmedzená na údaje používané v aplikáciách. rôzne aplikácie ktoré vyžadujú prístup k rovnakým údajom, je potrebná metóda, ktorá poskytuje prístup k údajom z rôznych uzlov takéhoto systému. Riešením sú v tomto prípade technológie, ktoré v skutočnosti robia z klastra klaster, a nie systém navzájom prepojených strojov. Zároveň samozrejme zostáva zachovaná možnosť vertikálneho škálovania klastrového systému. Klastrový model teda vďaka vertikálnemu a horizontálnemu škálovaniu poskytuje serióznu ochranu spotrebiteľských investícií.Ako variant horizontálneho škálovania stojí za zmienku aj použitie skupiny počítačov pripojených cez switch, ktorý rozdeľuje záťaž (technológia Load Balancing ). O tejto pomerne populárnej možnosti budeme podrobne hovoriť v nasledujúcom článku. Tu si všimneme len nízku cenu takéhoto riešenia, ktorá je najmä súčtom ceny prepínača (6 000 USD alebo viac, v závislosti od funkčného vybavenia) a hostiteľského adaptéra (rádovo niekoľko stoviek dolárov za každý; hoci , samozrejme, môžete použiť bežné sieťové karty). Takéto riešenia nachádzajú svoje primárne využitie na webových stránkach s vysokou návštevnosťou, kde jediný server nedokáže spracovať všetky prichádzajúce požiadavky. Schopnosť rozložiť záťaž medzi serverové uzly takéhoto systému vám umožňuje vytvoriť jednu webovú lokalitu na mnohých serveroch.

Beowulf alebo výpočtová sila

Riešenia podobné tým, ktoré sú opísané vyššie, sa často nazývajú Beowulfov klaster. Takéto systémy sú primárne navrhnuté pre maximálny výpočtový výkon. Preto dodatočné systémy na zlepšenie spoľahlivosti a odolnosti voči poruchám jednoducho nie sú k dispozícii. Toto riešenie má mimoriadne atraktívnu cenu, zrejme aj preto si získalo najväčšiu obľubu v mnohých vzdelávacích a výskumných organizáciách. Projekt Beowulf sa objavil v roku 1994 - vznikla myšlienka vytvoriť paralelné výpočtové systémy (klastre) z verejných počítačov na báze Intelu a lacných ethernetových sietí, pričom sa na tieto počítače nainštaloval Linux a jedna z bezplatných komunikačných knižníc (PVM a potom MPI). Ukázalo sa, že pre mnohé triedy problémov a s dostatočným počtom uzlov takéto systémy poskytujú výkon porovnateľný so superpočítačom. Ako ukazuje prax, zostaviť takýto systém je celkom jednoduché. Stačí k tomu vysokovýkonný switch a k nemu pripojených niekoľko pracovných staníc (serverov) s nainštalovaným operačným systémom. Linuxový systém. To však nestačí. Na to, aby táto kopa železa ožila, je potrebný špeciálny softvér na paralelné výpočty.Najčastejším paralelným programovacím rozhraním v modeli odovzdávania správ je MPI (Message Passing Interface). Názov Message Passing Interface hovorí sám za seba. Je to dobre štandardizovaný mechanizmus na vytváranie paralelných programov v modeli správ. Existujú bezplatné (!) a komerčné implementácie pre takmer všetky superpočítačové platformy, ako aj pre siete pracovných staníc UNIX a Windows NT. MPI je v súčasnosti najpoužívanejšie a dynamicky sa rozvíjajúce rozhranie svojej triedy. Odporúčaná bezplatná implementácia MPI je balík MPICH vyvinutý v Argonne National Laboratory. MPI je štandardizovaný MPI Forum. Najnovšia verzia štandardu je 2.0. Táto verzia pridáva k MPI dôležité funkcie ako dynamické riadenie procesov, jednosmerná komunikácia (Put/Get), paralelné I/O Neustály dopyt po vysokom výpočtovom výkone vytvoril pre mnohých výrobcov atraktívny trh. Niektoré z nich sa vyvinuli vlastné technológie pripojenia počítačov v klastri. Najznámejšie z nich sú Myrinet od MyriCom a cLAN od Giganet. Myrinet je otvorený štandard. Na jeho implementáciu MyriCom ponúka širokú škálu sieťových zariadení za relatívne nízke ceny. Na fyzickej vrstve sú podporované sieťové prostredia SAN (System Area Network), LAN (CL-2) a optické siete. Technológia Myrinet poskytuje vysokú škálovateľnosť siete a v súčasnosti je veľmi široko používaná pri budovaní vysokovýkonných klastrov. Giganet vyvíja softvér a hardvér pre priamu interakciu centrálnych procesorových jednotiek klastrových serverov pri gigabitových rýchlostiach, pričom obchádza funkcie OS. Cena riešenia je približne 2 500 USD za 8-portový prepínač, 150 USD za adaptér Myrinet, približne 6 250 USD za 8-portový prepínač a 800 USD za adaptér Giganet. Ten, mimochodom, získal ocenenie Best of Show na výstave Microsoft Tech Ed 2000. Ako príklad si vezmime implementáciu klastra Beowulf v Inštitúte pre vysokovýkonnú výpočtovú techniku ​​a databázy Ministerstva vedy a techniky Ruskej federácie. Klaster s názvom „PARITET“ je založený na bežne dostupných komponentoch pre osobné počítače a pracovné stanice a poskytuje celkový špičkový výkon 3,2 GFLOP/s. Klaster pozostáva zo štyroch dvojprocesorových výpočtových uzlov založených na procesoroch Intel Pentium II/450 MHz. Každý uzol má 512 MB RAM a 10 GB Ultra Wide SCSI pevný disk. Výpočtové uzly klastra spája vysoko výkonný prepínač Myrinet (kanály so šírkou pásma 1,28 GB/s, full duplex). Na správu a konfiguráciu slúži aj redundantná sieť (100 Mbit Fast Ethernet). Na uzloch výpočtového klastra je nainštalovaný operačný systém Linux (distribučná súprava Red Hat 5.2). Na programovanie paralelné aplikácie Používajú sa rozhrania na odovzdávanie správ MPI/PVM.

Mini klaster od spoločností Dell a Compaq

Okrem prepínačového riešenia na budovanie klastra existuje množstvo riešení – hardvérových aj softvérových. Niektoré riešenia sú zložité a dodávajú sa „tak ako sú“ – „všetko v jednej krabici“. Posledná možnosť – nazvime ju „klaster v krabici“ – je tiež pomerne populárnym riešením, keďže je určená pre masový trh a ide o zoskupenie vstupný level(z hľadiska výkonu a možností škálovania). Avšak konštrukcia takýchto systémov, vzťah vnútorné komponenty spoľahlivosť a odolnosť voči poruchám sú plne v súlade s "veľkými" systémami. Aby ste pochopili, ako funguje klaster, zvážte dva podobné produkčné systémy – Compaq a Dell. Klastre od týchto známych hráčov na počítačovom trhu sú postavené z dvoch serverov DELL - PowerEdge 6100 alebo PowerEdge 4200 a následne Compaq - Proliant 1850R. Použitý softvér je Microsoft Cluster Server (Compaq, Dell) alebo Novell High-Availability Services pre NetWare 4.0 / Clustering Services pre NetWare 5.0 (Compaq). Softvér vám umožňuje nakonfigurovať dva servery tak, že ak jeden zo serverov v klastri zlyhá, jeho práca a aplikácie sa okamžite automaticky prenesú na druhý server, čím sa eliminujú prestoje. Oba klastrové servery poskytujú svoje prostriedky na vykonávanie produkčnej práce, takže ani jeden z nich nečinne nečaká, kým zlyhá druhý. Komunikácia medzi týmito dvoma servermi prebieha prostredníctvom takzvaného pulzujúceho spojenia (Heartbeat) vyhradenej časti lokálnej siete. Keď primárny server zlyhá, druhý server, ktorý monitoruje srdcové spojenie, zistí, že primárny server je mimo prevádzky a prevezme pracovné zaťaženie, ktoré bežalo na zlyhanom počítači. Vykonávané funkcie zahŕňajú spustenie aplikácií, procesov a služieb potrebných na odpovedanie na požiadavky klientov o prístup k zlyhávajúcemu serveru. Hoci každý zo serverov v klastri musí mať všetky zdroje potrebné na prevzatie funkcií iného servera, hlavné vykonávané úlohy môžu byť úplne odlišné. Sekundárny server, ktorý je súčasťou klastra prepnutia pri zlyhaní, spĺňa požiadavku na poskytovanie funkcie horúceho pohotovostného režimu, ale môže tiež spúšťať svoje vlastné aplikácie. Napriek masívnej duplicite zdrojov má však takýto klaster „hrdlo fľaše“ – rozhranie zbernice SCSI a systému zdieľanej externej pamäte, ktorej zlyhanie spôsobuje zlyhanie klastra. Aj keď je to podľa výrobcov pravdepodobnosť mizivá.Takéto miniklastre sú primárne určené na autonómnu prevádzku bez neustáleho sledovania a správy. Príkladom použitia je riešenie pre vzdialené pobočky veľkých spoločností na zabezpečenie vysokej dostupnosti (7S24) najdôležitejších aplikácií (databázy, poštové systémy a pod.). Vzhľadom na rastúci dopyt po výkonných systémoch základnej úrovne odolných voči chybám vyzerá trh s týmito klastrami celkom priaznivo. Jediným „ale“ je, že nie každý potenciálny spotrebiteľ klastrových systémov je pripravený zaplatiť približne 20 000 dolárov za dvojserverový systém.

Suchý zvyšok

Stručne povedané, klastre majú konečne masový trh. Takýto záver možno ľahko vyvodiť z predpovedí analytikov Standish Group International, ktorí tvrdia, že v najbližších dvoch rokoch bude celosvetový rast počtu inštalovaných klastrových systémov predstavovať 160 %. Analytici z IDC navyše vypočítali, že veľkosť klastrového trhu v roku 1997 bola len 85 miliónov dolárov a minulý rok mal tento trh „hodnotu“ už 367,7 milióna dolárov. Trend rastu je zrejmý. Potreba klastrových riešení dnes skutočne vzniká nielen vo veľkých dátových centrách, ale aj v malých firmách, ktoré nechcú žiť podľa princípu „chudák platí dvakrát“ a investujú svoje peniaze do vysoko spoľahlivých a ľahko škálovateľných klastrových systémov. Možností na implementáciu klastra je našťastie viac než dosť. Pri výbere akéhokoľvek riešenia by sa však nemalo zabúdať, že všetky parametre klastra sú vzájomne závislé. Inými slovami, musíte jasne uprednostniť požadovanú funkcionalitu klastra, pretože so zvyšujúcim sa výkonom klesá stupeň dostupnosti (dostupnosti). Zvyšovanie výkonu a zabezpečenie požadovanej úrovne dostupnosti nevyhnutne vedie k zvýšeniu nákladov na riešenie. Používateľ teda musí urobiť to najdôležitejšie – nájsť zlatú strednú cestu schopností klastra v aktuálnom momente. O to ťažšie je to urobiť, o čo viac rôznych riešení sa dnes na trhu klastrov ponúka.Pri príprave článku boli použité materiály z WWW serverov: http://www.dell.ru/ , http://www.compaq .ru/ , http:// www.ibm.ru/ , http://www.parallel.ru/ , http://www.giganet.com/ , http://www.myri.com/

ComputerPress 10"2000

Štátna univerzita informačných a komunikačných technológií

abstraktné

z disciplíny "Počítačové obvody"

na tému: "Moderné klastrové systémy a ich využitie"

Vyplnil: študent skupiny KSD-32

Muzalevsky Evgeny


Úvod 3

1. Všeobecné princípy klastrových systémov 4

2. Klasifikácia 4

3. Používanie klastrových systémov 5

Závery 6

Referencie 6
Úvod

Klaster je modulárny multiprocesorový systém vytvorený na báze štandardných výpočtových uzlov prepojených vysokorýchlostným komunikačným médiom. Teraz sú slová „klaster“ a „superpočítač“ do značnej miery synonymá, no predtým, ako sa to dalo s istotou povedať, hardvér prešiel dlhým evolučným cyklom. Počas prvých 30 rokov od nástupu počítačov až do polovice 80. rokov boli „superpočítačové“ technológie chápané výlučne ako výroba špecializovaných, najmä výkonných procesorov. Vzhľad jednočipového mikroprocesora však prakticky zmazal rozdiel medzi „masovými“ a „obzvlášť výkonnými“ procesormi a od tohto momentu jediná cesta Vytvorenie superpočítača sa stalo spôsobom kombinovania procesorov pre paralelné riešenie jedného problému.

Atraktívnou vlastnosťou klastrových technológií je, že umožňujú na dosiahnutie požadovaného výkonu kombinovať počítače rovnaké iný typ od osobných počítačov až po výkonné superpočítače. Klastrové technológie sú široko používané ako prostriedok na vytváranie systémov triedy superpočítačov z masovo vyrábaných komponentov, čo výrazne znižuje náklady na výpočtový systém.


1. Všeobecné zásady klastrové systémy

Ako už bolo spomenuté, výpočtový klaster je kolekcia
počítače spojené v rámci určitej siete na vyriešenie jedného problému, ktorý je používateľovi prezentovaný ako jeden zdroj.

Pojem „jediný zdroj“ znamená prítomnosť softvéru, ktorý poskytuje
príležitosť pre používateľov, správcov a aplikačné programy počítať,
že existuje len jedna entita, s ktorou pracujú, klaster.
Napríklad systém dávkového spracovania klastra vám umožňuje odoslať úlohu
spracovanie do klastra, a nie do žiadneho jednotlivého počítača. Viac komplexné
databázové systémy sú príkladom. Takmer všetci výrobcovia
databázových systémov, existujú verzie bežiace paralelne na
viacero klastrových strojov. V dôsledku toho aplikácie využívajúce databázu
dátam nemusí byť jedno, kde sa ich práca vykonáva. DBMS
zodpovedný za synchronizáciu súbežných činností a údržbu
integrita databázy.

Počítače, ktoré tvoria klaster – takzvané klastrové uzly – vždy
relatívne nezávislý, čo umožňuje zastavenie alebo vypnutie ktoréhokoľvek z nich
ich na preventívnu údržbu alebo inštaláciu prídavných
zariadení bez narušenia zdravia celého klastra.

Ako výpočtové uzly v klastri sa zvyčajne používajú
jednoprocesorové osobné počítače, dvoj- alebo štvorprocesorové SMP-
serverov. Každý uzol spúšťa svoju vlastnú kópiu operačného systému.
systémov, ktoré sa najčastejšie používajú štandardne
operačné systémy: Linux, NT, Solaris atď. Zloženie a sila uzlov
sa môže meniť aj v rámci toho istého klastra, vďaka čomu je možné vytvárať
heterogénne systémy. Určuje sa výber konkrétneho komunikačného média
veľa faktorov: vlastnosti triedy riešených úloh, potreba
následné rozšírenie klastra a pod. Dá sa konfigurovať
špecializované počítače napríklad súborový server a spravidla
dostal príležitosť vzdialený prístup do klastra cez internet.
Vyplýva to z definície architektúry klastrových systémov, ktorú zahŕňa
sám o sebe veľmi široký rozsah systémov.

2. Klasifikácia

Klastrové systémy môžu využívať rôzne platformy a zvyčajne nie sú klasifikované podľa súboru komponentov, ale podľa aplikácie. Existujú štyri typy klastrových systémov: výpočtové klastre, databázové klastre, klastre prepnutia pri zlyhaní a klastre distribúcie záťaže. Najväčšou skupinou sú výpočtové klastre. Dá sa rozdeliť do podskupín; klasifikáciu v rámci tejto skupiny však už nepodliehajú skutočné počítače, ale hotové softvérové ​​a hardvérové ​​klastrové riešenia. Takéto systémy na kľúč majú predinštalovaný aplikačný softvér požadovaný zákazníkom na riešenie jeho problémov. Riešenia optimalizované pre rôzne aplikácie sa líšia výberom komponentov, ktoré poskytujú najproduktívnejšiu prevádzku týchto konkrétnych aplikácií pri najlepšom pomere cena / kvalita.

Databázové klastre sú nové. Tieto systémy pracujú s paralelnými verziami databáz a využívajú sa vo veľkých organizáciách na prevádzku CRM a ERP systémov, ako aj transakčných databáz. Dnes sú tieto systémy vážnym konkurentom tradičných serverov so zdieľanou pamäťou najlepší pomer cena/výkon, škálovateľnosť a odolnosť voči chybám.

Failover klastre sú vytvorené tak, aby čo najlepšie zabezpečili spoľahlivosť kritických aplikácií. Prevádzka aplikácie je duplikovaná na rôznych uzloch a v prípade chyby na jednom z nich aplikácia pokračuje v práci alebo sa automaticky reštartuje na druhom. Takéto klastre nie sú veľké a používatelia ich často vytvárajú sami. Klastrové technológie sa tiež používajú na distribúciu veľkého toku požiadaviek na mnohé servery. Takéto riešenia sa často používajú na podporu webových stránok s dynamickým obsahom, ktoré neustále pristupujú k databázam, ako napr vyhľadávače. V závislosti od veľkosti služby môžu mať klastre rozloženia zaťaženia pomerne veľký počet uzlov.

Prevádzku klastrových systémov podporujú štyri typy špecializovaných aplikácií, ako sú: operačné systémy (zvyčajne Linux), komunikačné nástroje, nástroje na vývoj paralelných aplikácií a softvér na správu klastrov.

3. Používanie klastrových systémov

Vývojári architektúr klastrových systémov sledovali rôzne ciele, keď
ich tvorbu. Prvým bolo digitálne zariadenie s klastrami VAX/VMS.
Účelom vytvorenia tohto stroja bolo zvýšiť spoľahlivosť systému,
zabezpečenie vysokej dostupnosti a odolnosti voči poruchám. V súčasnosti
dobe existuje veľa systémov podobných v architektúre od iných
výrobcov.

Ďalším cieľom vytvárania klastrových systémov je vytvárať lacné
vysokovýkonné paralelné výpočtové systémy. Jeden z prvých
projekty, ktoré dali meno celej triede paralelných systémov – Beowulfov klaster
– vznikol v Goddardovom vesmírnom letovom centre NASA na podporu
potrebné výpočtové zdroje projektu vedy o Zemi a vesmíre.
Projekt Beowulf začal v lete 1994 a mal 16 procesorov
cluster na procesoroch Intel 486DX4/100 MHz. Každý uzol mal
16 MB nainštalovaných Náhodný vstup do pamäťe a 3 sieťové Ethernet-
adaptér. Tento systém bol veľmi úspešný z hľadiska
cena/výkon sa preto začala vyvíjať takáto architektúra a
byť široko používaný v iných vedeckých organizáciách a ústavoch.
Každá trieda klastrov má svoje osobitosti architektúry a
aplikovaný hardvér.

V priemere sú domáce superpočítače výkonovo stále ďaleko za západnými: stroje používané na vedecký výskum sú 15-krát, výpočtové zdroje finančných spoločností 10-krát, priemyselné superpočítače 9-krát.


závery

Klaster je komplexný softvérový a hardvérový komplex pozostávajúci z výpočtových uzlov založených na štandardných procesoroch prepojených vysokorýchlostnou systémovou sieťou, ako aj spravidla pomocných a servisných sietí.

Existujú štyri typy klastrových systémov: výpočtové klastre, databázové klastre, klastre prepnutia pri zlyhaní a klastre distribúcie záťaže.

Oblasť použitia klastrových systémov teraz nie je užšia ako superpočítače s inou architektúrou: nemenej úspešne zvládajú úlohu simulácie rôznych procesov a javov. Superpočítačové modelovanie môže výrazne znížiť náklady a urýchliť uvedenie nových produktov na trh, ako aj zlepšiť ich kvalitu.

Niekoľko myšlienok o tom, kedy má zmysel používať klastre s vysokou dostupnosťou na ochranu aplikácií.

Jednou z hlavných úloh pri prevádzke IT systému v akomkoľvek podnikaní je zabezpečiť kontinuitu poskytovaných služieb. Inžinieri aj IT lídri však veľmi často nemajú úplne jasno v tom, čo sa „kontinuita“ konkrétne vyjadruje v ich podnikaní. Podľa názoru autora je to spôsobené nejednoznačnosťou a vágnosťou samotného pojmu kontinuita, preto nie je vždy možné jednoznačne povedať, ktoré obdobie diskretizácie sa považuje za spojité a ktorý interval bude intervalom nedostupnosti. Situáciu zhoršuje množstvo technológií navrhnutých tak, aby v konečnom dôsledku vyriešili jeden spoločný problém, no rôznymi spôsobmi.

Aká technológia by sa mala zvoliť v každom konkrétnom prípade, aby sa vyriešili úlohy stanovené v rámci dostupného rozpočtu? V tomto článku sa bližšie pozrieme na jeden z najpopulárnejších prístupov k ochrane aplikácií, a to na zavedenie hardvérovej a softvérovej redundancie, teda vybudovanie klastra s vysokou dostupnosťou. Táto úloha je napriek zdanlivej jednoduchosti implementácie v skutočnosti veľmi náročná na doladenie a obsluhu. Okrem popisu známych konfigurácií sa pokúsime ukázať, aké ďalšie funkcie - nie príliš často používané - sú v takýchto riešeniach dostupné, ako sú usporiadané rôzne implementácie klastrov. Okrem toho je často žiaduce, aby zákazník, ktorý vážne zvážil všetky výhody klastrového prístupu, mal stále na pamäti jeho nevýhody, a preto zvážil celú škálu možných riešení.

Čo ohrozuje aplikácie...

Podľa rôznych odhadov je 55 – 60 % aplikácií kritických pre podnikanie spoločnosti – to znamená, že absencia služieb poskytovaných týmito aplikáciami vážne ovplyvní finančný blahobyt spoločnosti. V tomto smere sa pojem bezbariérovosť stáva základným aspektom činnosti výpočtového strediska. Pozrime sa, odkiaľ pochádzajú hrozby pre dostupnosť aplikácií.

Zničenie údajov. Jedným z hlavných problémov je dostupnosť služby. Najjednoduchší spôsob ochrana – robiť časté „snímky“ údajov, aby ste sa mohli kedykoľvek vrátiť ku kompletnej kópii.

Porucha hardvéru. Výrobcovia hardvérových systémov (servery, diskové úložiská) vyrábajú riešenia s redundantnými komponentmi - procesorové dosky, systémové radiče, napájacie zdroje atď. V niektorých prípadoch však môže zlyhanie hardvéru viesť k nedostupnosti aplikácií.

Chyba v aplikácii. Chyba programátora v aplikácii, ktorá už bola otestovaná a zaradená do výroby sa môže v jednom prípade prejaviť v desiatkach, ba až stovkách tisíc, no ak k takémuto incidentu dôjde, vedie to k priamej strate zisku organizácie, keďže transakcia spracovanie sa zastaví a spôsob odstránenia chyby nie je zrejmý a vyžaduje si čas.

Ľudská chyba. Jednoduchý príklad: správca vykoná zmeny v nastavení konfiguračné súbory napríklad DNS. Keď testuje zmeny, služba DNS je spustená, ale tu je služba, ktorá používa DNS, napr. Email, začne pociťovať problémy, ktoré nie sú okamžite zistené.

Plánovaná údržba.Údržba systému – výmena komponentov, inštalácia servisných balíkov, reštartovanie – je hlavnou príčinou nedostupnosti. Gartner odhaduje, že 80 % času, keď je systém nedostupný, sú plánované odstávky.

Všeobecné problémy na výpočtovej platforme. Aj keď organizácia robí všetko preto, aby sa ochránila miestne problémy, to nezaručuje dostupnosť služby, ak je z nejakého dôvodu nedostupná celá stránka. Toto je potrebné vziať do úvahy aj pri plánovaní systému.

...a ako sa s tým vysporiadať

V závislosti od kritickosti úlohy je možné použiť nasledujúce mechanizmy na obnovenie zdravia výpočtového systému.

Zálohovanie dáta na pásku alebo disk. to základná úroveň dostupnosť – najjednoduchšia, najlacnejšia, ale aj najpomalšia.

lokálne zrkadlenie. Poskytuje dostupnosť údajov v reálnom čase, údaje sú chránené pred zničením.

Lokálne zhlukovanie. Po zorganizovaní ochrany údajov je ďalším krokom na zabezpečenie dostupnosti aplikácií lokálne klastrovanie, t. j. vytvorenie redundancie z hľadiska hardvéru aj softvéru.

vzdialená replikácia. Predpokladá oddelenie výpočtových miest za účelom vytvorenia kópie údajov v oddelených dátových centrách.

Vzdialené klastrovanie. Keďže je zabezpečená dostupnosť údajov na rôznych miestach, je tiež možné zachovať dostupnosť služby z rôznych lokalít organizovaním prístupu aplikácií k týmto údajom.

Nebudeme sa tu zaoberať popisom všetkých týchto metód, pretože každá položka sa môže stať témou samostatného článku. Myšlienka je jasná – čím viac redundancie zavedieme, tým vyššie budú náklady na riešenie, ale tým lepšie budú aplikácie chránené. Pre každú z vyššie uvedených metód existuje arzenál riešení od rôznych výrobcov, ale s typickou sadou funkcií. Pre projektanta riešenia je veľmi dôležité mať na pamäti všetky tieto technológie, pretože len ich kompetentná kombinácia povedie k vyčerpávajúcemu riešeniu zadania zadanej zákazníkom.

Podľa názoru autora je prístup Symantecu veľmi úspešný pre pochopenie stratégie obnovy služby (obr. 1). Sú tu dva kľúčové body – bod, v ktorom je systém obnovený (cieľ bodu obnovy, RPO) a čas potrebný na obnovenie služby (cieľ času obnovy, RTO).

Výber jedného alebo druhého nástroja závisí od špecifických požiadaviek, ktoré sa vzťahujú na kritickú aplikáciu alebo databázu.

Pre najkritickejšie systémy by RTO a RPO nemali presiahnuť 1 hodinu. Rezervovať kópiu poskytnúť bod obnovenia na dva alebo viac dní. Obnova pásky navyše nie je automatizovaná, správca si musí neustále pamätať, že všetko správne obnovil a spustil.

Navyše, ako už bolo spomenuté, pri plánovaní schémy dostupnosti jeden nástroj nestačí. Napríklad sotva má zmysel používať iba replikačný systém. Aj keď sa kritické údaje nachádzajú na vzdialenom mieste, aplikácie sa musia spustiť manuálne v príslušnom poradí. Teda replikácia bez automatický štart aplikácie možno považovať za formu drahého zálohovania.

Ak chcete poskytnúť RTO a RTS merané v minútach, t. j. úloha si vyžaduje minimalizáciu prestojov (plánovaných aj neplánovaných), potom jediným správnym riešením je klaster s vysokou dostupnosťou. V tomto článku sa uvažuje o takýchto systémoch.

Vzhľadom na to, že pojem „výpočtový klaster“ je už nejaký čas preťažovaný z dôvodu ich veľkej rôznorodosti, najskôr si povieme niečo o tom, čo sú to klastre.

Typy klastrov

Vo svojej najjednoduchšej forme je klaster systém počítačov, ktoré spolupracujú na spoločnom riešení problémov. Toto nie je model spracovania údajov klient/server, kde môže byť aplikácia logicky oddelená takým spôsobom, že klienti môžu posielať požiadavky na rôzne servery. Myšlienkou klastra je združovať výpočtové zdroje súvisiacich uzlov, aby sa vytvorili redundantné zdroje, ktoré poskytujú väčší zdieľaný výpočtový výkon, vysokú dostupnosť a škálovateľnosť. Klastre teda nespracúvajú len požiadavky klientov na servery, ale súčasne využívajú mnoho počítačov a prezentujú ich ako jednotný systém a tým poskytuje výrazne väčšie výpočtové možnosti.

Zhluk počítačov musí byť samoorganizujúci sa systém – práca vykonávaná na jednom z uzlov musí byť koordinovaná s prácou na ostatných uzloch. To vedie ku zložitosti konfiguračných vzťahov, ťažkej komunikácii medzi uzlami klastra a potrebe riešiť problém prístupu k dátam v spoločnom súborovom systéme. S prevádzkou potenciálne veľkého počtu počítačov ako jedného zdroja sú spojené aj prevádzkové problémy.

Klastre môžu existovať v rôznych formách. Najbežnejšími typmi klastrov sú vysokovýkonné výpočty (HPC) a vysoká dostupnosť (HA).

Vysokovýkonné výpočtové klastre využívajú paralelné výpočtové metódy s účasťou čo najväčšieho výkonu procesora na vyriešenie problému. Existuje mnoho príkladov takýchto riešení vo vedeckej výpočtovej technike, kde sa paralelne používa mnoho nízkonákladových procesorov Vysoké číslo operácií.

Témou tohto článku sú však systémy s vysokou dostupnosťou. Preto, keď už hovoríme o klastroch, budeme mať na mysli práve takéto systémy.

Pri budovaní vysokodostupných klastrov sa spravidla využíva redundancia na vytvorenie spoľahlivého prostredia, t.j. vytvára sa výpočtový systém, v ktorom výpadok jedného alebo viacerých komponentov (hardvéru, softvéru alebo sieťových zariadení) výrazne neovplyvní dostupnosť aplikácia alebo systém všeobecne.

V najjednoduchšom prípade ide o dva identicky nakonfigurované servery s prístupom do zdieľaného úložného systému (obr. 2). Počas normálnej prevádzky aplikačný softvér beží na jednom systéme, zatiaľ čo druhý systém čaká na spustenie aplikácií, keď prvý systém zlyhá. Keď sa zistí porucha, druhý systém prepne príslušné zdroje (systém súborov, sieťové adresy atď.). Tento proces sa bežne označuje ako núdzové prepnutie. Druhý systém úplne nahrádza neúspešný systém a používateľ nemusí vedieť, že jeho aplikácie bežia na rôznych fyzických strojoch. Toto je najbežnejšia dvojuzlová asymetrická konfigurácia, kde jeden server je aktívny, druhý pasívny, to znamená, že je v pohotovostnom stave v prípade zlyhania hlavného. V praxi táto schéma funguje vo väčšine spoločností.

Treba si však položiť otázku: aké prijateľné je ponechať si dodatočnú sadu vybavenia, ktorá je skutočne v zálohe a väčšinou sa nepoužíva? Problém s vyloženými zariadeniami sa rieši zmenou klastrovej schémy a alokácie zdrojov v nej.

Konfigurácie klastra

Okrem vyššie spomínanej dvojuzlovej asymetrickej klastrovej štruktúry existujú možnosti, že rôzni výrobcovia klastrového softvéru môžu mať rôzne názvy, no ich podstata je rovnaká.

Symetrický klaster

Symetrický klaster sa tiež vykonáva na dvoch uzloch, ale na každom z nich beží aktívna aplikácia (obr. 3). Clusterový softvér zabezpečuje správny automatický prechod aplikácie zo servera na server v prípade zlyhania jedného z uzlov. V tomto prípade je zaťaženie hardvéru efektívnejšie, ale ak dôjde k poruche, ukáže sa, že aplikácie celého systému bežia na jednom serveri, čo môže mať nežiaduce dôsledky z hľadiska výkonu. Okrem toho musíte zvážiť, či je možné spustiť viacero aplikácií na tom istom serveri.

Konfigurácia N+1

Táto konfigurácia už obsahuje viac ako dva uzly a medzi nimi je jeden vyhradený, redundantný (obr. 4). Inými slovami, pre každý N spustených serverov existuje jeden pohotovostný režim. V prípade poruchy sa aplikácia „presunie“ z problémového uzla do vyhradeného voľného uzla. V budúcnosti bude môcť správca klastra nahradiť zlyhaný uzol a označiť ho ako záložný.

Variant N+1 je menej flexibilná konfigurácia N na 1, kde pohotovostný uzol zostáva vždy rovnaký pre všetky pracovné uzly. V prípade výpadku aktívneho servera sa služba prepne do pohotovostného režimu a systém zostane bez zálohy až do aktivácie chybného uzla.

Zo všetkých konfigurácií klastra je N + 1 pravdepodobne najefektívnejšia z hľadiska zložitosti a účinnosti zariadenia. Tabuľka nižšie. 1 potvrdzuje tento odhad.

Konfigurácia N až N

Ide o najefektívnejšiu konfiguráciu z hľadiska využitia výpočtových zdrojov (obr. 5). Všetky servery v ňom fungujú, na každom bežia aplikácie, ktoré sú súčasťou klastrového systému. Ak dôjde k zlyhaniu na jednom z uzlov, aplikácie sa z neho presunú v súlade so stanovenými politikami na zostávajúce servery.

Pri navrhovaní takéhoto systému je potrebné brať do úvahy kompatibilitu aplikácií, ich pripojenia pri „presúvaní“ z uzla do uzla, záťaž servera, šírku pásma siete a mnohé ďalšie. Táto konfigurácia je najzložitejšia z hľadiska návrhu a prevádzky, ale poskytuje najväčšiu hodnotu pre váš hardvér pri použití klastrovej redundancie.

Posúdenie konfigurácií klastrov

V tabuľke. 1 sumarizuje to, čo bolo povedané vyššie o rôznych konfiguráciách klastrov. Hodnotenie sa udeľuje na štvorbodovej škále (4 - najvyššie skóre, 1 - najnižšie).

Z tabuľky. 1 je vidieť, že klasický asymetrický systém je konštrukčne a prevádzkovo najjednoduchší. A ak to môže zákazník prevádzkovať samostatne, potom by bolo správne preniesť zvyšok na externú údržbu.

Na záver rozhovoru o konfiguráciách by som rád povedal pár slov o kritériách, podľa ktorých môže jadro klastra automaticky vydať príkaz na „presun“ aplikácie z uzla do uzla. Drvivá väčšina administrátorov v konfiguračných súboroch definuje len jedno kritérium – nedostupnosť ktoréhokoľvek komponentu uzla, teda softvérovú a hardvérovú chybu.

Medzitým moderný klastrový softvér poskytuje schopnosť vyrovnávať záťaž. Ak zaťaženie jedného z uzlov dosiahne kritickú hodnotu, pri správne nakonfigurovanej politike sa aplikácia na ňom korektne vypne a spustí na inom uzle, kde to aktuálne zaťaženie umožňuje. Okrem toho môžu byť nástroje na riadenie záťaže servera statické – samotná aplikácia v konfiguračnom súbore klastra udáva, koľko zdrojov bude potrebovať – a dynamické, keď je nástroj na vyrovnávanie záťaže integrovaný s externým nástrojom (napríklad Precise), ktorý vypočíta aktuálne zaťaženie systému.

Teraz, aby sme pochopili, ako fungujú klastre v konkrétnych implementáciách, pozrime sa na hlavné komponenty akéhokoľvek systému vysokej dostupnosti.

Hlavné komponenty klastra

Ako každý komplexný komplex, aj klaster, bez ohľadu na konkrétnu implementáciu, pozostáva z hardvérových a softvérových komponentov.

Čo sa týka zariadenia, na ktorom je klaster zostavený, hlavným komponentom je medziuzlové prepojenie alebo interné klastrové prepojenie, ktoré zabezpečuje fyzické a logické prepojenie serverov. V praxi ide o internú ethernetovú sieť s duplicitnými pripojeniami. Jeho účelom je po prvé prenos paketov potvrdzujúcich integritu systému (tzv. srdcový tep) a po druhé, s určitým dizajnom alebo schémou, ktorá vznikla po výskyte poruchy, výmena informačnej prevádzky medzi uzlami určenými na prenos. vonku. Ostatné komponenty sú zrejmé: uzly s operačným systémom s klastrovým softvérom, diskové úložiská, ku ktorým majú klastrové uzly prístup. A napokon spoločná sieť, prostredníctvom ktorej klaster interaguje s vonkajším svetom.

Softvérové ​​komponenty poskytujú kontrolu nad prevádzkou klastrovej aplikácie. V prvom rade je to zdieľaný OS (nie nevyhnutne zdieľaná verzia). V prostredí tohto OS funguje jadro klastra – klastrový softvér. Tie aplikácie, ktoré sú klastrované, t.j. môžu migrovať z uzla do uzla, sú riadené – spúšťané, zastavované, testované – pomocou malých skriptov, takzvaných agentov. Pre väčšinu úloh existujú štandardní agenti, ale vo fáze návrhu je nevyhnutné skontrolovať maticu kompatibility, aby ste zistili, či existujú agenti pre konkrétne aplikácie.

Implementácie klastrov

Na softvérovom trhu existuje mnoho implementácií vyššie opísaných klastrových konfigurácií. Takmer všetci významní výrobcovia serverov a softvéru – napríklad Microsoft, HP, IBM, Sun, Symantec – ponúkajú svoje produkty v tejto oblasti. Microtest má skúsenosti s riešeniami Sun Cluster Server (SC) od Sun Microsystems (www.sun.com) a Veritas Cluster Server (VCS) od Symantec (www.symantec.com). Z pohľadu administrátora sú tieto produkty funkčne veľmi podobné – poskytujú rovnaké nastavenia a reakcie na udalosti. Z hľadiska ich vnútornej organizácie však ide o úplne odlišné produkty.

SC vyvinula spoločnosť Sun pre svoj vlastný operačný systém Solaris, a preto beží iba na tomto OS (SPARC aj x86). Výsledkom je, že počas inštalácie je SC hlboko integrovaný s OS a stáva sa jeho súčasťou, súčasťou jadra Solaris.

VCS je multiplatformový produkt, ktorý funguje takmer so všetkými v súčasnosti populárnymi operačnými systémami - AIX, HP-UX, Solaris, Windows, Linux a je doplnkom - aplikáciou, ktorá riadi činnosť iných aplikácií, ktoré podliehajú klastrovaniu. .

Pozrieme sa na internú implementáciu týchto dvoch systémov – SC a VCS. Ale ešte raz zdôrazňujeme, že napriek rozdielom v terminológii a úplne odlišnej vnútornej štruktúre sú hlavné komponenty oboch systémov, s ktorými administrátor interaguje, v podstate rovnaké.

Softvérové ​​komponenty servera Sun Cluster

Jadro SC (obrázok 6) je OS Solaris 10 (alebo 9) s prídavným shellom, ktorý poskytuje funkciu vysokej dostupnosti (jadro je zvýraznené zelenou farbou). Ďalej sú to globálne komponenty (svetlozelené), ktoré poskytujú svoje služby odvodené od jadra klastra. A nakoniec úplne hore - vlastné komponenty.

Rámec HA je komponent, ktorý rozširuje jadro Solaris o poskytovanie klastrových služieb. Rámcová úloha sa začína inicializáciou kódu, ktorý zavádza uzol do režimu klastra. Hlavnými úlohami rámca sú medziuzlová interakcia, riadenie stavu klastra a členstvo v ňom.

Komunikačný modul medzi uzlami prenáša medzi uzlami správy s tepom. to krátke správy, čo potvrdzuje odpoveď susedného uzla. Interakcia dát a aplikácií je tiež riadená rámcom HA ako súčasť medziuzlovej komunikácie. Okrem toho framework riadi integritu klastrovanej konfigurácie a v prípade potreby vykonáva úlohy obnovy a aktualizácie. Integrita je udržiavaná prostredníctvom zariadenia kvóra; v prípade potreby sa vykoná rekonfigurácia. Zariadenie na kvórum je prídavný mechanizmus kontrola integrity uzlov klastra prostredníctvom malých častí zdieľaného súborového systému. AT Najnovšia verzia Cluster SC 3.2 bolo možné priradiť kvórum mimo klastrového systému, t.j. dodatočný server na platforme Solaris, dostupné cez TCP/IP. Zlyhané členy klastra sa vyberú z konfigurácie. Prvok, ktorý sa opäť uvedie do prevádzky, je automaticky zahrnutý do konfigurácie.

Funkcie globálnych komponentov sú odvodené od rámca HA. Tie obsahujú:

  • globálne zariadenia so spoločným menným priestorom klastrových zariadení;
  • globálna súborová služba, ktorá organizuje prístup ku každému súboru v systéme pre každý uzol, ako keby bol v jeho vlastnom lokálnom súborovom systéme;
  • globálna sieťová služba, ktorá poskytuje vyvažovanie záťaže a možnosť prístupu k klastrovým službám prostredníctvom jedinej IP adresy.

Vlastné komponenty spravujú prostredie klastra zapnuté špičková úroveň aplikačné rozhranie. Administráciu je možné vykonávať prostredníctvom GUI a cez príkazový riadok. Moduly, ktoré monitorujú chod aplikácií, spúšťajú a zastavujú ich, sa nazývajú agenti. Existuje knižnica hotových agentov pre štandardné aplikácie; Tento zoznam rastie s každým vydaním.

Softvérové ​​komponenty Veritas Cluster Server

Schematicky je dvojuzlový klaster VCS znázornený na obr. 7. Medziuzlová komunikácia vo VCS je založená na dvoch protokoloch – LLT a GAB. VCS používa internú sieť na udržanie integrity klastra.

LLT (Low Latency Transport) je protokol vyvinutý spoločnosťou Veritas, ktorý beží cez Ethernet ako vysoko efektívna náhrada za IP stack a používajú ho uzly vo všetkých interných komunikáciách. Požadovaná redundancia v medziuzlových komunikáciách vyžaduje aspoň dve úplne nezávislé interné siete. Je to potrebné, aby VSC dokázalo rozlíšiť medzi zlyhaním siete a systémom.

Protokol LLT vykonáva dve hlavné funkcie: distribúciu prevádzky a odosielanie srdcového tepu. LLT distribuuje (vyvažuje) medziuzlovú komunikáciu medzi všetky dostupné interné linky. Táto schéma zaisťuje, že všetka interná prevádzka je náhodne rozdelená medzi vnútorné siete (môže ich byť maximálne osem), čo zlepšuje výkon a odolnosť voči chybám. V prípade výpadku jedného odkazu budú dáta presmerované na zvyšné ostatné. Okrem toho je LLT zodpovedný za odosielanie prenosu srdcového tepu cez sieť, ktorú používa GAB.

GAB (Group Membership Services/Atomic Broadcast) je druhý protokol používaný vo VCS na internú komunikáciu. Rovnako ako LLT je zodpovedný za dve úlohy. Prvým je členstvo uzlov v klastri. GAB prijíma srdcový tep z každého uzla prostredníctvom LLT. Ak systém dlhší čas nedostane odpoveď z uzla, potom označí svoj stav ako DOWN - nefunkčný.

Druhou funkciou GAB je poskytovať spoľahlivú komunikáciu medzi klastrami. GAB poskytuje garantované doručovanie vysielania a správ typu point-to-point medzi všetkými uzlami.

Riadiacim komponentom VCS je VCS engine alebo HAD (High Availability daemon), ktorý beží na každom systéme. Je zodpovedná za:

  • vytváranie pracovných konfigurácií získaných z konfiguračných súborov;
  • distribúcia informácií medzi novými uzlami spájajúcimi sa s klastrom;
  • spracovanie vstupov od správcu (operátora) klastra;
  • vykonávanie bežných činností v prípade zlyhania.

HAD používa agentov na monitorovanie a správu zdrojov. Informácie o stave zdrojov sa zhromažďujú od agentov na lokálnych systémov a prenáša sa na všetkých členov klastra. HAD každého uzla prijíma informácie z iných uzlov a aktualizuje svoj vlastný obraz o celom systéme. HAD funguje ako replikovaný stavový stroj RSM, t.j. jadro na každom uzle má obraz stavu prostriedkov, ktorý je plne synchronizovaný so všetkými ostatnými uzlami.

Klaster VSC je riadený buď cez konzolu Java alebo cez web.

Čo je lepšie

Otázku, kedy je lepšie použiť ktorý klaster, sme už rozobrali vyššie. Ešte raz zdôrazňujeme, že produkt SC bol napísaný spoločnosťou Sun pre vlastný operačný systém a je s ním hlboko integrovaný. VCS je multiplatformový produkt, a preto je flexibilnejší. V tabuľke. 2 porovnáva niektoré možnosti týchto dvoch riešení.

Na záver by som chcel uviesť ešte jeden argument v prospech používania SC v prostredí Solaris. S využitím hardvéru aj softvéru od jediného výrobcu – Sun Microsystems, zákazník získa službu „single window“ pre celé riešenie. Napriek tomu, že predajcovia v súčasnosti vytvárajú spoločné kompetenčné centrá, čas na vysielanie požiadaviek medzi výrobcami softvéru a hardvéru zníži rýchlosť reakcie na incident, čo nie vždy vyhovuje používateľovi systému.

Územne distribuovaný klaster

Pozreli sme sa na to, ako sa vytvára a funguje klaster s vysokou dostupnosťou v rámci jednej lokality. Takáto architektúra môže chrániť iba pred lokálnymi problémami v rámci jedného uzla a s ním spojených údajov. V prípade problémov zasahujúcich celú lokalitu, či už technických, prírodných alebo iných, bude celý systém neprístupný. V dnešnej dobe vzniká čoraz viac úloh, ktorých kritickosť si vyžaduje zabezpečenie migrácie služieb nielen v rámci lokality, ale aj medzi geograficky rozptýlenými dátovými centrami. Pri navrhovaní takýchto riešení je potrebné vziať do úvahy nové faktory – vzdialenosť medzi lokalitami, šírku pásma kanála atď. Ktorá replikácia by mala byť preferovaná – synchrónna alebo asynchrónna, znamená hostiteľ alebo pole, aké protokoly by sa mali použiť? Úspech projektu môže závisieť od riešenia týchto problémov.

Replikácia dát z hlavného miesta na miesto zálohy sa najčastejšie vykonáva pomocou jedného z obľúbených balíkov: Veritas Volume Replicator, EMC SRDF, Hitachi TrueCopy, Sun StorageTek Availability Suite.

V prípade zlyhania hardvéru alebo problému s aplikáciou alebo databázou sa klastrový softvér najskôr pokúsi presunúť aplikačnú službu do iného uzla na hlavnej lokalite. Ak sa primárna lokalita z nejakého dôvodu stane nedostupnou pre vonkajší svet, všetky služby vrátane DNS migrujú na záložnú lokalitu, kde sú už dáta kvôli replikácii prítomné. Pre používateľov je teda služba obnovená.

Nevýhodou tohto prístupu sú obrovské náklady na nasadenie ďalšej „horúcej“ lokality s vybavením a sieťovou infraštruktúrou. Výhoda úplnej ochrany však môže tieto dodatočné náklady prevážiť. Ak centrálny uzol nie je schopný poskytovať služby po dlhú dobu, môže to viesť k veľkým stratám a dokonca k smrti podniku.

Test systému pred katastrofou

Podľa štúdie spoločnosti Symantec iba 28 % spoločností testuje plán obnovy po havárii. Žiaľ, väčšina zákazníkov, s ktorými sa mal autor o tejto problematike rozprávať, takýto plán vôbec nemala. Dôvody, prečo sa testovanie nerobí, sú nedostatok času pre administrátorov, neochota robiť to na „živom“ systéme a chýbajúce testovacie zariadenia.

Na testovanie môžete použiť simulátor, ktorý je súčasťou balenia VSC. Používatelia, ktorí sa rozhodnú používať VCS ako svoj klastrový softvér, si môžu otestovať svoje nastavenia na Cluster Server Simulator, ktorý im umožňuje otestovať stratégiu migrácie aplikácií medzi uzlami na PC.

Záver

Úloha poskytovať službu s vysokou úrovňou dostupnosti je veľmi nákladná tak z hľadiska nákladov na hardvér a softvér, ako aj z hľadiska nákladov na ďalšiu údržbu a technickú podporu systému. Napriek zjavnej jednoduchosti teórie a jednoduchej inštalácii sa klastrový systém pri hĺbkovom štúdiu ukazuje ako zložité a drahé riešenie. Technická stránka systému bola v tomto článku uvažovaná len všeobecne, pričom o určitých otázkach klastra, napríklad určovaní členstva v ňom, by sa dal napísať samostatný článok.

Klastre sa zvyčajne stavajú pre kritické obchodné úlohy, kde jednotka výpadku vedie k veľkým stratám, napríklad pri fakturačných systémoch. Dalo by sa odporučiť nasledovné pravidlo, ktoré určuje, kde je rozumné používať klastre: tam, kde by prestoj služby nemal presiahnuť jeden a pol hodiny, je klaster vhodným riešením. V iných prípadoch môžete zvážiť lacnejšie možnosti.

Cluster (skupina počítačov)

Klastre na vyrovnávanie záťaže

Princíp ich fungovania je založený na distribúcii požiadaviek cez jeden alebo viacero vstupných uzlov, ktoré ich presmerujú na spracovanie do iných výpočtových uzlov. Prvotným cieľom takéhoto klastra je výkon, často však využívajú aj metódy zvyšujúce spoľahlivosť. Podobné návrhy sa nazývajú serverové farmy. Softvér (softvér) môže byť buď komerčný (OpenVMS, MOSIX, Platform LSF HPC, Solaris Cluster, Moab Cluster Suite, Maui Cluster Scheduler) alebo bezplatný (OpenMosix, Sun Grid Engine, Linux Virtual Server).

Výpočtové klastre

Klastre sa používajú na výpočtové účely, najmä vo vedeckom výskume. Pre výpočtové klastre sú významnými ukazovateľmi vysoký výkon procesora pri operáciách na číslach s pohyblivou rádovou čiarkou (flops) a nízka latencia zjednocujúcej siete a menej významné - rýchlosť I/O operácií, ktorá je dôležitejšia pre databázy a webové služby. Výpočtové klastre umožňujú skrátiť čas výpočtu v porovnaní s jedným počítačom rozdelením úlohy do paralelne vykonávaných vetiev, ktoré si vymieňajú dáta cez prepojovaciu sieť. Jednou z typických konfigurácií je sada počítačov zostavených z verejne dostupných komponentov, na ktorých beží Linux a prepojených ethernetovou sieťou, Myrinet, InfiniBand alebo inými relatívne lacnými sieťami. Takýto systém sa bežne označuje ako Beowulfov klaster. Vysokovýkonné klastre sú špeciálne rozlíšené (označené anglickou skratkou HPC klaster - Vysokovýkonný výpočtový klaster). Zoznam najvýkonnejších vysokovýkonných počítačov (môže byť označovaný aj anglickou skratkou HPC) nájdete vo svetovom rebríčku TOP500. V Rusku existuje hodnotenie najvýkonnejších počítačov v SNŠ.

Distribuované počítačové systémy (grid)

Takéto systémy sa zvyčajne nepovažujú za klastre, ale ich princípy sú do značnej miery podobné klastrovej technológii. Nazývajú sa tiež mriežkové systémy. Hlavným rozdielom je nízka dostupnosť každého uzla, teda nemožnosť zaručiť jeho fungovanie v danom časovom okamihu (uzly sa pripájajú a odpájajú počas prevádzky), takže úloha musí byť rozdelená na množstvo nezávislých procesov. Takýto systém na rozdiel od klastrov nevyzerá ako jeden počítač, ale slúži ako zjednodušený prostriedok na distribúciu výpočtov. Nestabilita konfigurácie je v tomto prípade kompenzovaná veľkým počtom uzlov.

Klaster serverov organizovaný programovo

Klastrové systémy zaujímajú dôstojné miesto v zozname najrýchlejších, pričom v cene výrazne prevyšujú superpočítače. Od júla 2008 je na 7. mieste v hodnotení TOP500 klaster SGI Altix ICE 8200 (Chippewa Falls, Wisconsin, USA).

Relatívne lacnou alternatívou superpočítačov sú klastre založené na koncepte Beowulf, ktoré sú postavené z bežných lacných počítačov založených na slobodnom softvéri. Jeden z praktické príklady takýmto systémom je Stone Soupercomputer (Oak Ridge, Tennessee, USA).

Najväčší súkromne vlastnený klaster (1000 procesorov) postavil John Koza.

Príbeh

História vzniku klastrov je neoddeliteľne spojená s raným vývojom v tejto oblasti počítačové siete. Jedným z dôvodov vzniku vysokorýchlostnej komunikácie medzi počítačmi bola nádej na spoločné využívanie výpočtových zdrojov. Začiatkom 70. rokov 20. storočia Návrhársky tím TCP/IP a laboratórium Xerox PARC stanovili štandardy pre sieťovanie. Objavil sa aj operačný systém Hydra ("Hydra") pre počítače vyrábané spoločnosťou DEC Na tomto základe vytvorený klaster nazval C.mpp (Pittsburgh, Pennsylvania, USA). Avšak až asi pred rokom boli vytvorené mechanizmy umožňujúce jednoduché zdieľanie úloh a súborov cez sieť, väčšinou vývoj v SunOS (operačný systém založený na BSD od Sun Microsystems).

Prvým komerčným klastrovým projektom bol ARCNet, vytvorený Datapointom v meste Nestal sa rentabilným, a preto sa výstavba klastrov rozvinula až v roku, kedy DEC postavil svoj VAXcluster založený na operačný systém VAX/VMS. ARCNet a VAXcluster boli navrhnuté nielen na spoločné výpočty, ale aj na zdieľanie súborového systému a periférií s ohľadom na zachovanie integrity a jednoznačnosti dát. VAXCluster (teraz nazývaný VMSCluster) je integrálnou súčasťou operačného systému OpenVMS využívajúceho procesory Alpha a Itanium.

Dva ďalšie uznávané klastrové produkty zahŕňajú Tandem Hymalaya (trieda HA) a IBM S/390 Parallel Sysplex (1994).

Za históriu vytvárania klastrov z bežných osobných počítačov vďačí veľa projektu Parallel Virtual Machine. V roku 2009 tento virtuálny superpočítačový softvér otvoril možnosť okamžitého vytvárania klastrov. Výsledkom bolo, že celkový výkon všetkých vtedy vytvorených lacných klastrov predstihol z hľadiska výkonu súčet kapacít „serióznych“ komerčných systémov.

Vytváranie klastrov na báze lacných osobných počítačov prepojených dátovou prenosovou sieťou pokračovalo v meste Americkou agentúrou pre letectvo a vesmír (NASA), následne v meste boli vyvinuté klastre Beowulf, špeciálne navrhnuté na základe tohto princípu. Úspech takýchto systémov podnietil rozvoj gridových sietí, ktoré existujú už od vzniku UNIXu.

softvér

Široko používaným nástrojom na organizovanie interakcie medzi servermi je knižnica MPI, ktorá podporuje jazyky​​a Fortran. Používa sa napríklad v programe simulácie počasia MM5.

Operačný systém Solaris poskytuje softvér Solaris Cluster, ktorý sa používa na zabezpečenie vysokej dostupnosti a núdzového prepnutia pre servery so systémom Solaris. Existuje implementácia open source pre OpenSolaris tzv OpenSolaris HA Cluster.

Medzi používateľmi GNU/Linuxu je populárnych niekoľko programov:

  • distcc , MPICH a ďalšie sú špecializované nástroje na paralelizáciu práce programov. distcc umožňuje paralelnú kompiláciu do GNU Compiler Collection.
  • Linux Virtual Server, Linux-HA - Node softvér na distribúciu požiadaviek medzi výpočtovými servermi.
  • MOSIX , openMosix , Kerrighed, OpenSSI - plnohodnotné klastrové prostredia zabudované do jadra, ktoré automaticky rozdeľujú úlohy medzi homogénne uzly. OpenSSI, openMosix a Kerrighed vytvárajú medzi uzlami.

Plánuje sa, že klastrové mechanizmy budú zabudované do jadra DragonFly BSD, ktoré sa rozdelilo v roku 2003 z FreeBSD 4.8. V budúcnosti aj premena na jednotné prostredie operačného systému.

Spoločnosť Microsoft vydáva klaster HA pre operačný systém Windows. Existuje názor, že bol vytvorený na základe technológie Digital Equipment Corporation, podporuje až 16 (od roku 2010) uzlov v klastri, ako aj prevádzku v SAN (Storage Area Network). Na podporu distribuovaných aplikácií sa používa sada API, sú tu prázdne miesta pre prácu s programami, ktoré nezahŕňajú prácu v klastri.

Windows Compute Cluster Server 2003 (CCS), vydaný v júni 2006, je určený pre špičkové aplikácie, ktoré vyžadujú klastrové výpočty. Edícia je navrhnutá tak, aby bola nasadená na viacerých počítačoch, ktoré sú klastrované na dosiahnutie superpočítačového výkonu. Každý klaster na Windows Compute Cluster Server pozostáva z jedného alebo viacerých hlavných počítačov, ktoré distribuujú úlohy, a niekoľkých podriadených počítačov, ktoré vykonávajú hlavnú prácu. V novembri 2008 bol predstavený Windows HPC Server 2008, ktorý nahradil Windows Compute Cluster Server 2003.

Vývoj klastrových systémov (CS) v Rusku

Klaster je modulárny multiprocesorový systém vytvorený na báze štandardných výpočtových uzlov prepojených vysokorýchlostným komunikačným médiom. Teraz sú slová „klaster“ a „superpočítač“ do značnej miery synonymá, no predtým, ako sa to dalo s istotou povedať, hardvér prešiel dlhým evolučným cyklom. Počas prvých 30 rokov od nástupu počítačov až do polovice 80. rokov boli „superpočítačové“ technológie chápané výlučne ako výroba špecializovaných, najmä výkonných procesorov. Vzhľad jednočipového mikroprocesora však prakticky zmazal rozdiel medzi „masovými“ a „obzvlášť výkonnými“ procesormi a od tohto momentu bolo jediným spôsobom, ako vytvoriť superpočítač, kombinovať procesory na paralelné riešenie jedného problému. Aleksey Latsis, jeden z tvorcov ruského superpočítača MVS-1000M, ho vo svojej knihe „Ako zostaviť a používať superpočítač“ nazýva „prvou superpočítačovou revolúciou“.

Približne do polovice 90. rokov 20. storočia. Hlavný smer vo vývoji superpočítačových technológií bol spojený s konštrukciou špecializovaných multiprocesorových systémov z hromadných mikroobvodov. Jeden z novovznikajúcich prístupov - SMP (Symmetric Multi Processing), znamenal integráciu mnohých procesorov pomocou spoločnej pamäte, čo značne uľahčilo programovanie, no kládlo vysoké nároky na samotnú pamäť. Bolo takmer nemožné udržať výkon takýchto systémov s nárastom počtu uzlov na desiatky. Navyše sa tento prístup ukázal ako najdrahší v hardvérovej implementácii. O rádovo lacnejšia a takmer nekonečne škálovateľná bola metóda MPP (Massively Parallel Processing), pri ktorej boli nezávislé špecializované výpočtové moduly kombinované špecializovanými komunikačnými kanálmi, pričom oba boli vytvorené pre konkrétny superpočítač a neboli použité na žiadne iné účely.

Myšlienka vytvorenia takzvaného klastra pracovných staníc bola vlastne vývojom metódy MPP, pretože logicky sa systém MPP príliš nelíšil od bežnej lokálnej siete. Lokálna sieťštandardné osobné počítače s príslušným softvérom používaným ako multiprocesorový superpočítač a stal sa predchodcom moderného klastra. Táto myšlienka sa ďalej rozvíjala v polovici 90. rokov, kedy vďaka všadeprítomnému vybaveniu PC vysokorýchlostnou PCI zbernicou a vzniku lacných, ale rýchla sieť. Fast Ethernet klastre začali dobiehať špecializované MPP systémy z hľadiska komunikačných možností. To znamenalo, že zo štandardných sériových počítačov pomocou sériových bolo možné vytvoriť plnohodnotný systém MPP komunikačných technológií, pričom takýto systém bol lacnejší v priemere o dva rády.

Tu sú najznámejšie superpočítače s klastrovou architektúrou „prvej generácie“: Beowulf (1994, NASA Goddard Space Flight Center) – 16-procesorový klaster založený na procesoroch Intel 486DX4/100 MHz; Avalon (1998, Los Alamos National Laboratory) - Linuxový klaster založený na procesoroch Alpha 21164A/533 MHz. Spočiatku Avalon pozostával zo 68 procesorov, potom sa ich počet zvýšil na 140; jeho výkon v teste LINPACK 48,6 GFlops* ho zaradil na 113. miesto v 12. vydaní rebríčka Top500 najvýkonnejších počítačov na svete, vedľa 152-procesorového systému IBM RS/6000 SP SMP. Prvým domácim systémom zahrnutým do TorbOO bol klaster MVS-1000M, vyrobený Výskumným ústavom KVANT a Ústavom aplikovanej matematiky Ruskej akadémie vied. Pozostával z 384 uzlov založených na procesoroch Alpha 21164 od DEC-Compaq.

* Flops (operácie s pohyblivou rádovou čiarkou za sekundu) – počet operácií s pohyblivou rádovou čiarkou za sekundu, meradlo výkonu superpočítača. GFlops (gigaflops) - miliarda operácií s pohyblivou rádovou čiarkou za sekundu; TFlops (teraflops) – bilión operácií s pohyblivou rádovou čiarkou za sekundu. Reálny výkon najvýkonnejšieho superpočítača súčasnosti presahuje 136 TFlops; len pred rokom to bolo 35 TFlops.

Rozlišujte medzi špičkovým a skutočným výkonom superpočítačov. Špičkový výkon viacprocesorového systému (klaster, SMP systém a pod.) je teoretická hodnota, ktorá je v praxi nedosiahnuteľná. Získame ho vynásobením špičkového výkonu procesora počtom procesorov v systéme. Špičkový výkon CPU sa vo všeobecnosti získa vynásobením jeho rýchlosti hodín maximálnym počtom operácií vykonaných za cyklus hodín. Reálny výkon klastra je výkon získaný pri riešení skutočného problému (akademického alebo priemyselného). Napríklad systémy v hodnotení Top500 sú zoradené podľa výsledkov testu LINPACK, skutočného akademického problému na riešenie sústavy lineárnych rovníc.

Nový silný impulz pre rozvoj klastrových technológií, popri vzniku pokročilejších komunikačných sietí, priniesol rýchly nárast výkonu novo vydaných masových procesorov, vďaka čomu boli vysokovýkonné riešenia dostupnejšie ako kedykoľvek predtým. Napríklad SKIF K-500, druhý domáci klaster zahrnutý do TorbOO, bol postavený na základe 128 procesory Intel Systémová sieť Xeon a SCI. Tento klaster, postavený na jeseň roku 2003 pre rusko-bieloruský štátny superpočítačový program SKIF, obsadil 407. miesto v hodnotení so skutočným výkonom 423,6 GFlops. Druhý „top“ klaster štátneho programu „SKIF K-1000“ založený na 576 procesory AMD Systémová sieť Opteron a InfiniBand sa objavila v októbri 2004 a vstúpila do prvej stovky Top500 so skutočným výkonom 2 032 TFlops. Oba klastre SKIF inštalované v Bielorusku postavila spoločnosť T-Platforms za účasti Ústavu informačných systémov Ruskej akadémie vied a bieloruských partnerov a využívajú ruské superpočítačové technológie. Najvýkonnejším klastrom v Rusku je momentálne MVS 15000BM s reálnym výkonom viac ako 5,3 Tflops, je na 56. mieste v Top500 a je inštalovaný v medzirezortnom superpočítačovom centre (MSC RAS). Klaster je zostavený z výpočtových uzlov IBM založených na procesoroch PowerPC a systémovej sieti Myrinet.

Rýchly rozvoj klastrových technológií v posledných rokoch je jasne viditeľný z analýzy zoznamu Top500: od roku 2000 do roku 2004 sa podiel klastrov v zozname zvýšil z 2,2 % na 60,8 %. Ak v roku 2000 boli medzi 40 najvýkonnejšími inštaláciami iba dva klastre (najvýkonnejšie - 31. miesto), tak do roku 2004 ich počet medzi prvými 40 strojmi bol 24). Zároveň podľa najnovšej verzie Top500 viac ako 71,5 % procesorov používaných na stavbu superpočítačov tvoria sériovo vyrábané procesory. od spoločnosti Intel a AMD.

Klastrové technológie sa využívajú aj v najnovšom vývoji superpočítačov od popredných výrobcov: napríklad najvýkonnejší superpočítač IBM BlueGene/L súčasnosti s výkonom viac ako 136 TFlops využíva mnohé prvky klastrovej architektúry.

Oblasť použitia klastrových systémov teraz nie je užšia ako superpočítače s inou architektúrou: nemenej úspešne zvládajú úlohu simulácie rôznych procesov a javov. Superpočítačové modelovanie môže výrazne znížiť náklady a urýchliť uvedenie nových produktov na trh, ako aj zlepšiť ich kvalitu. Napríklad namiesto toho, aby ste stavali drahé testovacie modely nových áut a potom ich rozbíjali o stenu na vykonávanie technických výpočtov, môžete všetko vypočítať rýchlejšie a presnejšie počítačové modely. Vďaka tomu sa mnohým západným automobilovým koncernom podarilo skrátiť čas vývoja nového modelu auta päťkrát – z 10 na 2 roky. Počítačové spracovanie geofyzikálnych údajov vám umožňuje vytvárať veľmi podrobné modely ropných a plynových polí, čo poskytuje efektívnejší, bezpečnejší a lacnejší rozvoj vrtov.

Bol to vývoj klastrových technológií, ktoré sprístupnili vysokovýkonné výpočtové systémy široko a umožnili širokému spektru podnikov využívať ich. Takto sú rozdelené oblasti použitia 500 najvýkonnejších počítačov sveta: 44,3 % - baníctvo, elektronika, automobilový priemysel, letectvo a ďalšie odvetvia ťažkého priemyslu a strojárstva, o niečo viac ako 20 % - veda a vzdelávanie, superpočítače stredísk. Viac ako 18 % pripadá na výskum počasia a klímy, 7 % – jadrové, vesmírne, energetické a vojenské vládne programy, 3,5 % – finančné spoločnosti a banky. Okrem toho sú v zozname spoločnosti a organizácie zaoberajúce sa medicínou a vývojom liekov, počítačovou grafikou, dopravou, obchodom, výrobou potravín, poradenstvom a verejnou správou.

Pokiaľ ide o používanie superpočítačov v Rusku, aktuálne hodnotenie top50 superpočítačov CIS, ktoré bolo prvýkrát zverejnené v decembri 2004, zahŕňa iba tri triedy používateľov: vedecké ústavy a univerzity, podniky pôsobiace v ťažkom a ropnom priemysle, ako aj finančné inštitúcie.

V priemere sú domáce superpočítače výkonovo stále ďaleko za západnými: stroje používané na vedecký výskum sú 15-krát, výpočtové zdroje finančných spoločností 10-krát, priemyselné superpočítače 9-krát. Druhé vydanie zoznamu Top50, uverejnené v apríli 2005, však dokazuje rýchly rozvoj tohto odvetvia. Počet systémov pôsobiacich v priemyselnom sektore sa tak zvýšil z 2 na 16 % a ich priemerný výkon okamžite vzrástol o 135 %. Zvýšil sa aj počet superpočítačov finančných spoločností a bánk z 2 na 18 %. Podiel superpočítačov využívaných na vedecký výskum klesol z 96 % na 66 % a ich priemerný výkon vzrástol o 70 %. Vo všeobecnosti druhé vydanie domáceho hodnotenia superpočítačov dokazuje výrazný nárast podielu systémov na komerčné využitie. Najväčší počet domácich superpočítačov dodalo IBM (26 %), no ruskí výrobcovia sú za ním len o málo menej.