Klusteri (tietotekniikka)
Klusteri on useamman tietokoneen verkotettu malli, jossa yleensä yksi tietokone, joka toimii palvelimena, jakaa muiden tietokoneiden, eli noodien kesken tehtäviä. Näin saadaan esimerkiksi paljon laskenta-aikaa vaativa simulaatio suoritettua lyhyemmässä ajassa. Tämä on verrattavissa moniydinsuorittimeen tai moniprosessoriseen tietokoneeseen.
Klusterointimallit
muokkaaKlusterointiratkaisut juontavat suurteholaskennan tarpeisiin ja myöhemmin syntyivät vikasietoisuuteen ja kuormituksen tasaamiseen tarkoitetut ratkaisut.[1] Tyypillisesti klusterit ovat jompaa kumpaa kahdesta päätyyppistä:[2]
- korkean tavoitettavuuden järjestelmä (engl. high availability), vikasietoisuus
- korkean suorituskyvyn järjestelmä (engl. high performance), ryväslaskenta tai rinnakkaislaskenta
Korkean tavoitettavuuden järjestelmä ei käytä koko kapasiteettia jatkuvasti, vaan osa järjestelmästä on varalla vikatilanteissa jatkamiseen. "Failover" -tilanteessa suoritus siirtyy varalla olevaan järjestelmään vikaantuneesta järjestelmästä.
Korkean suorituskyvyn järjestelmä käyttää koko klusterin kapasiteettia laskennan tehostamiseen ja muistuttaa yksittäisistä tietokoneista muodostuvaa supertietokonetta.
Verkkopalveluissa klustereita käytetään myös kuormituksen tasaamiseen (engl. load balancing). Tyypillinen käyttökohde on DNS-nimipalvelu.
Pilvilaskenta on abstraktio palveluista ja laskentakapasiteetista, jota kuluttaja voi ostaa. Tämä ei varsinaisesti määrittele klusterointia mutta usein tarkoittaa klusterin käyttämistä palvelun tuottamiseen. Pilvilaskenta voidaan tarkoituksesta riippuen toteuttaa myös suurtietokoneella ajetuilla virtuaalikoneilla eikä varsinaista tietokoneklusteria.
Klusterit ovat hajautetun tietojenkäsittelyn tyyppi, jossa useat erilliset suorittimet käsittelevät osia tiedosta. Klusterit ovat yleensä rajattuja samaan lähiverkkoon, kun taas Grid-verkko on laajaverkkoon suunnattu.[1]
Klusterit voivat olla rakenteeltaan symmetrisiä tai epäsymmetrisiä. Symmetrisessä klusterissa jokainen solmu voi olla yksittäinen tietokone ja klusterin rakentaminen on yksinkertaista. Epäsymmetrisessä klusterissa yksi tietokone toimii pääsolmuna tai edustakoneena, jonka toimii porttina ja muut solmut ovat minimaalisia.[1]
Historiaa
muokkaaDigital Equipment Corporation kehitti ensimmäiset mallit klustereista 1980 VAX-minitietokoneelle VMS-käyttöjärjestelmälle. Se ei ainoastaan tukenut rinnakkaista ajoa vaan myös levytilan ja oheislaitteiden jakamista.
Hajautettuja käyttöjärjestelmiä ovat kehittäneet muun muassa Apollo Computer (Domain/OS) ja Bell Labs (Plan 9).
Henkilökohtaisten tietokoneiden komponentit kehittyivät nopeammiksi ja halvemmiksi, ja niistä tuli yleisiä hyödykkeitä. Suuret valmistusmäärät ovat pudottaneet kappalehintoja ja kilpailun myötä suorituskyky on kehittynyt. Lisäksi avoimen lähdekoodin käyttöjärjestelmät kuten Linux laskivat ohjelmistokustannukset lähes nollaan. Tällöin tuli mahdolliseksi saada suurempi suorituskyky tietyntyyppisiin tarkoituksiin kustannustehokkaasti ja välttäen riippuvuuksia toimittajiin.[3]
Tekniikka
muokkaaKlusterissa muistiarkkitehtuuri on hajautettu (engl. Distributed Memory).[4] Toisin kuin symmetrisessä moniprosessointitietokoneessa klusterin eri solmut (engl. node) vaativat oman kopion käyttöjärjestelmän ytimestä ajettavaksi.[4]
Distributed Lock Manager (DLM) tarjoaa klusterissa yhdessä toimiville prosesseille hallitun pääsyn resursseihin kuten levyihin tai ohjelmiin.[5] Tiedostojärjestelmät kuten OCFS2 ja GFS2 käyttävät DLM:ää.[6]
Järjestelmiä
muokkaaJyväslaskenta
muokkaaJyväslaskennan (tai ryväslaskenta) malli (engl. grid) – tarkoittaa myös verkkoa. Tämän tarkoitus on mahdollistaa hajautettu laskenta ympäri maailmaa usealla tietokoneella hyödyntäen alueellisia palvelimia jakamassa tehtäviä pieninä paketteina kotikoneille tai muille vastaaville laitteille. Usein grid-sovellutukset nojaavat vapaaehtoisten apuun. Näissä vapaaehtoistyöhön nojaavissa projekteissa on ideana, että asiakasohjelman asentaminen on käyttäjälle helppoa ja että saadaan halvalla paljon laskenta-aikaa. Mallia käytetään hyvin paljon tieteellisissä paljon laskentatehoa vaativissa projekteissa, kuten:
- lifesaver – syöpälääkkeen etsintä[7]
- Climateprediction.net – tarkoituksena ennustaa seuraavan sadan vuoden sää.[8]
- SETI@home[9]
Yksi tunnetuimmista grid-projekteista on SETI@home. Vaikkakin tämän projektin tarkkaa laskentatehoa ei voida mitata, koska käytössä olevien koneiden määrä vaihtelee, on se kuitenkin laskelmien mukaan maailman tehokkain yksittäinen supertietokone. Nykyään SETI@home käyttää Berkeleyn yliopiston kehittämää BOINC-järjestelmää (Berkeley Open Infrastructure for Network Computing}. Tällaisen voi huoletta asentaa vaikka kotikoneelle ja pitää sitä aina päällä kun konekin on. BOINC, kuten jo moni sen edeltäjistä, ovat sen verran kehittyneitä, että ne käyttävät vain sen verran laskenta-aikaa, mitä muilta prosesseilta jää yli. Tämä hoidetaan ohjelmien priorisoimisena. BOINC on jossain määrin verrattavissa idle-prosessiin.
Vaikkakin grid-laskennassa ei ole välttämätöntä käyttää tuhansia koneita maailmanlaajuisesti, saman voi tehdä harrastelija kotona esimerkiksi kymmenellä koneella käyttäen Mosixia hyväkseen, yleisesti ottaen kun puhutaan Grideistä tarkoitetaan tällaisia suuria tietokoneiden verkostoja.
openMosix
muokkaaopenMosix on vapaa versio MOSIX-järjestelmästä. Molemmat on tarkoitettu ajettavaksi Linux-ympäristössä sekä ovat ilmaisia. Ainut konkreettinen eroavaisuus näiden järjestelmien välillä on lisenssi. openMosix julkaistaan GPL:n alaisenta ja Mosixin lisenssi on hieman rajoittuneempi.
Mosix
muokkaaMosix-järjestelmät on tarkoitettu hieman tiukemmin sijoitettuun ympäristöön kuin Grid sellaisena kuin se yleisesti ymmärretään. Ne eivät myöskään ole yhtä helposti laajennettavissa. Mosixien hienouksiin kuuluu muun muassa käynnissä olevan prosessin siirtäminen noodilta toiselle ilman prosessin sammuttamista. Mosix on hyvin käytännöllinen ratkaisu esimerkiksi kotona 3D-mallinnusta harrastaville ja sopii myös normaalin koneen käyttöön. Ensisijaisesti nämä ovat kuitenkin klusteroituja supertietokoneita varten.
Beowulf-klusteri
muokkaaBeowulf-klusteri on niille, joille ei valmis tuote kelpaa. Toinen nimitys Tee-se-itse Linux/Unix -klusteri. Järjestelmän etuna on, että se toimii kuten on haluttu, eikä siinä ole ylimääräisiä prosesseja kuluttamassa resursseja. Myös järjestelmän malli voi olla tavallisuudesta poikkeava. Beowulf-klusterit tyypillisesti käyttävät valmiita yleisesti saatavilla olevia komponentteja (COTS).
Ensimmäiset Beowulf-klusterit kehitettiin vuonna 1993 NASA:ssa.[10][11]
Windows-klusterit
muokkaaWindows-klusteri ei ole kovin suosittu ratkaisu hintansa ja suljetun ympäristön vuoksi, mutta joissakin tapauksissa niiden käyttö on välttämättömyys. Windows-klusterin etuja Unix-malleihin verrattuna ovat helposti skaalautuva järjestelmä ja nopea asennettavuus.[lähde? ] Ne hallitsevat myös verkon kuorman jakamisen. Microsoftilla on kehityksessä oma Windows-käyttöjärjestelmä joka on suunniteltu erityisesti supertietokoneita varten.[lähde? ]
Klusteri ja verkkoteoria
muokkaaVerkkoteoriassa klusteri tarkoittaa verkon (järjestelmän) sisäistä, voimakkaasti verkotettua kokonaisuutta, sen sisäistä organisaatiota.
Klusterin "vastakohta" on järjestelmän liittyminen muuhun kokonaisuuteen, olemassaoloon, eli ns. heikot yhteydet. Jälkimmäiset ovat nimestään huolimatta systeemeille erityisen tärkeitä. Ihmisverkoissa ne esimerkiksi antavat klusterin yhtenäisestä tiedosta poikkeavaa, laajempaa tietoa.
Järjestelmän raja muodostuu klusterin ja heikkojen yhteyksien rajalle.
Klusteroitu levyjärjestelmä
muokkaaKlusterointia voidaan hyödyntää tiedon prosessoinnin lisäksi myös tiedon tallentamiseen, jolloin käytetään RAID-tekniikkaa tai klusteroitua levyjärjestelmää.
Klusteroitu levyjärjestelmä tarkoittaa useiden kiintolevyjen tai levyryhmien käyttöä hajautetusti. Nämä jaetaan pääasiassa kahteen ryhmään: hajautettu levyjärjestelmä sekä jaettu levyjärjestelmä.
Katso myös
muokkaaLähteet
muokkaa- ↑ a b c Chapter 1. Cluster Architecture oreilly.com. Viitattu 22.3.2024. (englanniksi)
- ↑ Jim Phillips, Tim Skirvin: Linux Clusters for HighPerformance Computing: An Introduction (PDF) ks.uiuc.edu. Viitattu 22.3.2024. (englanniksi)
- ↑ Daillidis, Christos: Establishing Linux Clusters for High-Performance Computing (HPC) at NPS 1.9.2004. Naval Postgraduate School Monterey CA. Viitattu 22.3.2024. (englanniksi)
- ↑ a b Categories of Computer Systems, Flynn’s Taxonomy .cs.uidaho.edu. Viitattu 19.2.2017.
- ↑ Distributed Lock Manager .phys.canterbury.ac.nz. Viitattu 10.7.2021. (englanniksi)
- ↑ 18 Distributed Lock Manager (DLM) documentation.suse.com. Viitattu 10.7.2021. (englanniksi)
- ↑ lifesaver (Arkistoitu – Internet Archive)
- ↑ Climateprediction (Arkistoitu – Internet Archive)
- ↑ SETI@home
- ↑ Phil Merkey: Beowulf History beowulf.org. Viitattu 15.11.2017.
- ↑ Linux totally dominates supercomputers 14.11.2017. ZDnet. Viitattu 15.11.2017.
Aiheesta muualla
muokkaa- www.beowulf.org
- BOINC – Berkeley Open Infrastructure for Network Computing
- www.grid.org
- Mosix
- Open Mosix
- www.TOP500.org – kahdesti vuodessa päivittyvä lista maailman 500:n tehokkaimman klusterin kärjestä.