Klusteri - joukko tietokoneita, joita yhdistävät nopeat viestintäkanavat ja jotka edustavat yhtä laitteistoresurssia käyttäjän näkökulmasta. Klusteri on löyhästi kytketty kokoelma useita tietokonejärjestelmiä, jotka toimivat yhdessä suorittaakseen yhteisiä sovelluksia ja näyttävät käyttäjälle yhtenä järjestelmänä. Yksi ensimmäisistä klusteriteknologian arkkitehdeistä, Gregory Pfister , määritteli klusterin seuraavasti: " Klusteri on rinnakkaisen tai hajautetun järjestelmän tyyppi, joka:
Yleensä erotetaan seuraavat päätyypit klusterit:
Niistä käytetään lyhennettä HA ( High Availability ) . Luotu varmistamaan klusterin tarjoaman palvelun korkea saatavuus . Klusteriin sisällytetty redundantti solmumäärä takaa palvelun toimivuuden yhden tai useamman palvelimen vian sattuessa. Tyypillinen solmujen lukumäärä on kaksi, mikä on vähimmäismäärä, joka lisää käytettävyyttä. Tällaisten klustereiden rakentamiseen on luotu paljon ohjelmistoratkaisuja.
Varasiirtymäklusterit ja -järjestelmät on jaettu kolmeen päätyyppiin:
Tietty tekniikka voi yhdistää nämä periaatteet mihin tahansa yhdistelmään. Esimerkiksi Linux-HA tukee takeover - määritystilaa, jossa kaikki solmut käsittelevät kriittiset pyynnöt yhdessä , kun taas muut jaetaan tasaisesti niiden välillä. [yksi]
Niiden toimintaperiaate perustuu pyyntöjen jakamiseen yhden tai useamman syöttösolmun kautta, jotka ohjaavat ne käsittelyä varten muihin laskentasolmuihin. Tällaisen klusterin alkuperäinen tavoite on suorituskyky, mutta usein käytetään myös luotettavuutta lisääviä menetelmiä. Samanlaisia malleja kutsutaan palvelinfarmiksi . Ohjelmistot (ohjelmistot) voivat olla joko kaupallisia ( OpenVMS , MOSIX , Platform LSF HPC, Solaris Cluster , Moab Cluster Suite, Maui Cluster Scheduler) tai ilmaisia ( OpenMosix , Sun Grid Engine , Linux Virtual Server ).
Klustereita käytetään laskennallisiin tarkoituksiin, erityisesti tieteellisessä tutkimuksessa. Laskentaklustereille merkittäviä indikaattoreita ovat prosessorin korkea suorituskyky liukulukuoperaatioissa ( flops ) ja yhdistävän verkon alhainen latenssi , ja vähemmän merkittäviä - I/O-toimintojen nopeus, joka on tärkeämpää tietokannoille ja verkkopalveluille . Laskentaklusterit mahdollistavat laskenta-ajan lyhentämisen yksittäiseen tietokoneeseen verrattuna jakamalla tehtävän rinnakkaisiin suoritushaaroihin, jotka vaihtavat tietoja yhdistävän verkon kautta. Yksi tyypillinen kokoonpano on joukko tietokoneita, jotka on rakennettu julkisesti saatavilla olevista komponenteista ja joissa on Linux-käyttöjärjestelmä ja jotka on yhdistetty Ethernetillä , Myrinetillä , InfiniBandilla tai muilla suhteellisen edullisilla verkoilla. Tällaista järjestelmää kutsutaan yleisesti Beowulf -klusteriksi . Suorituskykyiset klusterit erotetaan erityisesti (merkitty englanninkielisellä lyhenteellä HPC Cluster - High-performance computing cluster ). Luettelo tehokkaimmista korkean suorituskyvyn tietokoneista (saattaa viitata myös englanninkielisellä lyhenteellä HPC ) löytyy TOP500 maailmanlistalta . Venäjällä on IVY:n tehokkaimpien tietokoneiden luokitus. [2]
Tällaisia järjestelmiä ei yleensä pidetä klustereina, mutta niiden periaatteet ovat pitkälti samanlaisia kuin klusteriteknologia. Niitä kutsutaan myös verkkojärjestelmiksi . Suurin ero on kunkin solmun alhainen käytettävyys, eli kyvyttömyys taata sen toimintaa tietyllä hetkellä (solmut yhdistyvät ja katkeavat toiminnan aikana), joten tehtävä on jaettava useisiin itsenäisiin prosesseihin. Tällainen järjestelmä, toisin kuin klusterit, ei näytä yhdeltä tietokoneelta, vaan toimii yksinkertaistettuna tapana jakaa laskelmia. Konfiguroinnin epävakaus kompensoidaan tässä tapauksessa suurella määrällä solmuja.
Palvelinklusteri ( tietotekniikassa ) - ryhmä palvelimia , jotka on yhdistetty loogisesti, jotka pystyvät käsittelemään identtisiä pyyntöjä ja joita käytetään yhtenä resurssina. Useimmiten palvelimet ryhmitellään paikallisen verkon kautta. Palvelinryhmä on luotettavampi ja toimii paremmin kuin yksi palvelin. Palvelinten yhdistäminen yhdeksi resurssiksi tapahtuu ohjelmistoprotokollien tasolla.
Toisin kuin tietokoneiden laitteistoklusteri, ohjelmiston järjestämät klusterit vaativat:
Useimmissa tapauksissa palvelinklusterit toimivat eri tietokoneissa. Tämän avulla voit parantaa suorituskykyä jakamalla kuormitusta laitteistoresursseihin ja tarjoaa vikasietoisuuden laitteistotasolla.
Palvelinklusterin järjestämisen periaate (ohjelmistoprotokollan tasolla) mahdollistaa kuitenkin useiden ohjelmistopalvelimien ajamisen yhdellä laitteistopalvelimella. Tällaista käyttöä voidaan tarvita:
TOP500 -organisaatio julkaisee kaksi kertaa vuodessa listan maailman viidestäsadasta tuottavimmasta laskentajärjestelmästä, joiden joukossa klusterit ovat usein vallitseva viime vuosina. Nopein klusteri on IBM Roadrunner ( Los Alamos National Laboratory , USA , perustettu 2008), sen suurin suorituskyky (heinäkuussa 2008) on 1 026 petaflopsia . Euroopan nopein järjestelmä (heinäkuusta 2008 lähtien ) on supertietokone, BlueGene / P sijaitsee Saksassa , Jülichin kaupungin tutkimuskeskuksessa Nordrhein -Westfalenissa , suurin saavutettu suorituskyky on 167,3 Teraflopsia .
Klusterijärjestelmät ovat arvokkaalla paikalla nopeimpien luettelossa, mutta ovat hinnaltaan huomattavasti supertietokoneita parempia. Heinäkuussa 2008 TOP500-luokituksen 7. sija on SGI Altix ICE 8200 -klusteri ( Chippewa Falls , Wisconsin , USA).
Suhteellisen halpa vaihtoehto supertietokoneille ovat Beowulf -konseptiin perustuvat klusterit , jotka on rakennettu tavallisista edullisista ilmaisiin ohjelmistoihin perustuvista tietokoneista. Yksi käytännön esimerkki tällaisesta järjestelmästä on Stone Soupercomputer Oak Ridge National Laboratoryssa ( Tennessee , USA, 1997).
Suurimman yksityisomistuksessa olevan klusterin (1000 prosessorista ) rakensi John Koza.
Klusterien luomisen historia liittyy erottamattomasti tietokoneverkkojen alan varhaiseen kehitykseen. Yksi syy tietokoneiden välisen nopean tiedonsiirron syntymiseen oli toivo laskentaresurssien yhdistämisestä. 1970-luvun alussa TCP/IP -protokollaryhmä ja Xerox PARC -laboratorio asettivat standardeja verkkotoiminnalle. Hydra - käyttöjärjestelmä DEC PDP-11 -tietokoneille ilmestyi myös , tällä perusteella luotu klusteri sai nimekseen C.mpp ( Pittsburgh , Pennsylvania , USA, 1971). Kuitenkin vasta vuoden 1983 tienoilla kehitettiin mekanismeja tehtävien ja tiedostojen helppoon jakamiseen verkon kautta, pääasiassa SunOS : ltä ( Sun Microsystemsin BSD - pohjainen käyttöjärjestelmä ).
Ensimmäinen kaupallinen klusteriprojekti oli ARCNet , jonka Datapoint loi vuonna 1977. Siitä ei tullut kannattavaa, ja siksi klusterin rakentaminen kehittyi vasta 1984, jolloin DEC rakensi VAX/VMS -käyttöjärjestelmään perustuvan VAXclusterin . ARCNet ja VAXcluster on suunniteltu paitsi yhteisen laskennan lisäksi myös tiedostojärjestelmän ja oheislaitteiden jakamiseen, ottaen huomioon tietojen eheyden ja yksiselitteisyyden säilymisen . VAXCluster (nykyisin nimeltään VMSCluster ) on olennainen osa HP OpenVMS -käyttöjärjestelmää, joka käyttää DEC Alpha- ja Itanium-suorittimia .
Kaksi muuta varhaista kehuttua klusterituotetta ovat Tandem Hymalaya (1994, luokka HA ) ja IBM S/390 Parallel Sysplex (1994).
Klusterien luomisen historia tavallisista henkilökohtaisista tietokoneista on paljolti Parallel Virtual Machine -projektin ansiota . Vuonna 1989 tämä ohjelmisto tietokoneiden yhdistämiseksi virtuaaliseen supertietokoneeseen avasi mahdollisuuden luoda välittömiä klustereita. Tämän seurauksena kaikkien tuolloin luotujen halpojen klustereiden kokonaissuorituskyky ylitti "vakavien" kaupallisten järjestelmien kapasiteettien summan.
Halviin henkilökohtaisiin tietokoneisiin perustuvien klusterien luomista tiedonsiirtoverkolla jatkettiin vuonna 1993 American Aerospace Agency NASA :n toimesta , sitten vuonna 1995 kehitettiin erityisesti tälle periaatteelle suunniteltuja Beowulf -klustereita. Tällaisten järjestelmien menestys vauhditti grid - verkkojen kehittämistä , jotka ovat olleet olemassa UNIXin alusta lähtien .
Laajalti käytetty työkalu palvelimien välisen vuorovaikutuksen järjestämiseen on MPI -kirjasto , joka tukee C- ja Fortran -kieliä . Sitä käytetään esimerkiksi sääsimulointiohjelmassa MM5 .
Solaris - käyttöjärjestelmä tarjoaa Solaris Cluster -ohjelmiston , jota käytetään korkean käytettävyyden ja vikasietoisuuden tarjoamiseen Solarista käyttäville palvelimille. OpenSolarisille on avoimen lähdekoodin toteutus nimeltä OpenSolaris HA Cluster .
Useat ohjelmat ovat suosittuja GNU/Linux- käyttäjien keskuudessa :
Klusterimekanismeja on tarkoitus rakentaa DragonFly BSD -ytimeen , joka erottui vuonna 2003 FreeBSD 4.8:sta. Tulevaisuudessa on myös suunnitelmia muuttaa se yhdeksi käyttöjärjestelmäympäristöksi .
Microsoft julkaisee HA-klusterin Windows - käyttöjärjestelmälle . On olemassa mielipide, että se luotiin Digital Equipment Corporation -teknologian perusteella , tukee jopa 16 (vuodesta 2010) solmua klusterissa sekä toimintaa SAN -verkossa (Storage Area Network). Joukkoa API-liittymiä käytetään tukemaan hajautettuja sovelluksia, on aihioita sellaisten ohjelmien kanssa työskentelyä varten, jotka eivät vaadi työskentelyä klusterissa.
Kesäkuussa 2006 julkaistu Windows Compute Cluster Server 2003 (CCS) on suunniteltu huippuluokan sovelluksiin, jotka vaativat klusterilaskentaa. Painos on suunniteltu käytettäväksi useissa tietokoneissa, jotka on ryhmitelty superlaskentatehon saavuttamiseksi. Jokainen Windows Compute Cluster Server -klusteri koostuu yhdestä tai useammasta pääkoneesta, joka jakaa töitä, ja useista orjakoneista, jotka tekevät päätyön. Marraskuussa 2008 esiteltiin Windows HPC Server 2008 korvaamaan Windows Compute Cluster Server 2003.
Novell Open Enterprise Server (OES) - verkkokäyttöjärjestelmä, Novell NetWaren ja SUSE Linux Enterprise Serverin " fuusio " ; pystyy luomaan muun muassa sekaklustereita, joissa resurssit voivat siirtyä NetWare-palvelimelta Linux-palvelimelle ja päinvastoin.