Cluster (grup de calculatoare)

Cluster  - un grup de calculatoare unite prin canale de comunicare de mare viteză, reprezentând o singură resursă hardware din punctul de vedere al utilizatorului. Un cluster este o colecție slab cuplată de mai multe sisteme de calcul care lucrează împreună pentru a realiza aplicații comune și apar pentru utilizator ca un singur sistem. Unul dintre primii arhitecți ai tehnologiei cluster, Gregory Pfister , a definit un cluster după cum urmează: „ Un cluster  este un tip de sistem paralel sau distribuit care:

  1. constă din mai multe calculatoare interconectate ;
  2. utilizat ca o resursă computerizată unică, unificată.

De obicei, se disting următoarele tipuri principale de clustere:

  1. clustere de failover (clustere de înaltă disponibilitate, HA, clustere de înaltă disponibilitate)
  2. Clustere de echilibrare a sarcinii
  3. clustere de calcul (clustere de calcul de înaltă performanță, HPC)
  4. sisteme de calcul distribuite

Clasificarea clusterelor

Clustere de înaltă disponibilitate

Acestea sunt prescurtate ca HA ( High Availability  ) .  Creat pentru a asigura disponibilitatea ridicată a serviciului oferit de cluster. Numărul redundant de noduri incluse în cluster garantează furnizarea serviciului în cazul unei defecțiuni a unuia sau mai multor servere. Numărul tipic de noduri este două, care este numărul minim care are ca rezultat o disponibilitate crescută. Au fost create o mulțime de soluții software pentru construirea unor astfel de clustere.

Clusterele și sistemele de failover sunt împărțite în 3 tipuri principale:

O anumită tehnologie poate combina aceste principii în orice combinație. De exemplu, Linux-HA acceptă un mod de configurare de preluare  , în care cererile critice sunt procesate de către toate nodurile împreună, în timp ce altele sunt distribuite uniform între ele. [unu]

Clustere de echilibrare a sarcinii de rețea (NLB)

Principiul funcționării lor se bazează pe distribuirea cererilor prin unul sau mai multe noduri de intrare, care le redirecționează pentru procesare către alte noduri de calcul. Scopul inițial al unui astfel de cluster este performanța, cu toate acestea, adesea folosesc și metode care cresc fiabilitatea. Modelele similare sunt numite ferme de servere . Software-ul (software-ul) poate fi fie comercial ( OpenVMS , MOSIX , Platform LSF HPC, Solaris Cluster , Moab Cluster Suite, Maui Cluster Scheduler ) sau gratuit ( OpenMosix , Sun Grid Engine , Linux Virtual Server ).

Clustere de calcul

Clusterele sunt utilizate în scopuri de calcul, în special în cercetarea științifică. Pentru clusterele de calcul, indicatorii semnificativi sunt performanța ridicată a procesorului în operațiunile pe numere în virgulă mobilă ( flops ) și latența scăzută a rețelei de unificare și mai puțin semnificative - viteza operațiunilor I/O, care este mai importantă pentru bazele de date și serviciile web . Clusterele de calcul fac posibilă reducerea timpului de calcul, în comparație cu un singur computer, prin împărțirea sarcinii în ramuri de execuție paralele care fac schimb de date printr-o rețea de conectare. O configurație tipică este un set de computere construite din componente disponibile public, care rulează sistemul de operare Linux și conectate prin Ethernet , Myrinet , InfiniBand sau alte rețele relativ ieftine. Un astfel de sistem este denumit în mod obișnuit cluster Beowulf . Clusterele de înaltă performanță sunt deosebit de distinse (Notate prin abrevierea în engleză HPC Cluster  - High-performance computing cluster ). O listă cu cele mai puternice computere de înaltă performanță (poate fi denumită și prin abrevierea engleză HPC ) poate fi găsită în clasamentul mondial TOP500 . În Rusia, există o evaluare a celor mai puternice computere din CSI. [2]

Sisteme de calcul distribuite ( grilă )

Astfel de sisteme nu sunt de obicei considerate clustere, dar principiile lor sunt în mare măsură similare cu tehnologia clusterelor. Se mai numesc si sisteme grid . Principala diferență este disponibilitatea scăzută a fiecărui nod, adică incapacitatea de a garanta funcționarea acestuia la un moment dat în timp (nodurile se conectează și se deconectează în timpul funcționării), astfel încât sarcina trebuie împărțită într-un număr de procese independente. Un astfel de sistem, spre deosebire de clustere, nu arată ca un singur computer, ci servește ca mijloc simplificat de distribuire a calculelor. Instabilitatea configurației, în acest caz, este compensată de un număr mare de noduri.

Un cluster de servere organizate programatic

Cluster de servere (în tehnologia informației ) - un grup de servere care sunt combinate logic, capabile să proceseze cereri identice și utilizate ca o singură resursă. Cel mai adesea, serverele sunt grupate printr-o rețea locală. Un grup de servere este mai fiabil și are performanțe mai bune decât un singur server. Fuzionarea serverelor într-o singură resursă are loc la nivelul protocoalelor software.

Spre deosebire de un cluster hardware de computere, clusterele organizate pe software necesită:

Exemple de soluții de cluster software Aplicație

În cele mai multe cazuri, clusterele de servere funcționează pe computere separate. Acest lucru vă permite să îmbunătățiți performanța prin distribuirea sarcinii resurselor hardware și oferă toleranță la erori la nivel de hardware.

Totuși, principiul organizării unui cluster de servere (la nivelul unui protocol software) vă permite să rulați mai multe servere software pe un server hardware. O astfel de utilizare poate fi necesară:

  • la dezvoltarea și testarea soluțiilor de cluster;
  • dacă este necesar, asigurați disponibilitatea cluster-ului doar ținând cont de schimbările frecvente în configurația serverelor care sunt membri ai clusterului, necesitând repornirea acestora (reboot-ul se efectuează unul câte unul) în condiții de resurse hardware limitate.

Clustere de performanță de top

De două ori pe an, organizația TOP500 publică o listă cu cele mai productive cinci sute de sisteme de calcul din lume, printre care clusterele predomină adesea în ultimii ani. Cel mai rapid cluster este IBM Roadrunner ( Los Alamos National Laboratory , SUA , creat în 2008), performanța sa maximă (în iulie 2008) este de 1.026 Petaflops . Cel mai rapid sistem din Europa (din iulie 2008 ) este un supercomputer, BlueGene /P este situat în Germania , în centrul de cercetare al orașului Jülich , Renania de Nord-Westfalia , performanța maximă atinsă este de 167,3 Teraflopi .

Sistemele cluster ocupă un loc demn în lista celor mai rapide, în timp ce depășesc semnificativ supercalculatoarele în preț. Din iulie 2008, locul 7 în clasamentul TOP500 este clusterul SGI Altix ICE 8200 ( Chippewa Falls , Wisconsin , SUA).

O alternativă relativ ieftină la supercomputere sunt clusterele bazate pe conceptul Beowulf , care sunt construite din computere obișnuite ieftine bazate pe software liber. Un exemplu practic al unui astfel de sistem este Stone Soupercomputer de la Laboratorul Național Oak Ridge ( Tennessee , SUA, 1997).

Cel mai mare cluster privat (din 1000 de procesoare ) a fost construit de John Koza.

Istorie

Istoria creării clusterelor este indisolubil legată de evoluțiile timpurii din domeniul rețelelor de calculatoare. Unul dintre motivele apariției comunicării de mare viteză între computere a fost speranța de a pune în comun resursele de calcul. La începutul anilor 1970, grupul de protocol TCP/IP și laboratorul Xerox PARC au stabilit standarde pentru rețea. A apărut și sistemul de operare Hydra pentru calculatoarele DEC PDP-11 , clusterul creat pe această bază a fost numit C.mpp ( Pittsburgh , Pennsylvania , SUA, 1971). Cu toate acestea, abia în jurul anului 1983 au fost dezvoltate mecanisme pentru a partaja cu ușurință sarcini și fișiere într-o rețea, mai ales de la SunOS (sistemul de operare bazat pe BSD de la Sun Microsystems ).

Primul proiect de cluster comercial a fost ARCNet , creat de Datapoint în 1977. Nu a devenit profitabilă și, prin urmare, construcția clusterului nu s-a dezvoltat până în 1984, când DEC și-a construit VAXcluster -ul bazat pe sistemul de operare VAX/VMS . ARCNet și VAXcluster au fost concepute nu numai pentru calcularea în comun, ci și pentru partajarea sistemului de fișiere și a perifericelor, ținând cont de păstrarea integrității și neambiguității datelor . VAXCluster (denumit acum VMSCluster ) este o componentă integrală a sistemului de operare HP OpenVMS folosind procesoare DEC Alpha și Itanium .

Alte două produse de cluster apreciate timpurii includ Tandem Hymalaya (1994, clasa HA ) și IBM S/390 Parallel Sysplex (1994).

Istoria creării clusterelor din computerele personale obișnuite datorează mult proiectului Parallel Virtual Machine . În 1989, acest software pentru conectarea computerelor într-un supercomputer virtual a deschis posibilitatea de a crea clustere instantanee. Ca urmare, performanța totală a tuturor clusterelor ieftine create la acel moment a depășit suma capacităților sistemelor comerciale „serioase”.

Crearea clusterelor bazate pe calculatoare personale ieftine conectate printr-o rețea de transmisie a datelor a continuat în 1993 de către Agenția Aerospațială Americană NASA , apoi în 1995 au fost dezvoltate clustere Beowulf , special concepute pe baza acestui principiu. Succesul unor astfel de sisteme a stimulat dezvoltarea rețelelor grid , care au existat încă de la începuturile UNIX .

Instrumente software

Un instrument utilizat pe scară largă pentru organizarea interacțiunii între servere este biblioteca MPI care acceptă limbajele C și Fortran . Este folosit, de exemplu, în programul de simulare a vremii MM5 .

Sistemul de operare Solaris furnizează software-ul Solaris Cluster , care este utilizat pentru a oferi disponibilitate ridicată și failover pentru serverele care rulează Solaris. Există o implementare open source pentru OpenSolaris numită OpenSolaris HA Cluster .

Mai multe programe sunt populare printre utilizatorii GNU/Linux :

  • distcc , MPICH , etc sunt instrumente specializate pentru paralelizarea muncii programelor. distcc permite compilarea paralelă în GNU Compiler Collection .
  • Linux Virtual Server , Linux-HA  - software nod pentru distribuirea cererilor între serverele de calcul.
  • MOSIX , openMosix , Kerrighed , OpenSSI  sunt medii de cluster cu funcții complete încorporate în nucleu care distribuie automat sarcinile între nodurile omogene. OpenSSI, openMosix și Kerrighed creează un singur mediu de sistem de operare între noduri.

Mecanismele de cluster sunt planificate să fie încorporate în nucleul DragonFly BSD , care s-a bifurcat în 2003 de la FreeBSD 4.8. În viitor, există, de asemenea, planuri de a-l transforma într- un singur mediu de sistem de operare .

Microsoft lansează clusterul HA pentru sistemul de operare Windows . Există o opinie că a fost creat pe baza tehnologiei Digital Equipment Corporation , acceptă până la 16 (din 2010) noduri într-un cluster, precum și funcționarea într-un SAN (Storage Area Network). Un set de API-uri este folosit pentru a susține aplicații distribuite, există spații libere pentru lucrul cu programe care nu implică lucrul într-un cluster.

Windows Compute Cluster Server 2003 (CCS), lansat în iunie 2006, este proiectat pentru aplicații high-end care necesită calcul în cluster. Ediția este concepută pentru a fi implementată pe mai multe computere care sunt grupate pentru a obține puterea de supercomputare. Fiecare cluster de pe Windows Compute Cluster Server este format din una sau mai multe mașini master care distribuie joburi și mai multe mașini slave care efectuează activitatea principală. În noiembrie 2008, Windows HPC Server 2008 a fost introdus pentru a înlocui Windows Compute Cluster Server 2003.

Novell Open Enterprise Server (OES) - sistem de operare în rețea, „ fuziune ” dintre Novell NetWare și SUSE Linux Enterprise Server ; capabile să creeze clustere mixte, printre altele, în care resursele pot trece de la un server NetWare la un server Linux și invers.

Note

  1. Linux High Availability Middleware, Partea 1: Heartbeat și Apache Web Server . Preluat la 14 martie 2011. Arhivat din original la 25 mai 2015.
  2. Supercomputere TOP50 (link inaccesibil) . Preluat la 2 mai 2019. Arhivat din original la 3 iunie 2018. 

Vezi și

Link -uri