Cluster
Računalni cluster (eng. grozd, skupina) je skup usko povezanih računala koja rade zajedno tako da se mogu gledati kao jedno računalo. Dijelovi clustera su obično, ali ne uvijek, spojeni zajedno brzom lokalnom mrežom (LAN). Clusteri se koriste kako bi povećali performanse i/ili dostupnost iznad one kod jednog računala, dok su, u principu, jeftiniji u usporedbi s jednim računalom istih karakteristika.
Vrste cluster-a
High-availability (HA) clusters (engl. clusteri velike dostupnosti)
Clusteri velike dostupnosti se koriste se prvenstveno kako bi poboljšali dostupnost usluga koje cluster pruža. Rade na principu ponavljajućih čvorova, koji onda pružaju usluge kada zakažu komponente. Najčešća veličina HA cluster-a su 2 čvora, što je minimum za ponovljivost. Implementacijom HA clustera pokušava se eliminirati pojedinačne točke kvarova upravljanjem ponavljanjem. Postoji mnogo komercijalnih implementacija HA clustera za mnoge operacijske sustave. Linux-HA projekt je najčešće korišten HA paket slobodnog softwarea, a koristi Linux OS.
Clusteri za raspoređivanje opterećenja
Load-balancing clusteri funkcioniraju tako da svo opterećenje dolazi kroz jedan ili više front endova, te se tada raspoređuje na više back end-servera. Iako se primarno koriste kako bi poboljšali performanse, obično također uključuju i veliku dostupnost (High-availability) i sposobnosti koje proizlaze iz nje. Takav se cluster ponekad naziva serverska farma. Postoji mnogo komercijalnih Load balancing clustera uključujući Platform LSF HPC, Sun Grid Engine, Moab Cluster Suite i Maui Cluster Scheduler. Linux Virtual Server projekt nudi nam uobičajeni softverski paket za LinuxOS.
High-performance clusters (HPC)(eng. clusteri visokih performansi)
High-performance clusteri služe prvenstveno za povećavanje performansi raspoređivanjem računalnih zadataka na više raznih čvorova u clusteru, i najčešće su korišteni u znastvene svrhe. Najpopularnija HPC implementatcija je cluster s čvorovima kojeg pokreće Linux OS i slobodan software u korišten svrhu postizanja paralelizma. Ovakva konfiguracija se često naziva Beowulf cluster. Takvi clusteri obično vrste posebne programe dizajnirane da koriste mogućnosti paralelizma HPC clustera. Mnoge takve aplikacije koriste libraryje (eng. library-knjižnica) poput MPI koja je napisana posebno za izvršavanje znastvenih programa na HPC-ima.
HPC-i su optimizirani za rad koji zahtjeva komunikaciju između poslova ili procesa koji se izvršavaju na odvojenim računalnim čvorovima. Ovo uključuje izračune gdje međurezultati izračuna jednog čvora utječu na račun drugih čvorova.
Grid računarstvo
Grid računarstvo ili grid clusteri je tehnologija usko povezana s cluster računarstvom. Glavna razlika između gridova i konvencionalnih clustera je to što gridovi obuhvaćaju skup računala koja ne vjeruju u potpunosti jedan drugom, i stoga rade manje kao jedno računalo. Također, gridovi obično podržavaju više heterogene skupove nego što su oni uobičajeni u clusterima.
Grid računarstvo namjenjeno je za rad s opterećenjima koja se sastoje od više nezavisnih poslova (eng. jobs) i paketa, koji ne trebaju razmjenu podataka jedni između drugih tokom procesa izračuna. Gridovi služe za upravljanje poslovima na pojedinim računalima koji se izvršavaju nezavisno o ostatku grid-clustera. Resursi poput kapaciteta za pohranu mogu biti dijeljeni na svim čvorovima, ali međurezultati ne utječu na izvršavanje poslova na odvojenim čvorovima.
Implementacija HPC-a
Polugodišnja lista 500 najjačih računala, organizacije TOP500, obično sadržava mnogo clustera. TOP500 je suradnja Sveučilišta u Mannheimu, Sveučilišta u Tennesseeju, i Nacionalnog računalnog centra za istraživanje energije (National Energy Research Scientific Computing Center) na Lawrence Berkeley nacionalnom laboratoriju. Od Rujna 2006., najjače superračunalo je IBM BlueGene/L system Ureda za energiju (Department of Energy) s performansom od 280.6 TFlops (Terraflops = Terra floating point operators per second - 1 000 000000 000000 operacija s pomičnim zarezom u sekundi).
Korištenje clustera može dati velike performanse po manjoj cijeni. System X supercomputer na Virginia Tech, 28. po jačini računalo na Zemlji od Lipnja 2006[1], je 12.25 TFlops-a brz cluster sastavljen od 1100 Apple XServe G5 2.3 GHz-nih dvoprocesorskih računala (4 GB RAM, 80 GB SATA HD) koje pokreće Mac OS X a koriste InfiniBand interkonekciju. Cluster se u početku sastojao od G5 Power Macova, korištenih tako da smanje zauzeće prostora. Sveukupna cijena prethodnog Power Mac sistema bila je 5.2 milijuna dolara, što je desetina cijene sporijeg mainframe superračunala.
Glavna ideja Beowulf clustera je korištenje komercijalno dostupnih računala u svrhu izgradnje jeftine alternative tradicionalnim superračunalima. Jedan od projekata koji je ovo potpuno iskoristio je Stone Soupercomputer.
Ipak, treba naznačiti da FLOPs-i (floating point operations per second), nisu uvijek siguran pokazatelje računalne brzine. Clusteri mogu imati mnogo FLOPs-a, a biti u nemogućnosti (brzo) pristupiti svim podacima kao što je slučaj s pojedinačnim računalom. Stoga su clusteri idealni za paralelno procesiranje, ali mnogo slabiji nego superračunala kod ne-paralelnog procesiranja.
SETI@home projekt je vjerojatno najrašireniji raspodjeljeni cluster koji postoji. Koristi približno 3 milijuna kućnih računala u cijelom svijetu kako bi analizirao podatke izradioteleskopa Arecibo , u potrazi za izvanzemaljskom inteligencijom.
JavaSpaces je standard Sun Microsystemsa koji omogućava računala cluster preko distribuirane dijeljene memorije.
Povijest clustera
Povijest cluster računarstva najbolje opisuje fusnota iz knjige Grega Pfistera In Search of Clusters: "Gotovo svaka DEC-ova izjava za tisak kaže DEC, koji je izumio clustere.... Ni IBM ih nije izmislio. Korisnici du izmislili clustere, čim više nisu mogli sav svoj posao strpati na jedno računalo, ili su trebali sigurnosnu kopiju. Datum ovog događaja je nepoznat, ali ne bih se iznenadio da su to 1960-e ili čak kasne 1950-e."
Formalnu osnovu cluster računarstva kao sredstva za vršenje paralelnog rada bilo kakve vrste je vjerojatno izumio Gene Amdahl iz IBM-a, koji je 1967 izdao ono što se kasnije smatralo seminarskim radom o paralelnom procesiranju: Amdahlov zakon (Amdahl's Law). On matematički opisuje ubrzanje koje se može očekivati od paraleliziranja bilo kojeg - inače serijski izvršavanog - zadatka izvršavanog na paralelnoj arhitekturi. Ovaj je članak definirao inžinjersku osnovu i multiprocesiranja i clustera, gdje je primarna razlika dostupnost inter-procesorske komunikacije "unutar" računala (npr. interna sabirnica i mreža) ili "van" računala na commodity(eng. commodity = ugodnost) mreži (npr. internet).
Kao posljedica svega ovoga, povijest ranog clusterskog računarstva je više-manje vezana uz ranu povijest mreža, pošto je jedna od primarnih motivacija za razvoj mreža bila povezivanje računalnih resursa, tako zapravo stvarajući računalne clustere. Packet switching mreže zamišljene su od strane RAND korporacije 1962. Koristeći ovu zamisao, ARPANET projekt uspio je 1969. stvoriti ono što je vjerojatno bio prvi računalni cluster commodity mreže koji je povezivao 4 različita računalna centra (od kojih je svaki, na neki način, cluster, ali vjerojatno ne i commodity cluster). ARPANET projekt je prerastao u Internet -- mrežu koja bi se mogla nazvati "majkom svih clustera" (kao unija gotovo svih računalnih resursa. uključujući clustere koji su na njega povezani). Također je uspostavljena paradigma u korištenju svih računala na svijetu danas -- korištenje packet-switched mreža u svrhu obavljanja interprocesorskih komunikacija između jednog ili više procesora smještenih u inače isključenim okvirima.
Razvoj korisnički-izgrađenih clustera i istraživanja razvija se paralelno s razvojem mreža i Unix operacijskog sustava iz rane 1970., kako su se i TCP/IP i XeroxPARC projekti razvili i postali standarsi za mrežnu komunikaciju. Hydra operacijski sustav je izgrađen za DEC-ov cluster PDP-11 računala nazvan C.mmp na C-MU, 1971. Ipak, tek su 1983. definirani protokoli i alati za laganu udaljenu raspodjelu posla i razmjenu fileova (većinom za BSD Unix, implementirani od strane Sun Microsystemsa) i tako postali široko dostupni komercijelno, zajedno s dijeljenim datotečnim sustavom.
Prvi komercijalni clusterski proizvod bio je ARCnet, kojeg je razvio Datapoint, 1977. Arcnet nije komercijalno uspio, a tako ni clustersko računarstvo sve dok DEC nije izdao VAXcluster proizvod, 1984. za VAX/VMS operacijski sustav. ARCnet i VAXcluster proizvodi nisu samo podržavali paralelno računarstvo, već su također djelili datotečni/e sustav/e i periferne jedinice. Trebali su pružiti prednosti paralelnog procesiranja, a u isto vrijeme jamčiti i održavati pouzdanost i jedinstvenost podataka. VAX cluster (sada VMS cluster) je još uvijek dostupan na HP-ovim Open VMS sistemima koje izvršavaju Alpha i Itanium serveri.
Druga dva rana komercijalna clustera vrijedna spominjanja bila su Tandem Himalaya (široko dostupan proizvod, oko 1994.) i BM S/390 Parallel Sysplex (također oko 1994., poslovna klasa)
Nijedna povijest commodity clustera ne bi bila potpuna bez spominjanja velike uloge koju je odigrao razvoj PVM-a (paralelan virtualan stroj), 1989. Ovaj software otvorenog koda je baziran na TCP/IP komunikacijski omogućenoj instantnoj kreaciji virtualnog superračunala -- računalnog clustera visokih performansi -- koristeći bilo koje TCP/IP spojene sustave. Heterogeni clusteri slobodnog oblika izgrađeni na temelju ovog modela su brzo dostizali ukupnu brzinu u FLOPS-ima koja je bila puno veća i od one dostupne sa skupim "big iron" superračunalima. PVM i razvoj jeftinih umreženih PC-ja doveli su 1993. do NASA-inog projekta izgradnje superračunala iz commodity clustera. 1995. izum cluster-a "beowulf" stila -- računalni cluster sagrađen na temelju commodity mreža da "bude superračunalo" s mogućnošću izvođenja usko povezanih paralelnih HPC proračuna. Ovo je, zauzvrat, potaknulo nezavisan razvoj Grid računarstva kao zasebnog pojma, iako su Grid clusteri poznati otkad je imenovan Unix operacijski sustav, Arpanet i clusteri koji su ih koristili.
Clusterske tehnologije
MPI je širokodostupna biblioteka za komunikaciju koja omogućuje paralelno programiranje u C, Fortran-u, Python-u, OCaml-u, i mnogim drugim programskim jezicima.
GNU/Linux podržava raznolik clusterski software, kao što je:
- Beowulf, distcc, MPICH i ostali - uglavnom specijalizirane clusterske aplikacije. distcc omogućava paralelno kompiliranje, kad je korišten s GCC-om.
- Linux Virtual Server, Linux-HA - upravljačko-temeljeni clusteri koji omogućuju raspoređivanje dolaznih zahtjeva za uslukama preko više clusterskih čvorova
- MOSIX, openMosix, Kerrighed, OpenSSI - punokrvni clusteri integrirani u kernel koji omogućuje migraciju procesa između homogenih čvorova. OpenSSI, openMosix i Kerrighed su single-system image implementacije.
Microsoft Windows Compute Cluster Server 2003 baziran na Windows Server platformi daje alate visokih performansi kao što su Job Scheduler, MSMPI library i upravljački alati.
NCSA's nedavno instaliran cluster Lincoln je cluster od 450 Dell PowerEdge™ 1855 blade servera koji izvršavaju Windows Compute Cluster Server 2003. Cluster je predstavljen na #130 Top500 liste u Lipnju 2006.
DragonFly BSD, nedavni fork FreeBSD-a 4.8 se redizajnira u srži da bi omogućio prirodno okruženje za clusterski rad. Također, pokušava postići single-system image mogućnosti.
Clusterski software (eng)
- BOINC - Berkeley Open Infrastructure for Network Computing
- Gluster - The GNU Clustering Platform [2]
- Kerrighed
- Linux-Cluster Project [3] Global File System & HA
- Linux Virtual Server
- Linux-HA
- Maui Cluster Scheduler [4]
- OpenSSI High-availability, load-balancing, and high-performance clustering with or without a SAN.
- OpenMosix
- OpenSCE [5]
- Open Source Cluster Application Resources (OSCAR) [6]
- Rocks Cluster Distribution [7]
- Scali Manage [8]
- Sun Grid Engine
- TORQUE Resource Manager, [9]
- WareWulf [10]
- Windows Server 2003 R2 Enterprise Edition – Cluster Server
Clusterski proizvodi (eng)
- Alchemi
- Condor [11]
- HP Serviceguard
- HP's OpenVMS
- IBM's HACMP
- IBM Parallel Sysplex
- KeyCluster
- United Devices Grid MP
- MC Service Guard za HP-UX sustave
- Microsoft Cluster Server (MSCS)
- Platform LSF [12]
- NEC ExpressCluster [13]
- Oracle Real Application Cluster (RAC)
- OpenPBS [14]
- PBSPro [15]
- PolyServe [16]
- Red Hat Cluster Suite, [17]
- Scali Manage [18]
- SteelEye LifeKeeper
- Sun Cluster
- Sun N1 GridEngine Sun N1 GridEngine
- Tangosol Coherence Clustering Software
- Veritas Cluster Server (VCS), from VERITAS Software (Merged with Symantec)
- Scyld Beowulf Cluster [19]
- Xgrid from Apple [20]
Pogledajte i:
Izvori
Članak je prijevod engleskog članka o cluster-ima. Sve reference su navedene u originalnoj verziji.
Vanjske poveznice (eng)
- Beowulf
- LinuxHPC.org Linux High Performance Computing and Clustering Portal
- WinHPC.org Windows High Performance Computing and Clustering Portal
- HP OpenVMS Cluster Systems dokumentacija
- OpenVMS.org OpenVMS portal - informacije i novosti.
- The cajo project Slobodno clustersko računarstvo korištenjem Jave. (LGPL)
- Cluster Builder- istraživanje razvoja cluster-a
- ClusterKnoppix
- United Devices Virtual Cluster(TM) - Web Info
- ClusterMonkey - On-line Cluster magazin
- Cplant, a non-Beowulf Linux cluster
- IEEE task force on cluster computing, the leading academic community on cluster computing
- Linux clustering information center
- List of commercial HA clustering Software for Linux
- Sun Grid Computing Solutions
- Kako clusteri rade
- ClusterGate.RU - izvor informacija za cluster-e srednje primjene.
- OCFS2 - projekt Oracle cluster datotečnog sustava dostupan za Linux pod GPL licensom
- Gluster - je GNU clusterska distribucija namjenjena Superračunarstvu i Superkapacitivnoj pohrani.
Cluster stranice (eng)
(original)