Cele mai importante beneficii ale unui cluster de computere

Cele mai importante beneficii ale unui cluster de computere

0 Shares
0
0
0

Un cluster de computere este un set de computere conectate, care functioneaza impreuna astfel incat, in multe aspecte, sa poata fi privite ca un singur sistem. Spre deosebire de computerele cu retea, clusterele de calculatoare au fiecare nod setat sa efectueze aceeasi sarcina, controlata si programata de software.

Componentele unui cluster sunt de obicei conectate intre ele prin retele locale rapide, fiecare nod (computer utilizat ca server) ruland propria instanta a unui sistem de operare. In majoritatea circumstantelor, toate nodurile utilizeaza acelasi hardware si acelasi sistem de operare, desi in unele configurari (de exemplu, folosind resurse de aplicatii Open Source Cluster (OSCAR)), pot fi utilizate cu fiecare computer sau hardware diferit.

Clusterele sunt de obicei implementate pentru a imbunatati performanta si disponibilitatea unui singur computer, in timp ce sunt de obicei mult mai rentabile decat computerele individuale cu viteza sau disponibilitate comparabile.

Clusterele de computere au aparut ca urmare a convergentei unui numar de tendinte de calcul, inclusiv disponibilitatea microprocesoarelor cu costuri reduse, retelelor de mare viteza si software-ului pentru computere distribuite de inalta performanta. , variind de la clustere de afaceri mici cu un minim de noduri pana la unele dintre cele mai rapide supercalculatoare din lume, cum ar fi IBM Sequoia. Inainte de aparitia clusterelor, au fost utilizate mainframe-uri tolerante la erori cu o singura unitate cu redundanta modulara; dar costul initial mai redus al clusterelor si viteza crescuta a structurii retelei au favorizat adoptarea clusterelor.

Spre deosebire de mainframe-urile de mare fiabilitate, clusterele sunt mai ieftin de intretinut si in ceea ce priveste un eventual upgrade, dar au si o complexitate crescuta in gestionarea erorilor, deoarece in clustere, modurile de eroare nu sunt opace programelor care ruleaza.

Notiuni de baza

Dorinta de a obtine mai multa putere de calcul si o fiabilitate mai buna prin orchestrarea unui numar de computere comerciale ieftine de pe piata, a dat nastere unei varietati de arhitecturi si configuratii.

Abordarea prin clusterizare a computerelor conecteaza de obicei (dar nu intotdeauna) o serie de noduri de calcul disponibile (de ex. calculatoare personale utilizate ca servere) printr-o retea locala rapida. Activitatile nodurilor de calcul sunt orchestrate prin „clustering middleware”, un strat software care se afla deasupra nodurilor si permite utilizatorilor sa trateze clusterul ca pe o unitate de calcul coeziva, de ex. printr-un concept unic de imagine de sistem.

Clusterul computerizat se bazeaza pe o abordare de gestionare centralizata care face ca nodurile sa fie disponibile ca servere partajate. Este diferit de alte abordari, cum ar fi peer to peer sau grid computing, care folosesc, de asemenea, multe noduri, dar cu o natura mult mai distribuita.

Un cluster de calculatoare poate fi un sistem simplu cu doua noduri care conecteaza doar doua computere personale sau poate fi un supercomputer foarte rapid. O abordare de baza pentru construirea unui cluster este cea a unui cluster Beowulf, care poate fi construit cu cateva calculatoare personale pentru a produce o alternativa rentabila la calculul traditional de inalta performanta. Un proiect timpuriu care a aratat viabilitatea conceptului a fost computerul Stone Souper, cu 133 de noduri.  Dezvoltatorii au folosit Linux, setul de instrumente Parallel Virtual Machine si biblioteca de interfata pentru trecerea mesajelor pentru a obtine performante ridicate la un cost relativ scazut.

Desi un cluster poate consta din doar cateva computere personale conectate printr-o retea simpla, arhitectura clusterului poate fi utilizata si pentru a atinge niveluri foarte ridicate de performanta. Lista semestriala a organizatiei TOP500 cu cele mai rapide 500 de supercalculatoare include adesea multe clustere, de ex. cea mai rapida masina din lume in 2011 a fost computerul K care are o memorie distribuita si o arhitectura de tip cluster.

Istorie

Greg Pfister a declarat ca primele clustere nu au fost inventate de vreun furnizor specific, ci de clienti care nu puteau sa-si desfasoare toata munca pe un singur computer sau care aveau nevoie de o copie de rezerva. Pfister estimeaza inceputul clusterelor in anii 1960. Baza formala de inginerie a calculului cluster ca mijloc de a face lucrari paralele de orice fel, a fost inventata de Gene Amdahl de la IBM, care in 1967 a publicat ceea ce a ajuns sa fie considerata lucrarea fundamentala privind prelucrarea paralela: Legea lui Amdahl.

Istoria clusterelor de computere timpurii este legata mai mult sau mai putin direct de istoria retelelor timpurii, intrucat una dintre motivatiile principale pentru dezvoltarea unei retele a fost legarea resurselor de calcul, creand un cluster de computere de facto.

Primul sistem de productie conceput ca un cluster a fost Burroughs B5700, la mijlocul anilor 1960. Acest lucru a permis conectarea a pana la patru computere, fiecare cu unul sau doua procesoare, pentru a fi strans cuplate la un subsistem comun de stocare pe disc, pentru a distribui volumul de lucru. Spre deosebire de sistemele multiprocesor standard, fiecare computer putea fi repornit fara a perturba functionarea generala.

Primul produs comercial de clusterizare cuplat, a fost sistemul „Attached Resource Computer” (ARC) al Datapoint Corporation, dezvoltat in 1977 si care utilizeaza ARCnet ca interfata de cluster. Clusterizarea in sine nu a luat amploare pana cand Digital Equipment Corporation a lansat produsul VAXcluster in 1984 pentru sistemul de operare VAX / VMS (denumit acum OpenVMS). Produsele ARC si VAXcluster nu au acceptat doar calcul paralel, ci si sisteme de fisiere partajate si dispozitive periferice. Ideea a fost de a oferi avantajele procesarii paralele, mentinand in acelasi timp fiabilitatea si unicitatea datelor. Alte doua clustere comerciale remarcabile timpurii au fost Tandem Himalayan (un produs cu disponibilitate ridicata in jurul anului 1994) si IBM S / 390 Parallel Sysplex (tot in jurul anului 1994, in principal pentru uz comercial).

In acelasi interval de timp, in timp ce clusterele de computere foloseau paralelismul in afara computerului intr-o retea de marfa, supercomputerele au inceput sa le foloseasca in acelasi computer. Dupa succesul CDC 6600 in 1964, Cray 1 a fost livrat in 1976 si a introdus paralelism intern prin procesare vectoriala. In timp ce supercomputerele timpurii excludeau clusterele si se bazau pe memoria partajata, in timp, unele dintre cele mai rapide supercalculatoare (de exemplu computerul K) s-au bazat pe arhitecturi de cluster.

connecting-dots-background-network-communication-design

Beneficii

Clusterele sunt proiectate in primul rand avand in vedere performanta, dar instalatiile se bazeaza pe multi alti factori. Toleranta la erori (capacitatea unui sistem de a continua sa lucreze cu un nod care functioneaza defectuos) permite scalabilitatea si, in situatii de inalta performanta, frecventa redusa a rutinelor de intretinere, consolidarea resurselor (de exemplu, RAID) si gestionarea centralizata. Avantajele includ activarea recuperarii datelor in caz de dezastru si asigurarea procesarii paralele a datelor precum si o capacitate ridicata de procesare.

In ceea ce priveste scalabilitatea, clusterele ofera acest lucru in capacitatea lor de a adauga noduri pe orizontala. Aceasta inseamna ca pot fi adaugate mai multe computere la cluster, pentru a-i imbunatati performanta, redundanta si toleranta la erori. Aceasta poate fi o solutie ieftina pentru un cluster cu performante superioare, comparativ cu marirea unui singur nod din cluster. Aceasta proprietate a clusterelor de calculatoare poate permite unor sarcini de calcul mai mari sa fie executate de un numar mai mare de computere cu performante mai mici.

La adaugarea unui nou nod intr-un cluster, fiabilitatea creste deoarece intregul cluster nu trebuie eliminat. Un singur nod poate fi dat jos pentru intretinere, in timp ce restul clusterului preia sarcina acelui nod individual.

Daca aveti un numar mare de computere grupate impreuna, acest lucru se preteaza la utilizarea sistemelor de fisiere distribuite si RAID, ambele putand creste fiabilitatea si viteza unui cluster.

Atribute ale grupurilor

  • Clusterele de calculatoare pot fi configurate pentru diferite scopuri, de la nevoi comerciale de uz general, cum ar fi suport pentru servicii web, pana la calcule stiintifice intensive in calcul. In ambele cazuri, clusterul poate utiliza o abordare de inalta disponibilitate. Retineti ca atributele descrise mai jos nu sunt exclusive si un „cluster de calculatoare” poate utiliza, de asemenea, o abordare de inalta disponibilitate etc.
  • Clusterele de „echilibrare a incarcaturii” sunt configuratii in care nodurile de cluster impart sarcina de calcul pentru a oferi o performanta generala mai buna. De exemplu, un cluster de server web poate atribui interogari diferite unor noduri diferite, astfel incat timpul de raspuns general va fi optimizat. Cu toate acestea, abordarile de echilibrare a sarcinii pot diferi semnificativ intre aplicatii, de ex. un cluster de inalta performanta utilizat pentru calcule stiintifice ar echilibra incarcarea cu diferiti algoritmi dintr-un cluster web-server, care poate folosi doar o metoda simpla round-robin, prin atribuirea fiecarei cereri noi unui nod diferit.
  • Clusterele de computere sunt folosite in scopuri intensive de calcul, mai degraba decat pentru gestionarea operatiunilor orientate spre IO, cum ar fi serviciile web sau bazele de date. De exemplu, un cluster de computere ar putea suporta simulari de calcul ale accidentelor vehiculelor sau ale vremii. Clusterele de calculatoare foarte bine cuplate sunt proiectate pentru lucrari care aproape necesita “supercomputere”.
  • „Clusterele cu disponibilitate ridicata” (cunoscute si sub denumirea de clustere de failover sau clustere HA) imbunatatesc disponibilitatea abordarii clusterului. Acestea functioneaza avand noduri redundante, care sunt apoi utilizate pentru a furniza servicii atunci cand componentele sistemului nu reusesc. Implementarile de cluster HA incearca sa utilizeze redundanta componentelor clusterului pentru a elimina punctele unice de esec. Exista implementari comerciale ale clusterelor de inalta disponibilitate pentru multe sisteme de operare. Proiectul Linux-HA este un pachet software HA utilizat in mod obisnuit pentru sistemul de operare Linux.
0 Shares
You May Also Like