Počítačový cluster

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Příklad počítačového clusteru. Load balancing cluster s dvěma servery a 4 uživatelské stanice Beowulf-cluster Počítačový cluster (anglicky computer cluster) je seskupení volně vázaných počítačů, které spolu úzce spolupracují, takže se navenek mohou tvářit jako jeden počítač. Obvykle jsou propojeny počítačovou sítí. Clustery jsou obvykle nasazovány pro zvýšení výpočetní rychlosti nebo spolehlivosti s větší efektivitou než by mohl poskytnout jediný počítač, přičemž jsou levnější než jediný počítač srovnatelné rychlosti nebo spolehlivosti.

Clustery slouží k paralelním výpočtům složitých početních úloh (např. faktorizace na prvočísla, simulace vývoje počasí, analýza velkého množství statistických dat, atp. +more), nebo se používají pro zajištění vysoké dostupnosti určité služby (např. databáze, SMS centra, apod. ). Používají se buď specializované víceprocesorové stroje propojené sítí, nebo obyčejné počítače třídy PC. Úlohy, určené pro urychlení za pomoci výpočetního clusteru, musí být speciálně navrženy.

...
...
...
...
...
+more images (2)

Typy clusterů

Clustery můžeme rozdělit na několik typů. Ve skutečnosti se jednotlivé funkce clusterů prolínají, aby bylo dosaženo optimálních parametrů.

Výpočetní cluster

Výpočetní cluster ( zkratka HPC) slouží k zvýšení výpočetního výkonu pomocí více počítačů, které na výpočtu spolupracují. Obvykle jsou použity počítače střední cenové hladiny propojené pomocí vysokorychlostní počítačové sítě. +more Tímto způsobem vznikne vysoce výkonný celek, který je mnohonásobně levnější, než jeden vysoce výkonný počítač.

Cluster s vysokou dostupností

Cluster s vysokou dostupností zajišťuje pomocí několika počítačů nepřetržité poskytování nějaké služby i při výpadku počítače z důvodu hardwarové závady nebo plánované údržby. Službu poskytuje jeden počítač, který je v případě výpadku automaticky zastoupen jiným počítačem.

Cluster s rozložením zátěže

Cluster s rozložením zátěže snižuje možnou míru zátěže tím, že službu poskytuje několik počítačů, které mají stejný obsah (služba je poskytována paralelně). Stejný obsah je zajištěn replikací obsahu mezi všechny propojené počítače nebo existencí specializovaného centrálního úložiště.

Úložný cluster

Úložný cluster zprostředkovává přístup k diskové kapacitě, která je rozložena mezi více počítačů z důvodu dosažení vyššího toku dat (paralelizace toku dat) nebo pro zajištění vyšší spolehlivosti pro tok dat. K zajištění služby jsou používány speciální souborové systémy, které jsou schopny zajistit rozložení zátěže, redundanci dat, pokrytí výpadků jednotlivých uzlů, distribuovaný mechanismus zamykání souborů a další doprovodné služby.

Gridový cluster

Klasický cluster je tvořen počítači, které nemají jiný úkol, než poskytovat svůj výpočetní výkon ve prospěch clusteru. Gridový cluster je složen z nezávislých počítačů, které jsou typicky určeny pro jinou činnost (například desktop, server) a poskytování výpočetního výkonu pro využití v clusteru je jejich doplňkový úkol (i když z hlediska využití výpočetního výkonu může být situace obrácená). +more Jednotlivé počítače gridového clusteru jsou proto z principu velmi různorodé (tzv. nehomogenní cluster) a vzájemná součinnost je zajištěna na úrovni aplikačního software, což umožňuje využít i různých platforem (hardwarových i softwarových). Navíc nemusí být jednotlivé počítače sdružené v gridovém clusteru umístěny pohromadě, ale mohou využívat pro vzájemnou komunikaci síť LAN, WAN nebo dokonce celý Internet.

Serverový cluster

Serverový cluster je vytvářen několika servery, které mezi sebou úzce spolupracují (jsou seskupeny). Lze vytvořit i serverový cluster, který je kombinací výše uvedených typů. +more Toto seskupení má přínos především v oblasti virtualizací.

Například u virtualizační platformy VMware lze za předpokladu spolupráce několika hypervizorů (ESXi) dosáhnout současně High availability i Load ballancing clusteru. V případě, je-li nějaký z hypervizorů (serverů) vytížen, jsou některé z virtuálních strojů přesunuty (přemigrovány) na hypervizor (server), který má nejmenší vytížení (utilizaci). +more Pakliže jeden z hypervizorů (serverů) selže, jednotlivé virtuální stroje jsou spouštěny na dalších funkčních hypervizorech (serverech) v daném clusteru.

Charakteristika

NEC cluster Během 70. +more let, kdy se počítačové clustery objevily, došlo k odlišení od současně vznikajících superpočítačů.

Paměť

Počítačové clustery (tzv. multipočítače) sdílenou operační paměť nepoužívají, protože každý počítač zapojený v clusteru disponuje vlastní pamětí, která je jeho procesoru přímo dostupná. +more Tím se cluster odlišuje od superpočítačů, u nichž všechny procesory používají společnou operační paměť (tzv. multiprocesory).

Systémy souborů

Využití clusterového (seskupeného) systému souborů je základem moderních počítačových clusterů. Příkladem jsou GFS, IBM General Parallel File System, Cluster Shared Volumes od Microsoftu, Oracle Cluster File System a další.

MPI

Specifikace MPI (Message Passing Interface) vznikla na počátku 90. let po diskuzi mezi 40 organizacemi. +more Její vývoj byl podporován organizací ARPA a Národní vědeckou nadací (National Science Foundation). Specifikace MPI čerpala různé vlastnosti dostupné v komerčních systémech tehdejší doby a byly podle ní vytvořeny různé implementace (například MPICH nebo OpenMPI). Pro komunikaci používá TCP/IP a unixové sokety. MPI je k dispozici v různých programovacích jazycích, jako je jazyk C, Fortran, Python a další. Hlavním rozdílem mezi MPI a PVM je v tom, že zatímco MPI je pouze specifikace, tak PVM je konkrétní implementace.

PVM

PVM byl vyvinut v Národní laboratoři Oak Ridge kolem roku 1989. PVM musí být nainstalován přímo na každém uzlu a poskytuje soubor softwarových knihoven, které zobrazují uzel jako „paralelní virtuální zařízení“. +more PVM poskytuje prostředí pro předávání zpráv, správu úkolů a zdrojů a chybová hlášení. PVM může být využito programy napsanými v programovacích jazycích C, C++, Fortran atd.

Správa clusterů

Jedním z problémů v použití počítačových clusterů je cena jejich administrace, které v určitých případech může být vysoká jako administrace N nezávislých zařízení, pokud má cluster N uzlů. V některých případech toto dává výhodu architekturám se sdílenou pamětí s menšími náklady.

Úkol plánování

Pokud víceuživatelský cluster potřebuje přístup k velkým objemům dat, je nutné pro plánování úloh využít např. programovací model MapReduce vytvořený Googlem v roce 2004 nebo jiné algoritmy (např. +more Apache Hadoop).

Správa chyb v uzlech

Když uzel v clusteru selže, strategie jako „oplocení“ (angl. fencing) mohou udržet zbytek systému v provozu. +more Oplocení je proces izolování uzlu nebo ochrany sdílených zdrojů, pokud se uzel jeví jako nefunkční. Existují dvě metody oplocení. Jedna vypne uzel jako takový a druhá znemožní přístup ke zdrojů (např. sdílené disky).

Vývoj software a správa

Paralelní programování

Clustery s proměnlivou zátěží, jako webové servery, používají clusterové architektury k podpoře velkého počtu uživatelů a obvykle žádost každého uživatele je přesměrována ke konkrétnímu uzlu. To umožňuje paralelní úkoly bez kooperace více uzlů, vzhledem k tomu, že hlavním cílem systému je poskytnutí rychlého přístupu uživatele ke sdíleným datům. +more Počítačové clustery, které provádějí komplexní výpočty pro malé množství uživatelů, potřebují využít výhodu schopnosti paralelního zpracování mezi několika uzly.

Ladění a sledování

Vývoj a ladění paralelních programů v clusteru vyžaduje vhodné nástroje. Nástroje jako totalView byly vyvinuty k ladění paralelních implementací v počítačových clusterech, které využívají MPI nebo PVM pro předávání zpráv.

Berkley NOW (Síť Stanic) systém shromažďuje data clusterů a ukládá je do databáze, zatímco systém jako PARMON (vyvinutý v Indii) umožňuje vizuální pozorování a řízení rozsáhlých clusterů.

Některé aplikace používají „Checkpointing“ k obnovení daného stavu systému, když uzel selže během dlouhého víceuzlového počítání. Toto je základem ve velkých clusterech, vzhledem k tomu, že s rostoucím počtem uzlů roste i pravděpodobnost selhání uzlu pod velkým výpočetním zatížením. +more Checkpointing může obnovit systém do stabilního stavu, aby výpočty mohly pokračovat bez nutnosti přepočítat výsledky.

Klastry IBM i používají k monitorování života uzlů funkci označovanou jako Heartbeat monitoring. Toto "sledování tepu" zjišťuje, zda jsou uzly aktivní odesláním signálu z každého uzlu v klastru do všech ostatních uzlů. +more Když Heartbeat signál uzlu selže, zdrojové služby klastru provedou příslušnou akci.

Historie

SPEC-1 VAX 05

Historie prvních počítačových clusterů je více či méně přímo svázána s historií prvních sítí, jelikož jedna z hlavních motivací pro rozvoj sítě bylo propojení výpočetních zdrojů a vytvoření de facto počítačového clusteru.

Dle Grega Pfistera nebyly clustery vynalezeny žádným konkrétním prodejcem ale zákazníky, jejichž práce se nemohla vejít na jeden počítač nebo pro potřebnou zálohu dat. První komerční clustrovací produkt byl ARCnet, vyvinut firmou Datapoint v roce 1977. +more Clustrování jako takové se nerozvinulo, dokud DEC (Digital Equipment Corporation) nevydala svůj VAXcluster produkt v roce 1984 pro operační systém VAX/VMS . Produkty ARCnet a VAXcluster nejenom podporovaly paralelní výpočty, ale zároveň sdílely systémy souborů a periferní zařízení. Cílem bylo poskytnout výhody paralelních výpočtů při udržení spolehlivosti dat a jedinečnosti. Další dva význačné a obchodně úspěšné clusterové systémy byly Tandem Himalaya a IBM S/390 Parallel Sysplex, představené v letech 1993 a 1994.

České superpočítače naleznete v článku superpočítač.

Reference

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top