Kluster (grupp av datorer)

Cluster  - en grupp datorer förenade av höghastighetskommunikationskanaler, som representerar en enda hårdvaruresurs från användarens synvinkel. Ett kluster är en löst kopplad samling av flera datorsystem som arbetar tillsammans för att utföra vanliga applikationer och framstår för användaren som ett enda system. En av de första arkitekterna inom klusterteknologi, Gregory Pfister , definierade ett kluster enligt följande: " Ett kluster  är en typ av parallellt eller distribuerat system som:

  1. består av flera sammankopplade datorer ;
  2. används som en enda, enhetlig datorresurs.

Vanligtvis särskiljs följande huvudtyper av kluster:

  1. failover-kluster (högtillgänglighetskluster, HA, högtillgänglighetskluster)
  2. Lastbalanserande kluster
  3. datorkluster (högpresterande datorkluster, HPC)
  4. distribuerade datorsystem

Klassificering av kluster

Kluster med hög tillgänglighet

De förkortas till HA ( High Availability  ) .  Skapad för att säkerställa hög tillgänglighet för tjänsten som tillhandahålls av klustret. Det redundanta antalet noder som ingår i klustret garanterar tillhandahållandet av tjänsten i händelse av fel på en eller flera servrar. Det typiska antalet noder är två, vilket är det minsta antalet som resulterar i ökad tillgänglighet. Många mjukvarulösningar har skapats för att bygga sådana kluster.

Failover-kluster och system är indelade i tre huvudtyper:

En speciell teknik kan kombinera dessa principer i vilken kombination som helst. Till exempel stöder Linux-HA ett övertagande konfigurationsläge , där kritiska förfrågningar behandlas av alla noder tillsammans, medan andra är jämnt fördelade mellan dem. [ett] 

Network Load Balancing (NLB)-kluster

Principen för deras funktion är baserad på distributionen av förfrågningar genom en eller flera ingångsnoder, som omdirigerar dem för bearbetning till andra datornoder. Det initiala målet med ett sådant kluster är prestanda, men de använder ofta också metoder som ökar tillförlitligheten. Liknande design kallas serverfarmar . Programvara (mjukvara) kan vara antingen kommersiell ( OpenVMS , MOSIX , Platform LSF HPC, Solaris Cluster , Moab Cluster Suite, Maui Cluster Scheduler) eller gratis ( OpenMosix , Sun Grid Engine , Linux Virtual Server ).

Datorkluster

Kluster används för beräkningsändamål, särskilt inom vetenskaplig forskning. För datorkluster är viktiga indikatorer hög processorprestanda vid operationer med flyttal ( flops ) och låg latens för det sammanhållande nätverket, och mindre signifikant - hastigheten på I/O-operationer, vilket är viktigare för databaser och webbtjänster . Beräkningskluster gör det möjligt att minska beräkningstiden, jämfört med en enskild dator, genom att dela upp uppgiften i parallellt exekverande grenar som utbyter data över ett anslutande nätverk. En typisk konfiguration är en uppsättning datorer byggda av allmänt tillgängliga komponenter, som kör operativsystemet Linux och anslutna via Ethernet , Myrinet , InfiniBand eller andra relativt billiga nätverk. Ett sådant system kallas vanligtvis för ett Beowulf- kluster . Högpresterande kluster är speciellt utmärkande (Betecknas med den engelska förkortningen HPC Cluster  - High-performance computing cluster ). En lista över de mest kraftfulla högpresterande datorerna (kan även hänvisas till med den engelska förkortningen HPC ) finns i TOP500 världsrankingen . I Ryssland finns det en klassificering av de mest kraftfulla datorerna i CIS. [2]

Distribuerade datorsystem ( rutnät )

Sådana system betraktas vanligtvis inte som kluster, men deras principer liknar till stor del klusterteknologi. De kallas också för nätsystem . Den största skillnaden är den låga tillgängligheten för varje nod, det vill säga oförmågan att garantera dess drift vid en given tidpunkt (noder kopplas upp och kopplas från under drift), så uppgiften måste delas upp i ett antal oberoende processer. Ett sådant system, till skillnad från kluster, ser inte ut som en enda dator, utan fungerar som ett förenklat sätt att distribuera beräkningar. Instabiliteten i konfigurationen, i detta fall, kompenseras av ett stort antal noder.

Ett kluster av servrar organiserade programmatiskt

Serverkluster ( inom informationsteknologi ) - en grupp servrar som är logiskt kombinerade, kan behandla identiska förfrågningar och användas som en enda resurs. Oftast är servrar grupperade via ett lokalt nätverk. En grupp servrar är mer pålitlig och presterar bättre än en enda server. Sammanfogning av servrar till en resurs sker på nivån för mjukvaruprotokoll.

Till skillnad från ett hårdvarukluster av datorer kräver kluster organiserade av programvara:

Exempel på mjukvaruklusterlösningar Applikation

I de flesta fall fungerar serverkluster på separata datorer. Detta gör att du kan förbättra prestanda genom att fördela belastningen på hårdvaruresurser och ger feltolerans på hårdvarunivå.

Principen att organisera ett kluster av servrar (på nivån för ett mjukvaruprotokoll) tillåter dig dock att köra flera mjukvaruservrar på en hårdvaruserver. Sådan användning kan krävas:

  • vid utveckling och testning av klusterlösningar;
  • vid behov, se till att klustret är tillgängligt endast med hänsyn till frekventa ändringar i konfigurationen av servrarna som är medlemmar i klustret, vilket kräver omstart (omstarten utförs en efter en) under förhållanden med begränsade hårdvaruresurser.

Toppprestandakluster

Två gånger om året publicerar organisationen TOP500 en lista över de femhundra mest produktiva datorsystemen i världen, bland vilka kluster ofta dominerar de senaste åren. Det snabbaste klustret är IBM Roadrunner ( Los Alamos National Laboratory , USA , skapat 2008), dess maximala prestanda (i juli 2008) är 1 026 Petaflops . Det snabbaste systemet i Europa (från och med juli 2008 ) är en superdator, BlueGene /P ligger i Tyskland , i forskningscentret i staden Jülich , Nordrhein-Westfalen , den maximala prestanda som uppnås är 167,3 Teraflops .

Klustersystem intar en värdig plats i listan över de snabbaste, samtidigt som de överträffar superdatorerna i pris. Från och med juli 2008 är den 7:e platsen i TOP500-betyget SGI Altix ICE 8200-klustret ( Chippewa Falls , Wisconsin , USA).

Ett relativt billigt alternativ till superdatorer är kluster baserade på Beowulf- konceptet , som är byggda av vanliga billiga datorer baserade på fri programvara. Ett praktiskt exempel på ett sådant system är Stone Soupercomputer vid Oak Ridge National Laboratory ( Tennessee , USA, 1997).

Det största privatägda klustret (av 1000 processorer ) byggdes av John Koza.

Historik

Historien om skapandet av kluster är oupplösligt kopplad till den tidiga utvecklingen inom området för datornätverk. En av anledningarna till uppkomsten av höghastighetskommunikation mellan datorer var hoppet om att slå samman datorresurser. I början av 1970-talet satte TCP/IP- protokollgruppen och Xerox PARC- laboratoriet standarder för nätverk. Operativsystemet Hydra för DEC PDP-11- datorer dök också upp , klustret som skapades på denna grund fick namnet C.mpp ( Pittsburgh , Pennsylvania , USA, 1971). Det var dock inte förrän runt 1983 som mekanismer utvecklades för att enkelt dela uppgifter och filer över ett nätverk, mestadels från SunOS (det BSD -baserade operativsystemet från Sun Microsystems ).

Det första kommersiella klusterprojektet var ARCNet , skapat av Datapoint 1977. Det blev inte lönsamt, och därför utvecklades klusterbyggandet inte förrän 1984, då DEC byggde sitt VAXcluster baserat på operativsystemet VAX/VMS . ARCNet och VAXcluster designades inte bara för gemensam datoranvändning, utan också för delning av filsystemet och kringutrustning, med hänsyn till bevarandet av dataintegritet och entydighet . VAXCluster (nu kallat VMSCluster ) är en integrerad komponent i HP OpenVMS- operativsystemet som använder DEC Alpha- och Itanium-processorer .

Två andra tidigt hyllade klusterprodukter inkluderar Tandem Hymalaya (1994, klass HA ) och IBM S/390 Parallel Sysplex (1994).

Historien om att skapa kluster från vanliga persondatorer är skyldig mycket till projektet Parallel Virtual Machine . 1989 öppnade denna mjukvara för att ansluta datorer till en virtuell superdator möjligheten att skapa omedelbara kluster. Som ett resultat överträffade den totala prestandan för alla billiga kluster som skapades vid den tiden summan av kapaciteten hos "seriösa" kommersiella system.

Skapandet av kluster baserade på billiga persondatorer anslutna till ett dataöverföringsnätverk fortsatte 1993 av American Aerospace Agency NASA , sedan 1995 utvecklades Beowulf- kluster , speciellt designade utifrån denna princip. Framgången för sådana system sporrade utvecklingen av nätnätverk , som har funnits sedan starten av UNIX .

Programvaruverktyg

Ett allmänt använt verktyg för att organisera inter-serverinteraktion är MPI -biblioteket som stöder C- och Fortran -språken . Den används till exempel i vädersimuleringsprogrammet MM5 .

Operativsystemet Solaris tillhandahåller programvaran Solaris Cluster , som används för att tillhandahålla hög tillgänglighet och failover för servrar som kör Solaris. Det finns en implementering med öppen källkod för OpenSolaris som heter OpenSolaris HA Cluster .

Flera program är populära bland GNU/Linux- användare:

  • distcc , MPICH , etc. är specialiserade verktyg för att parallellisera programmets arbete. distcc tillåter parallell kompilering i GNU Compiler Collection .
  • Linux Virtual Server , Linux-HA  - nodmjukvara för att distribuera förfrågningar mellan datorservrar.
  • MOSIX , openMosix , Kerrighed , OpenSSI  är fullfjädrade klustermiljöer inbyggda i kärnan som automatiskt fördelar uppgifter mellan homogena noder. OpenSSI, openMosix och Kerrighed skapar en enda operativsystemmiljö mellan noder.

Klustermekanismer är planerade att byggas in i DragonFly BSD -kärnan , som splittrades 2003 från FreeBSD 4.8. I framtiden finns det också planer på att göra det till en enda operativsystemmiljö .

Microsoft släpper HA-klustret för Windows - operativsystemet . Det finns en åsikt om att den skapades på grundval av Digital Equipment Corporation -teknologi , stöder upp till 16 (sedan 2010) noder i ett kluster, såväl som drift i ett SAN (Storage Area Network). En uppsättning API:er används för att stödja distribuerade applikationer, det finns tomrum för att arbeta med program som inte involverar arbete i ett kluster.

Windows Compute Cluster Server 2003 (CCS), som släpptes i juni 2006, är designad för avancerade applikationer som kräver klusterberäkning. Utgåvan är utformad för att distribueras på flera datorer som är klustrade för att uppnå superdatorkraft. Varje kluster på Windows Compute Cluster Server består av en eller flera huvudmaskiner som distribuerar jobb och flera slavmaskiner som gör huvudarbetet. I november 2008 introducerades Windows HPC Server 2008 för att ersätta Windows Compute Cluster Server 2003.

Novell Open Enterprise Server (OES) - nätverksoperativsystem, " fusion " av Novell NetWare och SUSE Linux Enterprise Server ; kapabla att skapa blandade kluster, bland annat, där resurser kan misslyckas från en NetWare-server till en Linux-server och vice versa.

Anteckningar

  1. Linux High Availability Middleware, Del 1: Heartbeat and the Apache Web Server . Hämtad 14 mars 2011. Arkiverad från originalet 25 maj 2015.
  2. TOP50 Superdatorer (otillgänglig länk) . Hämtad 2 maj 2019. Arkiverad från originalet 3 juni 2018. 

Se även

Länkar