Počítačový klastr - Computer cluster

Technici pracující na velkém klastru Linuxu na Chemnitz University of Technology , Německo
Sun Microsystems Solaris Cluster , s chlazením v řadě
Série Taiwania využívá klastrovou architekturu s velkou kapacitou, pomohla vědcům z Tchaj-wanu a mnoha dalším během COVID-19

Klastr Počítač je sada počítačů, které pracují společně, aby mohly být považovány za jediný systém. Na rozdíl od gridových počítačů mají počítačové klastry každý uzel nastaven tak, aby prováděl stejný úkol, kontrolovaný a naplánovaný softwarem.

Komponenty klastru jsou obvykle navzájem propojeny prostřednictvím rychlých lokálních sítí , přičemž každý uzel (počítač používaný jako server) provozuje vlastní instanci operačního systému . Ve většině případů všechny uzly používají stejný hardware a stejný operační systém, i když v některých nastaveních (např. Pomocí prostředků Open Source Cluster Application Resources (OSCAR)) lze na každém počítači použít jiný operační systém nebo jiný hardware.

Clustery jsou obvykle nasazeny za účelem zlepšení výkonu a dostupnosti oproti jednomu počítači, přičemž jsou obvykle mnohem nákladově efektivnější než jednotlivé počítače se srovnatelnou rychlostí nebo dostupností.

Počítačové klastry se objevily v důsledku sbližování řady výpočetních trendů, včetně dostupnosti levných mikroprocesorů, vysokorychlostních sítí a softwaru pro vysoce výkonné distribuované výpočty . Mají širokou škálu použitelnosti a nasazení, od klastrů malých podniků s hrstkou uzlů až po některé z nejrychlejších superpočítačů na světě, jako je IBM Sequoia . Před příchodem klastrů byly použity mainframy odolné vůči chybám s jednou jednotkou s modulární redundancí ; ale nižší počáteční náklady na klastry a vyšší rychlost síťové struktury favorizovaly přijetí klastrů. Na rozdíl od vysoce spolehlivých mainframů jsou klastry levnější na škálování, ale mají také větší složitost při zpracování chyb, protože v klastrech chybové režimy nejsou pro spuštěné programy neprůhledné.

Základní pojmy

Jednoduchý, doma postavený klastr Beowulf .

Touha získat větší výpočetní výkon a lepší spolehlivost orchestrací řady levných komerčních běžných počítačů dala vzniknout řadě architektur a konfigurací.

Počítačový klastrový přístup obvykle (ale ne vždy) spojuje řadu snadno dostupných výpočetních uzlů (např. Osobní počítače používané jako servery) prostřednictvím rychlé lokální sítě . Činnosti výpočetních uzlů jsou organizovány „klastrovacím middlewarem“, softwarovou vrstvou, která je umístěna na uzlech a umožňuje uživatelům zacházet s klastrem jako se soudržnou výpočetní jednotkou, např. Prostřednictvím konceptu jediného systému obrazu .

Klastrování počítačů se opírá o přístup centralizované správy, díky kterému jsou uzly k dispozici jako sdílené orchestrované servery. Je odlišný od jiných přístupů, jako je peer to peer nebo grid computing, které také používají mnoho uzlů, ale s mnohem více distribuovanou povahou .

Počítačový klastr může být jednoduchý dvouuzlový systém, který spojuje pouze dva osobní počítače, nebo může jít o velmi rychlý superpočítač . Základním přístupem k budování klastru je klastr Beowulf, který může být postaven na několika osobních počítačích za účelem vytvoření nákladově efektivní alternativy k tradičním vysoce výkonným počítačům . Raný projekt, který ukázal životaschopnost konceptu, byl 133-uzlový Stone Soupercomputer . Vývojáři použili Linux , sadu nástrojů Parallel Virtual Machine a knihovnu rozhraní pro předávání zpráv k dosažení vysokého výkonu za relativně nízké náklady.

Přestože klastr může sestávat pouze z několika osobních počítačů propojených jednoduchou sítí, lze k dosažení velmi vysokých úrovní výkonu použít také klastrovou architekturu. S Top500 pololetní přehled organizace z 500 nejrychlejších superpočítačů často obsahuje mnoho klastrů, např nejrychlejší stroj na světě, v roce 2011 byl na K počítači , který má distribuované paměti , klastr architektury.

Dějiny

VAX 11/780, c. 1977

Greg Pfister uvedl, že klastry nebyly vynalezeny žádným konkrétním prodejcem, ale zákazníky, kteří nemohli vejít veškerou svou práci na jeden počítač nebo potřebovali zálohu. Pfister odhaduje datum na nějaký čas v šedesátých letech minulého století. Formální inženýrský základ klastrových počítačů jako prostředku paralelní práce jakéhokoli druhu pravděpodobně vynalezl Gene Amdahl z IBM , který v roce 1967 publikoval to, co začalo být považováno za klíčový dokument o paralelním zpracování: Amdahlův zákon .

Historie raných počítačových klastrů je víceméně přímo svázána s historií raných sítí, protože jednou z hlavních motivací pro rozvoj sítě bylo propojení výpočetních zdrojů, vytvoření de facto počítačového klastru.

Prvním výrobním systémem navrženým jako klastr byl Burroughs B5700 v polovině 60. let. To umožnilo až čtyři počítače, každý s jedním nebo dvěma procesory, být pevně spojeny se společným subsystémem diskového úložiště za účelem distribuce pracovní zátěže. Na rozdíl od standardních systémů s více procesory bylo možné restartovat každý počítač, aniž by došlo k narušení celkového provozu.

Prvním komerčním volně spojeným klastrovacím produktem byl systém Datapoint Corporation „Attached Resource Computer“ (ARC), vyvinutý v roce 1977, a využívající ARCnet jako rozhraní klastru. Klastrování samo o sobě se opravdu nerozjelo, dokud Digital Equipment Corporation v roce 1984 neuvolnila svůj produkt VAXcluster pro operační systém VAX/VMS (nyní pojmenovaný jako OpenVMS). Produkty ARC a VAXcluster podporovaly nejen paralelní výpočet, ale také sdílené systémy souborů a periferní zařízení. Cílem bylo poskytnout výhody paralelního zpracování při zachování spolehlivosti a jedinečnosti dat. Dva další pozoruhodné rané komerční klastry byly Tandem Himalayan (produkt s vysokou dostupností kolem roku 1994) a IBM S/390 Parallel Sysplex (také kolem roku 1994, primárně pro obchodní použití).

Ve stejném časovém rámci, zatímco počítačové klastry používaly paralelismus mimo počítač na komoditní síti, superpočítače je začaly používat ve stejném počítači. Po úspěchu CDC 6600 v roce 1964 byl Cray 1 dodán v roce 1976 a zavedl vnitřní paralelismus pomocí vektorového zpracování . Zatímco rané superpočítače vyloučily klastry a spoléhaly na sdílenou paměť , časem některé z nejrychlejších superpočítačů (např. Počítač K ) spoléhaly na klastrové architektury.

Atributy klastrů

Klastr pro vyrovnávání zatížení se dvěma servery a N uživatelskými stanicemi.

Počítačové klastry mohou být konfigurovány pro různé účely od všeobecných obchodních potřeb, jako je podpora webových služeb, až po vědecké výpočty náročné na výpočet. V obou případech může klastr používat přístup s vysokou dostupností . Níže popsané atributy nejsou exkluzivní a „počítačový klastr“ může také využívat přístup s vysokou dostupností atd.

Vyvažování zátěže “ klastry jsou konfigurace, v nichž clusteru uzly sdílejí výpočetní zátěže poskytnout lepší celkový výkon. Klastr webového serveru může například přiřadit různým uzlům různé dotazy, takže bude optimalizována celková doba odezvy. Přístupy k vyvažování zátěže se však mohou mezi aplikacemi výrazně lišit, např. Vysoce výkonný klastr používaný pro vědecké výpočty by vyvažoval zátěž různými algoritmy z klastru webového serveru, který může použít pouze jednoduchou metodu round-robin přiřazením každého nového požadavku do jiného uzlu.

Počítačové klastry se používají pro účely náročné na výpočet, nikoli pro zpracování operací orientovaných na IO, jako je webová služba nebo databáze. Počítačový klastr může například podporovat výpočetní simulace havárií vozidla nebo počasí. Velmi úzce spojené počítačové klastry jsou navrženy pro práci, která se může blížit „ superpočítači “.

Klastry s vysokou dostupností “ (známé také jako klastry s podporou převzetí služeb při selhání nebo klastry HA) zlepšují dostupnost přístupu klastru. Fungují tak, že mají nadbytečné uzly , které se pak používají k poskytování služby v případě selhání systémových komponent. Implementace clusteru HA se pokouší využít redundanci komponent clusteru k odstranění jednotlivých bodů selhání . Existují komerční implementace clusterů s vysokou dostupností pro mnoho operačních systémů. Projekt Linux-HA je jedním z běžně používaných bezplatných softwarových balíčků HA pro operační systém Linux .

Výhody

Clustery jsou primárně navrženy s ohledem na výkon, ale instalace jsou založeny na mnoha dalších faktorech. Tolerance chyb ( schopnost systému pokračovat v práci s nefunkčním uzlem ) umožňuje škálovatelnost a v situacích vysokého výkonu nízkou frekvenci rutin údržby, konsolidaci zdrojů (např. RAID ) a centralizovanou správu. Mezi výhody patří umožnění obnovy dat v případě katastrofy a zajištění paralelního zpracování dat a vysoké kapacity zpracování.

Pokud jde o škálovatelnost, clustery to poskytují ve své schopnosti přidávat uzly horizontálně. To znamená, že do clusteru lze přidat více počítačů, aby se zlepšil jeho výkon, redundance a odolnost vůči chybám. To může být levné řešení pro výkonnější klastr ve srovnání se škálováním jednoho uzlu v klastru. Tato vlastnost počítačových klastrů může umožnit provedení většího výpočetního zatížení větším počtem počítačů s nižší výkonností.

Při přidávání nového uzlu do klastru se zvyšuje spolehlivost, protože celý klastr není nutné stáhnout. Jeden uzel může být odstraněn kvůli údržbě, zatímco zbytek klastru přebírá zatížení daného jednotlivého uzlu.

Pokud máte velký počet počítačů seskupených dohromady, je to vhodné k použití distribuovaných souborových systémů a RAID , přičemž oba mohou zvýšit spolehlivost a rychlost clusteru.

Design a konfigurace

Typická Beowulfova konfigurace.

Jedním z problémů při navrhování clusteru je, jak těsně mohou být jednotlivé uzly propojeny. Například úloha jednoho počítače může vyžadovat častou komunikaci mezi uzly: to znamená, že klastr sdílí vyhrazenou síť, je hustě umístěn a pravděpodobně má homogenní uzly. Druhým extrémem je situace, kdy počítačová práce používá jeden nebo několik uzlů a potřebuje malou nebo žádnou mezioduzlovou komunikaci, která se blíží gridovému výpočtu .

V klastru Beowulf aplikační programy nikdy nevidí výpočetní uzly (nazývané také podřízené počítače), ale interagují pouze s „Master“, což je konkrétní počítač zpracovávající plánování a správu podřízených. V typické implementaci má Master dvě síťová rozhraní, jedno, které komunikuje se soukromou sítí Beowulf pro podřízené, druhé pro obecnou síť organizace. Podřízené počítače mají obvykle vlastní verzi stejného operačního systému a místní paměť a místo na disku. Soukromá podřízená síť však může mít také velký a sdílený souborový server, který ukládá globální trvalá data, k nimž mají přístup podle potřeby otroci.

Klastr DEGIMA se 144 uzly pro zvláštní účely je naladěn na spouštění astrofyzikálních simulací N těles pomocí paralelního stromového kódu Multiple-Walk, nikoli vědeckých výpočtů pro všeobecné účely.

Vzhledem k rostoucímu výpočetnímu výkonu každé generace herních konzolí došlo k novému využití, kdy jsou přepracovány do klastrů High-performance computing (HPC). Některé příklady klastrů herních konzolí jsou klastry Sony PlayStation a klastry Microsoft Xbox . Dalším příkladem spotřebitelských herních produktů je pracovní stanice Nvidia Tesla Personal Supercomputer , která využívá více procesorových čipů s grafickým akcelerátorem. Kromě herních konzolí lze místo toho použít také špičkové grafické karty. Využití grafických karet (nebo spíše jejich GPU) k provádění výpočtů pro gridové výpočty je mnohem úspornější než používání CPU, přestože je méně přesné. Při použití hodnot s dvojitou přesností se s nimi pracuje stejně přesně jako s CPU a jsou stále mnohem méně nákladné (pořizovací náklady).

Počítačové klastry historicky běžely na samostatných fyzických počítačích se stejným operačním systémem . S příchodem virtualizace mohou uzly klastru běžet na samostatných fyzických počítačích s různými operačními systémy, které jsou výše vymalovány virtuální vrstvou, aby vypadaly podobně. Klastr může být také virtualizován na různých konfiguracích, protože probíhá údržba; příkladem implementace je Xen jako správce virtualizace s Linux-HA .

Sdílení dat a komunikace

Sdílení dat

Jak se v 80. letech objevovaly počítačové klastry, objevovaly se i superpočítače . Jedním z prvků, které v té době rozlišovaly tři třídy, bylo to, že rané superpočítače spoléhaly na sdílenou paměť . K dnešnímu dni klastry obvykle nepoužívají fyzicky sdílenou paměť, zatímco mnoho architektur superpočítačů ji také opustilo.

V moderních počítačových klastrech je však použití klastrovaného souborového systému zásadní. Mezi příklady patří IBM General Parallel File System , Microsoft's Cluster Shared Volumes nebo Oracle Cluster File System .

Předávání zpráv a komunikace

Dva široce používané přístupy pro komunikaci mezi uzly clusteru jsou MPI ( Message Passing Interface ) a PVM ( Parallel Virtual Machine ).

PVM byl vyvinut v Oak Ridge National Laboratory kolem roku 1989, než byl k dispozici MPI. PVM musí být přímo nainstalován na každém uzlu clusteru a poskytuje sadu softwarových knihoven, které vykreslují uzel jako „paralelní virtuální počítač“. PVM poskytuje běhové prostředí pro předávání zpráv, správu úkolů a prostředků a upozornění na chyby. PVM mohou používat uživatelské programy napsané v C, C ++ nebo Fortran atd.

MPI se vynořil na počátku 90. let minulého století z diskusí mezi 40 organizacemi. Počáteční úsilí podpořila ARPA a National Science Foundation . Spíše než začít znovu, design MPI čerpal z různých funkcí dostupných v komerčních systémech té doby. Specifikace MPI pak vedly ke konkrétním implementacím. Implementace MPI obvykle používají připojení TCP/IP a soket. MPI je nyní široce dostupný komunikační model, který umožňuje psát paralelní programy v jazycích jako C , Fortran , Python atd. Na rozdíl od PVM, který poskytuje konkrétní implementaci, je MPI specifikací, která byla implementována v systémech, jako je MPICH a Otevřít MPI .

Správa klastrů

Levný a nízkoenergetický drobný klastr Cubieboards využívající Apache Hadoop na Lubuntu
Předběžný vzorek clusterového počítačového systému Ground Electronics/AB Open Circumference C25 , osazeného 8 x Raspberry Pi 3 Model B+ a 1 x UDOO x86 desek.

Jednou z výzev při používání počítačového clusteru jsou náklady na jeho správu, které mohou být někdy stejně vysoké jako náklady na správu N nezávislých počítačů, pokud má cluster N uzlů. V některých případech to poskytuje výhodu architekturám sdílené paměti s nižšími náklady na správu. Díky tomu se také virtuální počítače staly populární díky snadné správě.

Plánování úkolů

Když velký klastr pro více uživatelů potřebuje přístup k velmi velkému množství dat, stává se plánování úkolů výzvou. V heterogenním clusteru CPU-GPU se složitým aplikačním prostředím závisí výkon každé úlohy na vlastnostech základního clusteru. Proto mapování úloh na jádra CPU a zařízení GPU přináší značné výzvy. Toto je oblast probíhajícího výzkumu; byly navrženy a studovány algoritmy, které kombinují a rozšiřují MapReduce a Hadoop .

Správa selhání uzlu

Když uzel v klastru selže, mohou být použity strategie jako „ oplocení “, aby byl zbytek systému funkční. Oplocení je proces izolace uzlu nebo ochrany sdílených prostředků, když se zdá, že uzel nefunguje správně. Existují dvě třídy metod oplocení; jeden zakáže samotný uzel a druhý zakáže přístup k prostředkům, jako jsou sdílené disky.

Metoda STONITH znamená „Shoot The Other Node In The Head“, což znamená, že podezřelý uzel je deaktivován nebo vypnut. Například oplocení napájení používá k vypnutí nefunkčního uzlu řadič napájení.

Přístup k oplocení zdrojů zakazuje přístup ke zdrojům bez vypnutí uzlu. To může zahrnovat trvalé oplocení rezervací prostřednictvím SCSI3 , oplocení vláknového kanálu k deaktivaci portu vláknového kanálu nebo oplocení zařízení globálního síťového bloku (GNBD), které zakáže přístup k serveru GNBD.

Vývoj a správa softwaru

Paralelní programování

Klastry s vyrovnáváním zátěže, jako jsou webové servery, využívají klastrové architektury k podpoře velkého počtu uživatelů a obvykle je každý požadavek uživatele směrován do konkrétního uzlu, čímž je dosaženo paralelnosti úkolů bez spolupráce více uzlů, vzhledem k tomu, že hlavním cílem systému je zajistit rychlé přístup ke sdíleným datům. „Počítačové klastry“, které provádějí složité výpočty pro malý počet uživatelů, však musí využít možnosti paralelního zpracování klastru a oddílu „stejný výpočet“ mezi několika uzly.

Automatická paralelizace programů zůstává technickou výzvou, ale modely paralelního programování lze použít k dosažení vyššího stupně paralelismu prostřednictvím současného provádění oddělených částí programu na různých procesorech.

Ladění a monitorování

Vývoj a ladění paralelních programů na klastru vyžaduje primitiva paralelního jazyka a vhodné nástroje, jako jsou nástroje diskutované ve fóru High Performance Debugging Forum (HPDF), jejichž výsledkem jsou specifikace HPD. Poté byly vyvinuty nástroje, jako je TotalView, k ladění paralelních implementací na počítačových klastrech, které pro předávání zpráv používají rozhraní MPI ( Message Passing Interface ) nebo Parallel Virtual Machine (PVM).

Systém University of California, Berkeley Network of Workstations (NOW) shromažďuje klastrová data a ukládá je do databáze, zatímco systém jako PARMON, vyvinutý v Indii, umožňuje vizuální pozorování a správu velkých klastrů.

Kontrolní bod aplikace lze použít k obnovení daného stavu systému v případě selhání uzlu během dlouhého víceuzlového výpočtu. To je zásadní u velkých klastrů, vzhledem k tomu, že s rostoucím počtem uzlů roste i pravděpodobnost selhání uzlu při velkém výpočetním zatížení. Checkpointing může obnovit systém do stabilního stavu, takže zpracování může pokračovat, aniž by bylo nutné znovu přepočítávat výsledky.

Implementace

Svět Linuxu podporuje různý klastrový software; pro klastrování aplikací existuje distcc a MPICH . Linux Virtual Server , Linux-HA -klastry založené na režisérech, které umožňují distribuci příchozích požadavků na služby mezi více uzly clusteru. MOSIX , LinuxPMI , Kerrighed , OpenSSI jsou plnohodnotné klastry integrované do jádra, které zajišťují automatickou migraci procesů mezi homogenními uzly. OpenSSI , openMosix a Kerrighed jsou implementace obrazu jednoho systému .

Počítačový cluster Microsoft Windows Server Server 2003 založený na platformě Windows Server poskytuje kousky pro vysoce výkonné počítače, jako je Plánovač úloh, knihovna MSMPI a nástroje pro správu.

gLite je sada technologií middlewaru vytvořená projektem Enabling Grids for E-sciencE (EGEE).

slurm se také používá k plánování a správě některých největších superpočítačových klastrů (viz seznam top500).

Jiné přístupy

Ačkoli většina počítačových klastrů je trvalým příslušenstvím, byly provedeny pokusy o flash mob computing s cílem vytvořit klastry s krátkou životností pro konkrétní výpočty. Větší škála dobrovolnických výpočetních systémů, jako jsou systémy založené na BOINC , však měla více sledujících.

Viz také

Základní pojmy

Distribuované výpočty

Specifické systémy

Počítačové farmy

Reference

Další čtení

externí odkazy