Cluster (skupina počítačů)

Cluster  – skupina počítačů spojených vysokorychlostními komunikačními kanály, které z pohledu uživatele představují jeden hardwarový zdroj. Cluster je volně propojená kolekce několika počítačových systémů, které spolupracují při provádění společných aplikací a uživateli se jeví jako jeden systém. Jeden z prvních architektů klastrové technologie, Gregory Pfister , definoval klastr následovně: „ Cluster  je typ paralelního nebo distribuovaného systému, který:

  1. sestává z několika vzájemně propojených počítačů ;
  2. používá se jako jediný, jednotný počítačový zdroj.

Obvykle se rozlišují následující hlavní typy klastrů:

  1. clustery s podporou převzetí služeb při selhání (klastry s vysokou dostupností, HA, clustery s vysokou dostupností)
  2. Clustery pro vyrovnávání zátěže
  3. výpočetní clustery (vysoce výkonné výpočetní clustery, HPC)
  4. distribuované výpočetní systémy

Klasifikace shluků

Clustery vysoké dostupnosti

Jsou zkráceny jako HA ( High Availability  ) .  Vytvořeno pro zajištění vysoké dostupnosti služby poskytované clusterem. Redundantní počet uzlů zahrnutých v clusteru zaručuje poskytování služby v případě výpadku jednoho nebo více serverů. Typický počet uzlů jsou dva, což je minimální počet, který má za následek zvýšenou dostupnost. Pro budování takových clusterů bylo vytvořeno mnoho softwarových řešení.

Klastry a systémy převzetí služeb při selhání se dělí na 3 hlavní typy:

Konkrétní technologie může tyto principy kombinovat v libovolné kombinaci. Linux-HA například podporuje režim konfigurace převzetí  , ve kterém jsou kritické požadavky zpracovávány všemi uzly společně, zatímco ostatní jsou mezi nimi rovnoměrně rozloženy. [jeden]

Clustery NLB (Network Load Balancing)

Princip jejich fungování je založen na distribuci požadavků přes jeden nebo více vstupních uzlů, které je přesměrovávají ke zpracování do dalších výpočetních uzlů. Prvotním cílem takového clusteru je výkon, často však využívají i metody zvyšující spolehlivost. Podobné návrhy se nazývají serverové farmy . Software (software) může být buď komerční ( OpenVMS , MOSIX , Platform LSF HPC, Solaris Cluster , Moab Cluster Suite, Maui Cluster Scheduler) nebo zdarma ( OpenMosix , Sun Grid Engine , Linux Virtual Server ).

Výpočetní clustery

Klastry se používají pro výpočetní účely, zejména ve vědeckém výzkumu. Pro výpočetní clustery jsou významnými ukazateli vysoký výkon procesoru při operacích s pohyblivou řádovou čárkou ( flops ) a nízká latence sjednocující sítě a méně významným - rychlost I/O operací, která je důležitější pro databáze a webové služby . Výpočetní clustery umožňují zkrátit dobu výpočtu ve srovnání s jedním počítačem rozdělením úlohy na paralelně provádějící větve, které si vyměňují data přes propojovací síť. Jednou z typických konfigurací je sada počítačů sestavených z veřejně dostupných komponent, na kterých běží operační systém Linux a propojených sítí Ethernet , Myrinet , InfiniBand nebo jinými relativně levnými sítěmi. Takový systém je běžně označován jako Beowulfův cluster . Speciálně se rozlišují vysoce výkonné clustery (označeno anglickou zkratkou HPC Cluster  - High-performance computing cluster ). Seznam nejvýkonnějších vysoce výkonných počítačů (může být také označován anglickou zkratkou HPC ) najdete ve světovém žebříčku TOP500 . V Rusku existuje hodnocení nejvýkonnějších počítačů v SNS. [2]

Distribuované výpočetní systémy ( grid )

Takové systémy nejsou obvykle považovány za clustery, ale jejich principy jsou do značné míry podobné technologii clusterů. Říká se jim také mřížkové systémy . Hlavním rozdílem je nízká dostupnost každého uzlu, tedy nemožnost zaručit jeho provoz v daném časovém okamžiku (uzly se při provozu připojují a odpojují), proto je třeba úkol rozdělit na řadu nezávislých procesů. Takový systém na rozdíl od clusterů nevypadá jako jeden počítač, ale slouží jako zjednodušený prostředek distribuce výpočtů. Nestabilita konfigurace je v tomto případě kompenzována velkým počtem uzlů.

Shluk serverů organizovaných programově

Serverový cluster (v informačních technologiích ) – skupina serverů, které jsou logicky kombinovány, schopné zpracovávat identické požadavky a používané jako jeden zdroj. Servery jsou nejčastěji seskupeny prostřednictvím místní sítě. Skupina serverů je spolehlivější a funguje lépe než jeden server. Ke sloučení serverů do jednoho zdroje dochází na úrovni softwarových protokolů.

Na rozdíl od hardwarového clusteru počítačů vyžadují clustery organizované podle softwaru:

Příklady softwarových clusterových řešení Aplikace

Ve většině případů serverové clustery fungují na samostatných počítačích. To umožňuje zlepšit výkon rozložením zátěže na hardwarové prostředky a poskytuje odolnost proti chybám na úrovni hardwaru.

Princip organizace clusteru serverů (na úrovni softwarového protokolu) však umožňuje provozovat několik softwarových serverů na jednom hardwarovém serveru. Takové použití může být vyžadováno:

  • při vývoji a testování clusterových řešení;
  • v případě potřeby zajistěte dostupnost clusteru pouze s ohledem na časté změny v konfiguraci serverů, které jsou členy clusteru, vyžadující jejich restart (restart se provádí jeden po druhém) v podmínkách omezených hardwarových zdrojů.

Špičkové výkonnostní klastry

Organizace TOP500 dvakrát ročně zveřejňuje seznam pěti set nejproduktivnějších počítačových systémů světa, mezi nimiž v posledních letech často převažují klastry. Nejrychlejší cluster je IBM Roadrunner ( Los Alamos National Laboratory , USA , vytvořený v roce 2008), jeho maximální výkon (k červenci 2008) je 1 026 petaflops . Nejrychlejším systémem v Evropě (stav k červenci 2008 ) je superpočítač BlueGene /P se nachází v Německu , ve výzkumném centru města Jülich v Severním Porýní-Vestfálsku , maximální dosažený výkon je 167,3 teraflops .

Clusterové systémy zaujímají důstojné místo v žebříčku nejrychlejších, přičemž cenově výrazně překonávají superpočítače. Od července 2008 je na 7. místě v hodnocení TOP500 cluster SGI Altix ICE 8200 ( Chipewa Falls , Wisconsin , USA).

Relativně levnou alternativou superpočítačů jsou clustery založené na konceptu Beowulf , které jsou sestaveny z běžných levných počítačů založených na svobodném softwaru. Jedním z praktických příkladů takového systému je Stone Soupercomputer v Oak Ridge National Laboratory ( Tennessee , USA, 1997).

Největší soukromě vlastněný cluster (z 1000 procesorů ) postavil John Koza.

Historie

Historie vzniku klastrů je nerozlučně spjata s raným vývojem v oblasti počítačových sítí. Jedním z důvodů vzniku vysokorychlostní komunikace mezi počítači byla naděje na sdílení výpočetních zdrojů. Na počátku 70. let 20. století skupina protokolů TCP/IP a laboratoř Xerox PARC stanovily standardy pro sítě. Objevil se také operační systém Hydra pro počítače DEC PDP-11 , cluster vytvořený na tomto základě byl pojmenován C.mpp ( Pittsburgh , Pennsylvania , USA, 1971). Avšak až kolem roku 1983 byly vyvinuty mechanismy pro snadné sdílení úloh a souborů po síti, většinou ze SunOS ( operační systém založený na BSD od Sun Microsystems ).

Prvním komerčním klastrovým projektem byl ARCNet , vytvořený společností Datapoint v roce 1977. Nestal se ziskovým, a proto se budování clusteru rozvinulo až v roce 1984, kdy DEC postavil svůj VAXcluster založený na operačním systému VAX/VMS . ARCNet a VAXcluster byly navrženy nejen pro společné výpočty, ale také pro sdílení souborového systému a periferií s ohledem na zachování integrity a jednoznačnosti dat . VAXCluster (nyní nazývaný VMSCluster ) je nedílnou součástí operačního systému HP OpenVMS využívajícího procesory DEC Alpha a Itanium .

Mezi další dva dříve uznávané klastrové produkty patří Tandem Hymalaya (1994, třída HA ) a IBM S/390 Parallel Sysplex (1994).

Historie vytváření clusterů z běžných osobních počítačů vděčí za mnohé projektu Parallel Virtual Machine . V roce 1989 tento software pro připojení počítačů do virtuálního superpočítače otevřel možnost vytváření okamžitých clusterů. Výsledkem bylo, že celkový výkon všech tehdy vytvořených levných clusterů předčil součet kapacit „seriózních“ komerčních systémů.

Ve vytváření clusterů založených na levných osobních počítačích propojených sítí pro přenos dat pokračovala v roce 1993 Americká letecká agentura NASA , poté byly v roce 1995 vyvinuty clustery Beowulf , speciálně navržené na tomto principu. Úspěch těchto systémů podnítil rozvoj gridových sítí , které existují již od počátku UNIXu .

Softwarové nástroje

Široce používaným nástrojem pro organizaci interakce mezi servery je knihovna MPI , která podporuje jazyky C a Fortran . Používá se například v programu simulace počasí MM5 .

Operační systém Solaris poskytuje software Solaris Cluster , který se používá k zajištění vysoké dostupnosti a převzetí služeb při selhání pro servery se systémem Solaris. Pro OpenSolaris existuje implementace open source s názvem OpenSolaris HA Cluster .

Mezi uživateli GNU/Linuxu je populární několik programů :

  • distcc , MPICH atd. jsou specializované nástroje pro paralelizaci práce programů. distcc umožňuje paralelní kompilaci do GNU Compiler Collection .
  • Linux Virtual Server , Linux-HA  - software uzlu pro distribuci požadavků mezi výpočetní servery.
  • MOSIX , openMosix , Kerrighed , OpenSSI  jsou plnohodnotná klastrová prostředí zabudovaná do jádra, která automaticky rozdělují úlohy mezi homogenní uzly. OpenSSI, openMosix a Kerrighed vytvářejí mezi uzly jediné prostředí operačního systému .

Plánuje se, že klastrové mechanismy budou zabudovány do jádra DragonFly BSD , které se rozvětvovalo v roce 2003 z FreeBSD 4.8. V budoucnu se také plánuje jeho přeměna na prostředí jediného operačního systému .

Společnost Microsoft vydává cluster HA pro operační systém Windows . Existuje názor, že byl vytvořen na základě technologie Digital Equipment Corporation , podporuje až 16 (od roku 2010) uzlů v clusteru a také provoz v SAN (Storage Area Network). Pro podporu distribuovaných aplikací se používá sada API, jsou zde mezery pro práci s programy, které nezahrnují práci v clusteru.

Windows Compute Cluster Server 2003 (CCS), vydaný v červnu 2006, je určen pro aplikace vyšší třídy, které vyžadují clusterové výpočty. Edice je navržena pro nasazení na více počítačích, které jsou klastrovány za účelem dosažení superpočítačového výkonu. Každý cluster na Windows Compute Cluster Server se skládá z jednoho nebo více hlavních počítačů, které distribuují úlohy, a několika podřízených počítačů, které provádějí hlavní práci. V listopadu 2008 byl představen Windows HPC Server 2008 , který nahradil Windows Compute Cluster Server 2003.

Novell Open Enterprise Server (OES) - síťový operační systém, " fúze " Novell NetWare a SUSE Linux Enterprise Server ; schopné vytvářet smíšené clustery, mimo jiné, ve kterých mohou prostředky přecházet ze serveru NetWare na server Linux a naopak.

Poznámky

  1. Linux High Availability Middleware, část 1: Heartbeat a webový server Apache . Získáno 14. března 2011. Archivováno z originálu 25. května 2015.
  2. TOP50 superpočítačů (nepřístupný odkaz) . Staženo 2. 5. 2019. Archivováno z originálu 3. 6. 2018. 

Viz také

Odkazy