O klasterima

Uopćeno gledajući klaster je skupina nezavisno djelujućih elemenata povezanih nekim medijem u cilju koordiniranog i kooperativnog ponašanja.

Računalni klaster nije precizno definiran pojam pa se čak i skup nezavisnih računala može smatrati klasterom ukoliko postoji neki minimalan vid i stupanj integracije.

 

Ipak, računalnim klasterom obično smatramo sustav računala umreženih korištenjem brze lokalne mreže (LAN) pomoću koje računala međusobno komuniciraju. Korištenje specifične programske podrške daje visok stupanj integracije računala, omogućava njihov koordinirani zajednički rad i pretvara ih efektivno (u mjeri u kojoj je to fizički moguće) u jedinstven višeprocesorski sustav. Neizbježna heterogenost arhitekture te korištenje distribuirane (umjesto podjeljene) memorije jedino je po čemu se klaster razlikuje od jedinstvenog višeprocesorskog sustava.

 

Ciljevi povezivanja računala u klastere su razni, a najčešće se računala povezuju s ciljem osiguravanja veće pouzdanosti ili većih performansi u odnosu na pojedino računalo. Klasteri koji omogućavaju veću pouzdanost nazivaju se High Availability(HA) klasterima, a oni čiji su cilj velike računalne performanse High Performance Computing (HPC) klasterima. Računalni klaster Isabella spada u drugu navedenu skupinu klastera, odnosno Beowulf HPC klastere.

Beowulf

Beowulf je naziv za koncept HPC klastera koji je 1994. godine razvijen u NASA Goddard Space Flight centru. Tada je korištenjem 16 komercijalno dobavljivih računala baziranih na Intel 100MHz 486 procesorima, povezanim dvostrukim 10 Mbps Ethernet LAN-om te pogonjenih Linux operativnim sustavom i PVM (Paralel Virtual Machine) bibliotekama izgrađen klaster kojim su demonstrirane primjenjivost, performanse i financijska isplativost Beowulf sustava u znanstvenim računalnim aplikacijama.

Ovakav sustav pokazao se u mnogim aplikacijama usporediv s dotadašnjim konceptima razvoja superračunala koja uglavnom koriste pristup u kojem se unutar istog fizičkog računala za obradu koristi više međusobno povezanih i paralelnih procesora (simetričnih višeprocesorskih sustava) koji međusobno dijele ostale resurse računala pa tako i komuniciraju korištenjem zajedničke dijeljene memorije (shared memory). Za razliku od ovog pristupa klaster koristi koncept labavog povezivanja računala na kojima se odvijaju procesi koji međusobno komuniciraju korištenjem raznih biblioteka za prijenos poruka  te na taj način razvijaju koncept distribuirane memorije (distributed memory).

Da bi koncept distribuirane memorije dobro funkcionirao uobičajeno je da se za prijenos poruka, uz lokalnu mrežu koja se koristi za prijenos podataka sa zajedničkog  podatkovnog sustava, koristi i posebno dodijeljena lokalna mreža kojom su povezana računala - računalni nodovi u klasteru. Ova mreža osim što omogućava prijenos velike količine podataka mora osiguravati i male latencije u prijenosu podataka (manje od 1 ms) pa se stoga koriste specifične izvedbe kao što su Myrinet ili MVIA.

Zahvaljujući Beowulf konceptu kojim je uz korištenje lako dobavljivih, odnosno komercijalnih i besplatnih komponenti (poput osobnih računala, Linux operativnog saustava i drugih) na jednostavan način moguće brzo izgraditi računalni klaster, u svijetu je ubrzo izgrađen velik broj sličnih klastera koji djeluju u znanstvenim i akademskim sredinama.

S obzirom da je besplatan, prilagodljiv i ima otvoreni kod, Linux je ubrzo postao najprihvatljiviji operativni sustav za izgradnju klastera. Na osnovi najraširenijih distribucija Linuxa – Red Hat i Debian izgrađeni su gotovi paketi za izgradnju klastera od kojih je jedan - NPACI Rocks Clustering Toolkit - korišten i u izvedbi računalnog klastera Isabella.

Rocks

Distribucija klastera NPACI Rocks sadrži sve bitne programske komponenete za ostvarenje klasterskog sustava. Pored operacijskog sustava (RedHat Enterprise Linux 3.0) Rocks distribucija sadrži i ostale elemente koji omogućavaju izvedbu klastera:
 

  • biblioteke za prijenos poruka koje omogućavaju distribuirano/paralelno izvođenje aplikacija - MPI, PVM, LAM
  • sustav za raspodjelu resursa (scheduling) i raspoređivanje procesa (batching) - SUN Grid Engine 5.3
  • paralelni datotečni sustav, koji je namjenjen brzoj pohrani velike količine podataka - PVFS
  • sustav za nadzor klastera - Ganglia
  • sustav za brzu instalaciju i izvedbu - Anaconda
  • bazu podataka u kojoj se smještaju svi podaci nužni za rad i konfiguraciju klastera
  • mrežne servise nužne za funkcioniranje klastera (NTP, 411, NFS, i druge).

RedHat Linux na kojem je bazirana Rocks distribucija zasnovan je na RPM (Redhat Package Manager) paketnom sustavu.

Većina znanstvenih aplikacija distribuira se u RPM formi, a druge programske pakete moguće je (relativno jednostavno) pretvoriti u RPM paket. Za pakete koji traže dodatnu prilagodbu našim potrebama, sustav ROCKS omogućuje definiranje parametara za instalaciju pojedinih paketa, te dodavanje skripti koje se izršavaju prije i poslije instalacije pojedinog paketa (npr. podešavanje konfiguracijskih fileova tog paketa našim potrebama).

Administracija sustava

Administracija sustava uvelike je olakšana programskim paketima koje donosi Rocks clustering Toolkit.

Pregled nad instaliranim programima i nadzor rada čvorova vrši se centralizirano, s pristupnog računala. Jednom jedinom naredbom moguće je potpuno reinstalirati jedan ili više radnih čvorova, koji u roku nekoliko minuta postaju spremni za rad.

Dodavanje novog čvora (i njegovo instaliranje) također je vrlo jednostavno - dovoljno je pokrenuti skriptu na pristupnom računalu koja će na DHCP zahtjev prilikom podizanja računala, informaciju o njegovoj MAC adresi dodati u bazu podataka, te automatski podesiti parametre mrežnih servisa na pristupnom računalu.

Administriranje korisničkih računa na pristupnom računalu vrši se primjenom skripte koja automatski ažurira bazu korisnika, kao i NFS exporte korisničkih direktorija. Takav automatizam omogućuje da se promjene korisničkih računa na pristupnom računalu propagiraju i postanu aktualne na svim računalnim čvorovima.