AKI KÖSSILÄ LINUX-POHJAISEN LASKENTAPILVEN RAKENTAMINEN. Kandidaatintyö



Samankaltaiset tiedostot
Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro

Historiaa. Unix kirjoitettiin kokonaan uudestaan C-kielellä Unix jakautui myöhemmin System V ja BSDnimisiin. Kuutti, Rantala: Linux

Valppaan asennus- ja käyttöohje

UCOT-Sovellusprojekti. Asennusohje

Jouko Nielsen. Ubuntu Linux

Linuxissa uusi elämä 1

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

Näin asennat MS-DOS käyttöjärjestelmän virtuaalikoneeseen

LINUX LINUX. Viisi hyvää syytä käyttää Linuxia MUISTA! GNU Free Documentation License


TIETOKONE JA TIETOVERKOT TYÖVÄLINEENÄ

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Linux rakenne. Linux-järjestelmä koostuu useasta erillisestä osasta. Eräs jaottelu: Ydin Komentotulkki X-ikkunointijärjestelmä Sovellusohjelmat

CUDA. Moniydinohjelmointi Mikko Honkonen

TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO

EMVHost Online SUBJECT: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT COMPANY: EMVHost Online Client sovelluksen käyttöohje AUTHOR: DATE:

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

LAITTEISTOKOKOONPANON SELVITTÄMINEN JA AJURIEN ASENTAMINEN

Taitaja 2015 Windows finaalitehtävä

T Testiraportti - järjestelmätestaus

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A Kandidaatintyö ja seminaari

Tikon Ostolaskujenkäsittely versio SP1

Windows Server 2012 asentaminen ja käyttöönotto, Serverin pyörittämisen takia tarvitaan

Tulostimen hallintaohjelmisto MarkVision

Liitäntäkaapelin CA-42 pika-asennusohje

Alfa-ohjelmat, verkkoasennus, asennusohje 2006 syyskuu. Alfa-ohjelmat ASENNUSOHJE. Verkkoasennus-CD, versio Kielioppi & kirjallisuus

FuturaPlan. Järjestelmävaatimukset

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

Linux. Alkutarkistukset

Pilvi 9.0. Arkkitehtuuri. Esimerkki arkkitehtuurit

VHOPE-sovelluksen ja VHOPE-kirjastotiedostojen asentaminen

Nokia Lifeblog 2.5 Nokia N76-1

Kytkentäopas. Tuetut käyttöjärjestelmät. Tulostimen asentaminen. Kytkentäopas

Järjestelmäarkkitehtuuri (TK081702)

Taloyhtiön laajakaistan käyttöohje, Tekniikka: Ethernet. Käyttöjärjestelmä: Windows XP

Olet tehnyt hyvän valinnan hankkiessasi kotimaisen StorageIT varmuuskopiointipalvelun.

Linux. 00 Keskeiset piirteet. Unix ja Linux Helsingin ammattikorkeakoulu Stadia Vesa Ollikainen (muokannut M.Mäki-Uuro) Kysymyksiä

Ti LÄHIVERKOT -erikoistyökurssi. X Window System. Jukka Lankinen

2007 Nokia. Kaikki oikeudet pidätetään. Nokia, Nokia Connecting People, Nseries ja N77 ovat Nokia Oyj:n tavaramerkkejä tai rekisteröityjä

WINE API ja Virtualisointiohjelmistot

Enigmail-opas. Asennus. Avainten hallinta. Avainparin luominen

Taloyhtiön laajakaistan käyttöohje, Tekniikka: HomePNA. Käyttöjärjestelmä: Windows XP

Ohjelmistopäivitykset

I T. SurePath. Järjestelmä on täysin yhteensopiva kaikkien DALI hyväksyttyjen turva- ja poistumistievalojen kanssa.

1 Tivax siirto uuteen koneeseen

VERKON ASETUKSET SEKÄ WINDOWSIN PÄIVITTÄMINEN

The administrative process of a cluster. Santtu Rantanen Valvoja: Prof. Jorma Jormakka

Tietoa ja ohjeita Hämäläisten ylioppilassäätiön asuntoloiden laajakaistaverkon käytöstä

Windows 8.1:n vaiheittainen päivitysopas

Varmuuskopiointi ja palauttaminen Käyttöopas

Tietokoneet ja verkot. Kilpailupäivä 1, keskiviikko Kilpailijan numero. Server 2003 Administrator. XP pro Järjestelmänvalvojan

Ohjeita tietokoneverkon käyttöön Latokartano-säätiön ja Metsäylioppilaiden asuntosäätiön asuntoloissa

Langattoman kotiverkon mahdollisuudet

14. Luento: Kohti hajautettuja sulautettuja järjestelmiä. Tommi Mikkonen,

Kopioi cd-levyt kiintolevylle, niin fyysiset levyt joutavat eläkkeelle.

Tekninen suunnitelma - StatbeatMOBILE

T&M Autori Versio Series 60 -puhelimiin

ClassPad fx-cp400 OS2-päivitys. + Manager-ohjelmisto ja Physium-sovellus

Onko sinun yritykselläsi jo tietotekniikka Palveluksessa? vtoasp -palvelun avulla siirrät tietojärjestelmäsi haasteet ammattilaisten hoidettaviksi.

Javan asennus ja ohjeita ongelmatilanteisiin

MPCC-työkalua voidaan käyttää yhden laitteen valvontaan ja yhden tai useamman laitteen konfigurointiin (Modbus broadcast, osoite 0).

Selvitysraportti. MySQL serverin asennus Windows ympäristöön

Simulaattorin asennus- ja käyttöohje

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat

HARJOITUS 3: Asennetaan Windows Vista koneeseen Windows 7 Professional upgrade ohjelmisto (Windows 7 käyttöjärjestelmän asennus)

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka. Joni Korjala APACHE WWW-PALVELIN Seminaarityö 2012

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest).

Taloyhtiön laajakaistan käyttöohje, Tekniikka: Ethernet. Käyttöjärjestelmä: Mac OS X

MultiBoot. Käyttöopas

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO

S11-09 Control System for an. Autonomous Household Robot Platform

Febdok 6.0 paikallisversion asennus OHJEISTUS

TEHTÄVÄ 4: Microsoft Windows Deployment Services asennus ja hallinta

Office ohjelmiston asennusohje

Taloyhtiön laajakaistan käyttöohje, Tekniikka: HomePNA. Käyttöjärjestelmä: Windows Vista

Visma GATEWAY INSTALLER. asennusopas

PC-LAITTEEN TESTAAMINEN

erasmartcard-kortinlukijaohjelmiston asennusohje (mpollux jää toiseksi kortinlukijaohjelmistoksi)

Taloyhtiön laajakaistan käyttöohje, Tekniikka: Ethernet. Käyttöjärjestelmä: Windows Vista

Finnish Value Pack Asennusohje Vianova Systems Finland Oy Versio

Kemin peruskoulut ja Lukio käyttävät Linux-järjestelmää. Antti Turunen ICT-asiantuntija

Trust Gamer Kit PCI TRUST GAMER KIT PCI. Pika-asennusohje. Versio 1.0

Henkilökohtaista käyttäjäystävällistä tietoturvaa! NTG Solo Secure

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari

Ohjelmistojen suunnittelu

Varmuuskopiointi ja palauttaminen Käyttöopas

KAIKKI LAITTEET KÄYNNISTETÄÄN UUDELLEEN ENNEN TARKISTUSTA

TUTKI OMAT TIETOTURVA-AUKKOSI. ENNEN KUIN JOKU MUU TEKEE SEN PUOLESTASI. F-Secure Radar Ville Korhonen

NAVITA BUDJETTIJÄRJESTELMÄN ENSIASENNUS PALVELIMELLE

Climecon MagiCADliitosohjelma

Tietokone. Tietokone ja ylläpito. Tietokone. Tietokone. Tietokone. Tietokone

Tiedonsiirto- ja rajapintastandardit

Varmuuskopiointi ja palauttaminen Käyttöopas

Osaa käyttää työvälineohjelmia, tekstinkäsittelyä taulukkolaskentaa ja esitysgrafiikkaa monipuolisesti asiakasviestintään.

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

erasmartcardkortinlukijaohjelmiston

Transkriptio:

AKI KÖSSILÄ LINUX-POHJAISEN LASKENTAPILVEN RAKENTAMINEN Kandidaatintyö Tarkastaja: Tutkija, DI Jari Seppälä 9. toukokuuta 2010

II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma KÖSSILÄ, AKI: Linux-pohjaisen laskentapilven rakentaminen Kandidaatintyö, 36 sivua, 12 liitesivua Toukokuu 2010 Pääaine: Automaation tietotekniikka Tarkastaja: Tutkija, DI Jari Seppälä Avainsanat: Laskentapilvi, Linux, klusteri, hilalaskenta, SSI, MPI, Viestinvälitysrajapinta, Kerrighed, Työasemaluokka Työn tavoitteena on tutkia eri vaihtoehtoja, joilla voidaan toteuttaa laskentajärjestelmä opetuskäytössä olevaan työasemaluokkaan. Toteutettava järjestelmä luo perusteet pilvilaskentajärjestelmälle, jonka tarkoitus on tarjota palveluita pienessä mittakaavassa pienelle ryhmälle käyttäjiä. Työn kohteena oleva työasemaluokka on yleensä öisin ja viikonloppuisin täysin käyttämättömänä, jolloin sen tarjoamia resursseja voitaisiin hyödyntää suorittamalla tieteellistä laskentaa. Olemassa olevaan Windows-järjestelmään ei saa tehdä muutoksia, jolloin toteutuksen tulee olla käytettävissä esimerkiksi USB-muistitikulta tai CD-levyltä. Lisäksi toteutettavan järjestelmän tulee olla laajennettavissa tarpeen mukaan. Valmiita järjestelmiä, jotka sopivat kyseiseen ympäristöön on useita, mutta tässä niistä on tarkasteltu neljää tietyt kriteerit täyttävää toteutusta. Toteutuksista on jokaisesta eriteltynä: järjestelmän arkkitehtuuri ja ominaisuudet, tuotetuki, tietoturva ja soveltuvuus. Tarkasteluun valitut järjestelmät ovat XtreemOS, PelicanHPC, Bootable Cluster CD ja Kerrighed. Testaus suoritettiin kahdessa osassa siten, että kaikki esitellyt järjestelmät testattiin alustavasti virtualisoidussa ympäristössä ja lopuksi toteutukseen valittu Kerrighed-järjestelmä testattiin todellisessa ympäristössä. Kerrighedjärjestelmän testauksesta on lopuksi raportti, jossa käydään yksityiskohtaisesti läpi järjestelmän asennus ja käyttöönotto. Kerrighed-järjestelmän todettiin soveltuvan hyvin kyseiseen ympäristöön ja käyttötarkoitukseen sekä olevan edullinen toteuttaa. Alussa määritellyt työn tavoitteet täyttyivät, mutta jatkokehityksen varaa on vielä ainakin käytännön testauksessa ja käyttöliittymäkehityksessä.

III ALKUSANAT Tämä kandidaatintyö on tehty Tampereen teknillisen yliopiston Systeemitekniikan laitokselle. Toteutettu järjestelmä on suunniteltu käytettäväksi Systeemitekniikan työasemaluokassa. Työn aihealue oli mielenkiintoinen, koska tässä pääsi soveltamaan tietämystä tietoliikenneverkoista ja Linux-järjestelmistä sekä toteuttamaan käytännön osuuden. Työn ohjaajana toimi Jari Seppälä ja haluankin kiittää häntä rakentavan palautteen antamisesta sekä avusta ongelmien ratkaisussa järjestelmää testattaessa. Tampereella 9. toukokuuta 2010 Aki Kössilä

IV SISÄLLYS 1. Johdanto... 1 2. Teoria... 2 2.1. Pilvilaskenta... 2 2.2. Klusterilaskenta... 4 2.2.1. Ohjelmointirajapinnat... 4 2.3. Hilalaskenta... 6 2.4. Kohdeympäristö... 7 3. Toteutusvaihtoehdot... 8 3.1. XtreemOS... 9 3.1.1. Arkkitehtuuri ja ominaisuudet... 9 3.1.2. Tietoturva... 11 3.1.3. Tuotetuki... 11 3.1.4. Soveltuvuus ja yhteenveto... 12 3.2. PelicanHPC... 13 3.2.1. Arkkitehtuuri ja ominaisuudet... 13 3.2.2. Tietoturva... 14 3.2.3. Tuotetuki... 14 3.2.4. Soveltuvuus ja yhteenveto... 15 3.3. Kerrighed ja Debian... 15 3.3.1. Arkkitehtuuri ja ominaisuudet... 16 3.3.2. Tietoturva... 17 3.3.3. Tuotetuki... 17 3.3.4. Soveltuvuus ja yhteenveto... 18 3.4. Bootable Cluster CD... 18 3.4.1. Arkkitehtuuri ja ominaisuudet... 19 3.4.2. Tietoturva... 19 3.4.3. Tuotetuki... 19 3.4.4. Soveltuvuus ja yhteenveto... 20 4. Toteutus... 21 4.1. Testaus... 21 4.1.1. Alustava testaus... 21 4.1.2. Lopullinen testaus... 21 4.2. Toteutusvaihtoehdon valinta... 21 4.3. Järjestelmän asennus... 22 4.3.1. Ohjaava tietokone... 22 4.3.2. Laskentasolmut... 23 4.4. Testausraportti... 23 5. Johtopäätökset... 25 Liite 1: Asennusopas... 29 Liite 2: Kuvia testauksesta... 39

V TERMIT JA NIIDEN MÄÄRITELMÄT BCCD Beowulf chroot-ympäristö Debian GNU/Linux DHCP Eräajojärjestelmä Ethernet Ganglia Hajautettu laskenta Heterogeeninen ympäristö Hilalaskenta Hilalaskentajärjestelmä Julkinen avain Juurivarmenne Klusterikäyttöjärjestelmä, joka on tarkoitettu erityisesti opetuskäyttöön (engl. Bootable Cluster CD). Beowulf on yleinen nimitys klusterille, joka koostuu useista tietokoneista, jotka ovat kasattu yleisistä ja halvoista komponenteista. Komentorivikomento, jolla voidaan Linux-järjestelmissä käynnistää sovelluksia siten, että ne olettavat järjestelmän juurihakemistoksi jonkin käytössä olevan tiedostojärjestelmän alihakemiston mutta eivät näe muualle isäntäjärjestelmään. Linux-jakelupaketti, joka sisältää paljon perustyökaluja GNU-projektista. Verkkoprotokolla, jonka avulla voidaan jakaa IP-osoitteita ja muita asetuksia verkon tietokoneille (engl. Dynamic Host Configuration Protocol). Järjestelmä, joka määrittelee missä ja miten kukin sovellus suoritetaan. Toiminta yleensä siten, että käyttäjä ei puutu suoritukseen sen käynnistyttyä. Yleisin ja laajasti käytetty pakettipohjainen lähiverkkotekniikka. Laajasti käytetty hila- ja klusterijärjestelmien monitorointijärjestelmä. Useiden toisiinsa yhteydessä olevien tietokoneiden suorittama laskenta. Ympäristö, jossa tietokoneet saattavat olla fyysisesti tai ohjelmistollisesti erilaisia. Hajautettua ja rinnakkaista sovellusten suorittamista hilalaskentajärjestelmässä(engl. grid computing). Useiden tietokoneiden tai klustereiden yhdessä muodostama laskentayksikkö. Yleensä tietokoneet sijaitsevat kaukana toisistaan (engl. grid). Julkisen avaimen järjestelmässä avain, joka on julkinen ja jolla muut voivat salakirjoittaa lähettämänsä viestin, jonka julkista avainta vastaavan yksityisen avaimen haltija pystyy purkamaan. Julkisen avaimen järjestelmässä ylin varmenne, joka on pohjana koko järjestelmän luottamukselle.

VI Klusteri Klusterilaskenta Kerrighed Laskentapilvi Laskentayksikkö Laskentasolmu Live-CD Live-USB Monisäikeinen MPI NFS-protokolla Ohjaava tietokone Ohjelmointirajapinta OpenMP Open MPI PelicanHPC Useiden tietokoneiden yhdessä muodostama laskentayksikkö. Yleensä tietokoneet sijaitsevat lähellä toisiaan klusterissa (engl. cluster). Hajautettua ja rinnakkaista sovellusten suorittamista klusterilaskentajärjestelmässä (engl. cluster computing). SSI-järjestelmä klustereihin. Laajassa mittakaavassa toteutettu, suuren abstraktiotason järjestelmä, joka tarjoaa palveluita yleensä Internetin yli (engl. computing cloud). Laskentaan osallistuva tietokone tai tietokoneiden joukko laajemmassa järjestelmässä. Klusterissa tai vastaavassa laskentajärjestelmässä yksittäinen tietokone, joka sisältää resursseja, joita voidaan käyttää laskennassa. Live-CD on CD tai DVD-levylle tallennettu käyttöjärjestelmä, joka on heti käyttövalmis kun tietokoneen käynnistää kyseiseltä levyltä. Toiminta vastaa Live-CD:tä, mutta tallennusmediana käytetään USB-muistitikkua. Prosessi tai sovellus, joka sisältää kaksi tai useampia säikeitä. Säikeet ovat yleensä prosessin sisällä toisistaan erillään olevia osia, jotka suoritetaan yhdenaikaisesti. Viestinvälitysprotokolla ja rajapinta, joka on yleisesti käytetty klusteri- ja hilalaskennassa (engl. Message Passing Interface). Protokolla, joka on tarkoitettu käytettäväksi tiedostojärjestelmän jakoon verkkoyhteyden yli (engl. Network File System). Klusterissa tai vastaavassa laskentajärjestelmässä tietokone, joka hallitsee järjestelmää tai osajärjestelmää ohjaamalla muita tietokoneita. Voi osallistua laskentaan, mutta ei välttämätöntä. Rajapinta, jonka jokin sovellus toteuttaa ja jota käyttämällä voidaan kommunikoida sovelluksen kanssa. Ohjelmointirajapinta, joka tukee rinnakkaista ohjelmointia jaetun muistin ympäristöissä. Toteutus MPI-järjestelmästä (katso MPI) Klusterilaskentaan suunniteltu Live-CD-pohjainen käyttöjärjestelmä, joka käyttää MPI-tekniikkaa.

VII Pilvilaskenta POSIX Prosessi Prosessien siirto PVM SAGA SATA Varmenne SSI-järjestelmä Suurteholaskenta Rinnakkaislaskenta SSH TFTP TTY Hajautettua ja rinnakkaista sovellusten suorittamista laskentapilvessä (engl. cloud computing). Standardi ohjelmointirajapinta (engl. Portable Operating System Interface for unix) Suoritettavan sovelluksen yksi instanssi, jota suoritetaan suorittimella. Suoritettavan prosessin siirto suorittimelta tai suoritinytimeltä toiselle (engl. process migration). Yleinen rinnakkaiseen laskentaan käytetty tekniikka, jossa useiden tietokoneiden resurssit yhdistetään ohjelmallisesti (engl. Parallel Virtual Machine). Avoin standardi, joka määrittelee ohjelmointirajapinnan hilajärjestelmissä suoritettaville sovelluksille (engl. Simple API for Grid Applications). Sarja-ATA on sarjamuotoinen liitäntä, jota käytetään sisäisten tai ulkoisten massamuistilaitteiden kytkemiseen tietokoneeseen. Elektroninen dokumentti, joka käyttää digitaalista allekirjoitusta sitomaan käyttäjän julkisen avaimen ja identiteetin yhteen. Klusterikäyttöjärjestelmä, joka tukee resurssienjakoa ja pyrkii luomaan yhtenäisen kuvan koko järjestelmästä (engl. Single System Image) Yleinen käsite, jolla viitataan klustereiden tai vastaavien laskentajärjestelmien käyttöön laskennassa. Laskentatehtävän suorittaminen samanaikaisesti käyttämällä useita suorittimia tai suoritinytimiä. Voi tapahtua yksittäisellä tietokoneella tai laajemmassa laskentajärjestelmässä (eng. parallel computing). Tietoliikenneprotokolla, joka on tarkoitettu salattuun tiedonsiirtoon (engl. Secure Shell). Yksinkertainen tiedonsiirtoprotokolla. Tampereen teknillinen yliopisto Virtuaalinen organisaatio Yksittäisiä henkilöitä, ryhmiä, yrityksiä tai jotain vielä laajempia kokonaisuuksia, jotka jakavat järjestelmän tarjoamat fyysiset ja tiedolliset resurssit keskenään. Vuorottaminen Menetelmä, jolla prosessit määritellään suoritettavaksi saatavilla olevilla suorittimilla tai suoritinytimillä.

VIII Web 2.0 XML XtreemOS Internetin hypertekstijärjestelmään (WWW) liittyvä toinen vaihe, joka korostaa erityisesti yhteisökeskeisyyttä, tietojen jakamista ja interaktiivisia sovelluksia. Joukko sääntöjä, jotka määrittelevät kuvauskielen, jolla kuvataan tiedon merkitys sekä tieto itse (engl. Extensible Markup Language). Laaja ja monipuolinen hilakäyttöjärjestelmä.

1 1 1. JOHDANTO Työssä pyritään tutkimaan eri vaihtoehtoja, joilla voidaan toteuttaa laskentajärjestelmä opetuskäytössä olevaan työasemaluokkaan. Kohteena oleva työasemaluokka on yleensä öisin ja viikonloppuisin täysin käyttämättömänä, jolloin sen tarjoamia resursseja voitaisiin hyödyntää suorittamalla tieteellistä laskentaa. Linux-käyttöjärjestelmä on erityisen hyvä toteutuspohja tällaiselle laskentajärjestelmälle, koska se on avoin ja muokattavissa käyttötarpeen mukaan. Linux-käyttöjärjestelmän valintaa tukee myös aiemmat toteutukset vastaavista suurteholaskentajärjestelmistä (TOP500 List 2009), jotka lähes poikkeuksetta perustuvat joihinkin Unix:in kaltaisiin järjestelmiin. Yleisesti ottaen suurteholaskentajärjestelmät ovat pysyviä ja ainoastaan laskentaan sidottuja, mutta tässä työssä on tarkoitus tutkia järjestelmien soveltuvuutta ympäristöön, jossa laskentajärjestelmä otetaan käyttöön vain tarvittaessa. Tällaiseen ympäristöön on toteutettu joitakin järjestelmiä, joista esimerkkeinä Bootable Cluster CD (Bootable Cluster CD) ja PelicanHPC (Creel 2007). Tässä työssä ei ole tarkoitus toteuttaa monipuolista laskentapilven hallintajärjestelmää vaan perusteet eli infrastruktuuri pilvilaskentajärjestelmälle, joka tarjoaa palveluita pienessä mittakaavassa pienelle ryhmälle käyttäjiä. Alussa perehdytään laskentapilven käsitteeseen ja sen pohjalla oleviin tekniikoihin kuten klusteri- ja hilalaskentajärjestelmät. Seuraavaksi tutkitaan mahdollisia laskentajärjestelmiä, jotka soveltuvat kyseiseen ympäristöön. Laskentajärjestelmistä pyritään saamaan informaatiota kehittäjien tukisivustojen avulla sekä testaamalla jokainen esitelty järjestelmä virtualisoidussa ympäristössä. Laskentajärjestelmiä arvioidaan eri tavalla painotettujen ominaisuuksien mukaan ja näiden pohjalta valitaan yksi järjestelmä, joka testataan oikeassa ympäristössä. Testauksen pohjalta tuotetaan raportti, joka kuvaa yksityiskohtaisesti kyseisen järjestelmän käyttöönoton ja asennuksen, mutta ei ota tarkemmin kantaa esimerkiksi mahdollisiin sovelluksiin, joita kyseisellä järjestelmällä voidaan suorittaa.

2 2. TEORIA Jatkuva tiedon määrän lisääntyminen ja sen käsittelyyn vaadittavan laskentatehon kasvava tarve on yksi merkittävimmistä perusteista, joka on aikaansaanut laskentajärjestelmien kehityksen yksittäisestä tietokoneesta aina nykypäivän suuriin laskentapilviin. Seuraavissa luvuissa esitellään pilvilaskennan teoriaa ja tämän taustalla olevia tekniikoita. 2.1. Pilvilaskenta Pilvilaskenta on käsitteenä hyvin laaja ja yksikäsitteistä määritelmää sille ei ole (Twenty Experts 2008). Pilvilaskenta pyrkii yhdistelemään vanhempia tekniikoita kuten hilalaskentaa (eng. grid computing) (Foster et al. 2008) ja uusia tekniikoita kuten Web 2.0:a ja siihen läheisesti liittyvää palvelukeskeistä arkkitehtuuria (eng. Service Oriented Architecture). Nämä tekniikat pyrkivät tuomaan käyttäjille lisää joustavuutta ja järjestelmätasolla parempaa yhteensopivuutta (Murugesan 2007). Yhteistä monille eri määritelmille on ainakin pyrkimys edullisempaan ja tehokkaampaan hajautettuun laskentaan. Yleistä on myös suuremman abstraktiotason tarjoaminen käyttäjille, eli käyttäjän ei tarvitse tietää teknisestä toteutuksesta tai fyysisestä sijainnista käyttääkseen järjestelmää. Yleisesti ottaen pilvilaskentajärjestelmää voidaan hallita esimerkiksi Internetin välityksellä. Pilvilaskentajärjestelmät voidaan jakaa käyttäjien ja palvelun julkisuuden mukaan: julkisiin (eng. public cloud), yksityisiin (eng. private cloud) ja näiden yhdistelmiin (eng. hybrid cloud) (Dikaiakos et al. 2009). Tässä toteutuksessa keskitytään yksityisen pilven ratkaisuun, koska käyttäjinä ovat ainoastaan tietyt henkilöt yhden yhteisön sisällä. Pilvilaskentajärjestelmä voidaan jakaa myös arkkitehtuurinsa puolesta kolmeen kerrokseen: pohjakerros, pilvikerros ja sovelluskerros (Dikaiakos et al. 2009). Tässä työssä keskitytään pääasiassa alimpaan kerrokseen eli pohjakerrokseen. Pohjakerros pitää sisällään esimerkiksi tiedon varastoinnin, laskentaresurssien ja laitteiden välisen tietoliikenteen. Pilvilaskentajärjestelmissä pohjakerroksen toteutus tehdään yleensä käyttäen palvelimia, joiden käyttöjärjestelmä on suunniteltu hajautettuun laskentaan (Rittinghouse & Ransome 2010). Kuvassa 2.1 on esitetty yleinen rakenne, jonka avulla voidaan selittää useimpien määritelmien mukaiset pilvilaskentajärjestelmät ja kuvata niiden toiminta. Perustana järjestelmälle on pohjakerros, jonka toimintoja tarkastellaan myöhemmin luvussa 2.2. Käyttäjän sovelluksille on järjestelmästä riippuen useita eri suorituspolkuja. Yksinkertaisin vaihtoehto sovelluksen kannalta on kommunikoida suoraan Linux-järjestelmien yleisen järjestelmäkutsurajapinnan kanssa, jolloin hajautetun

3 laskennan toteuttavat tekniikat ovat sisällytettynä Linux-ytimen tasolla. Seuraavan tason järjestelmissä on mahdollista käyttää välissä erillistä viestinvälitysrajapintaa, josta kerrotaan tarkemmin luvussa 2.2.1.1. Suurimman abstraktion järjestelmissä toteutus pohjautuu tarkoitukseen tehtyyn pilvenhallintajärjestelmään, jonka tarjoamien toimintojen avulla on mahdollista suorittaa eri virtuaalikoneita, jotka ovat käyttäjien hallittavissa. Virtuaalikoneet toteuttavat virtuaalisen laitteiston, joka edelleen on alustana uudelle käyttöjärjestelmälle. Käyttäjän sovellukset suoritetaan tämän käyttöjärjestelmän päällä. Käyttäjän sovellukset Sovelluskerros Virtuaalikoneet Pilvenhallintajärjestelmä Pilvikerros Viestinvälitysrajapinta Järjestelmäkutsurajapinta Linux-ydin SSI-laajennukset Ytimen moduulit Pohjakerros Laitteisto Kuva 2.1 Pilvijärjestelmien rakenne yleisesti Monet pilvilaskennan mahdollistavista tekniikoista menevät määritelmänsä puolesta toistensa päälle ja sisältävät alemman tason tekniikoita [Kuva 2.2]. Kuvasta selviää, että pilvijärjestelmät ovat osittain riippuvaisia hilalaskentajärjestelmistä ja hilalaskentajärjestelmät edelleen riippuvaisia klusterijärjestelmistä. Kaikki nämä ovat hajautetun laskennan toteuttavia tekniikoita. Kuvasta selviää myös järjestelmien laajuus ja pilvijärjestelmien suuri palvelukeskeisyys verrattuna muihin toteutustekniikoihin. Sovelluskeskeisyys tarkoittaa perinteisempää järjestelmämallia, jossa sovellukset nähdään enemmänkin yksittäisinä ja toisistaan riippumattomina.

4 Järjestelmän suuruus Hajautettu laskenta Hilalaskentajärjestelmät Käytettävä arkkitehtuuri ja pohjalla oleva käyttöjärjestelmä asettaa perusrajoitteita mahdollisille ohjelmointirajapinnoille. Ohjelmointirajapinta tarjoaa mahdollisuuden sovellusten kehittäjille tehokkaampaan ja siirrettävämpään sovelluskehitykseen sekä mahdollisesti piilottaa monimutkaisen teknisen toteutuksen. Ohjelmointirajapintoja voidaan toteuttaa eri tasoilla, esimerkiksi käyttöjärjestelmän ja yksittäisten sovellusten tasoilla. Osa klustereissa käytetyistä tekniikoista vaativat hyvin matalan tason tukea, eli käyttöjärjestelmän ytimen muokkausta toimiakseen (Min Choi et al. 2004,s. 242). Järjestelmä saattaa olla hyvin hyödytön, jos se ei tarjoa käyttötarkoitukseen sopivaa rajapintaa sovelluskehitykselle, vaikka fyysinen arkkitehtuuri olisi huippuluokkaa ja pystyisi tehokkaaseen laskentaan. Standardoitujen rajapintojen käyttöön tulisi erityisesti panostaa juu- Pilvilaskentajärjestelmät Klusterijärjestelmät Web 2.0 Sovelluskeskeisyys Kuva 2.2 Käytettävät tekniikat ja niiden yhteydet (Foster et al. 2008) 2.2. Klusterilaskenta Klusteri on yleensä useamman toistensa kanssa läheisessä yhteydessä olevien tietokoneiden, eli laskentasolmujen, muodostama laskentayksikkö. Klusterin yksittäiset tietokoneet ovat monesti toistensa kanssa laitteiston puolesta yhteneviä (Pant & Jafri 2004, s. 23), joka helpottaa ja yksinkertaistaa järjestelmän hallinta. Yleensä yksittäisen tehtävän suorittamisen yhteydessä kommunikointia yksittäisten tietokoneiden välillä esiintyy runsaasti. Klusterilaskennan yhteydessä alalla käytetään hyvin paljon käsitettä Beowulfklusteri. Normaali Beowulf-klusteri koostuu yleisesti käytetyistä komponenteista kuten PC-tietokoneista ja Ethernet-kytkimestä ja on näin ollen edullinen rakentaa (Merkey). 2.2.1. Ohjelmointirajapinnat Palvelukeskeisyys

5 ri edellä esitettyjen etujen vuoksi. Yksi tärkeä osa järjestelmän toteutusta on pohtia jo suunnitteluvaiheessa mitä rajapintoja tullaan tarvitsemaan. Periaatteellisesti klusterilaskentajärjestelmiä on ohjelmointirajapintojen kannalta kahta eri tyyppiä ja kolmantena voidaan pitää näiden kahden yhdistelmää. Yleisen toteutustavan mukaista on käyttää MPI:tä (Message Passing Interface) viestienvälitykseen eri laskentayksiköiden välillä (Rabenseifner et al. 2009, s. 427). MPI sisältää yhteisiä ominaisuuksia PVM-toteutustekniikan (Parallel Virtual Machine) kanssa, jossa laskenta toteutetaan eri laskentayksiköihin asennettujen sovellusten välisellä kommunikoinnilla (MPI: A Message-Passing Interface Standard 2009, s. 2 ja s. 305; The PVM System). Toinen vaihtoehto on toteuttaa järjestelmä, joka tukee suoraan monisäikeisten sovellusten suorittamista useilla eri laskentasolmuilla rinnakkaisesti. 2.2.1.1 Viestinvälitysrajapinta MPI on useiden valmistajien hyväksymä de facto standardi rajapinta ja protokolla viestien välitykseen useiden tietokoneiden välillä. MPI:n avulla on mahdollista siirtää osia sovelluksesta suoritettavaksi toisella laskentasolmulla ja näin toteuttaa hajautettua rinnakkaista laskentaa. MPI määrittelee yhteisen tavan ohjelmoida sovelluksia, jotka käyttävät kyseistä rajapintaa. MPI on siis ohjelmointikieliriippumaton spesifikaatio rajapinnasta, ei ohjelmointikieli. MPI:stä on olemassa monia eri toteutusvaihtoehtoja, joista esimerkkinä Open MPI (MPI Implementations). MPI-standardi määrittelee nykyisin myös muistinhallintaan liittyviä ominaisuuksia ja muistin jakamista laskentayksiköiden välillä, mutta sen ei kuitenkaan ole tarkoitus hoitaa käyttöjärjestelmän tehtäviä. (MPI: A Message-Passing Interface Standard 2009, s.1-3.) Alunperin MPI on tarkoitettu järjestelmiin, joissa on hajautetut muistialueet. Hajautettujen muistialueiden järjestelmissä jokaisella suorittimella on käytössä oma fyysinen muistinsa, joka on suoraan käytettävissä vain ja ainoastaan kyseisen laskentayksikön käyttöjärjestelmän prosesseille. MPI:n edut ovat sen hyväksi todistettu tehokkuus (Träff et al. 2009, s. 1) ja se on käytössä myös useissa 500:n tehokkaimman supertietokoneen listalla olevissa järjestelmissä (TOP500 List 2009). Ohjelmien toteutuksesta on paljon kokemusta ja standardinomainen yhteensopivuus takaa siirrettävyyden useiden eri laite- ja sovellusalustoiden välillä. MPI:tä on mahdollista käyttää myös heterogeenisessä ympäristössä, missä eri laitteet eivät ole laitteistonsa tai käyttöjärjestelmänsä puolesta yhteneviä (MPI: A Message-Passing Interface Standard 2009, s.5). Nykyisin MPI:n käyttö on myös yleistynyt, koska kuluttajaluokankin tietokoneissa alkaa olla moniydinsuorittimia vakiona ja MPI:tä voidaan hyödyntää jo yhden tietokoneen järjestelmässä. MPI:n käyttö ei poissulje muita tekniikoita, joten sekin tukee MPI:n käyttöä. MPI:stä on kehitetty myös toteutuksia, jotka soveltuvat hitaampien verkkoyhteyksien yli käytettäväksi ja spesifikaatiossa määritellään, että käyttäjän ei tarvitse huolehtia tietoliikenteen ongelmista vaan ne ovat alemman kerroksen tietoliikennejärjestelmän hallussa (MPI: A Message-Passing Interface Standard 2009, s.2).

6 2.2.1.2 Jaetun muistin tekniikat Jaetun muistin tekniikat vaativat käyttöjärjestelmältä verrattain enemmän, koska sovellukset olettavat toimivansa lähes kuten fyysisesti yhtenäisellä tietokoneella. Kyseiset ohjelmointirajapinnat tarjoavat siis käytännössä samat toiminnot kuin aikaisemminkin käytetyillä supertietokoneilla monisäikeistetyt sovellukset.(amza et al. 1996, Rabenseifner et al. 2009, s. 429-430 mukaan.) Näistä ohjelmointirajapinnoista esimerkkeinä ovat standardoitu Portable Operating System Interface (POSIX) ja de facto standardi OpenMP (van der Pas 2009, s. 7-10). Käyttöjärjestelmän tarvitsee olla loogisesti yhtenäinen, ja tällaisen toteuttamiseen käytetään Single System Image (SSI) järjestelmiä (Pfister 1993, s. 59). Nämä järjestelmät pyrkivät jakamaan kaikki eri resurssit klusteriin kytkettyjen koneiden kesken. Resurssien jakaminen näkyy käyttäjälle yhtenäisenä suoritusalustana (eng. Single Process Space) ja näin ollen jokaisella järjestelmään kuuluvalla tietokoneella ovat näkyvissä samat prosessit ja yleiset Linux:n prosessienhallintatyökalut ovat käytettävissä koko SSI-järjestelmän tasolla. Useat järjestelmät tukevat prosessien siirtoa (eng. Process migration) laskentasolmulta toiselle.(choi et al., s. 235-236.) Prosessien siirto voi toimia joko manuaalisesti eli vain pyydettäessä tai automaattisesti eri laskentasolmujen kuormituksen mukaan. Lisäksi monessa toteutuksessa on vaatimuksena sama juurihakemisto kaikkien laskentayksiköiden kesken tai ainakin joitain järjestelmän hakemistoja tulee olla kaikkien laskentayksiköiden saatavilla. 2.2.1.3 Yhdistelmätekniikat Yhdistelmätekniikat perustuvat siis ohjelmointirajapintojen hyödyntämiseen siten, että osa sovelluksesta käyttää viestienvälitystä esimerkiksi Open MPI:tä ja osa OpenMP:tä. Käytännössä tämä toteutuu esimerkiksi siten, että Open MPI:tä käytetään laskentayksiköiden väliseen kommunikaatioon, ja laskentayksikön sisällä suoritettava mahdollisesti monisäikeinen sovellus tai sovelluksen osa käyttää OpenMP:tä. OpenMP:n käytön tarkoitus on hyödyntää kaikkien laskentayksikön sisällä olevien suorittimien tai suoritinytimien kapasiteetti. (Rabenseifner et al. 2009, s. 429.) Näiden avulla voidaan saavuttaa erityistä tehokkuutta tietyissä olosuhteissa, mutta tähän liittyvien sovellusten tarkempi tarkastelu ei kuulu tämän työn aihepiiriin. 2.3. Hilalaskenta Yleisesti hilalaskenta on hajautetumpi versio klusterilaskennasta eli laskentasolmut sijaitsevat toisistaan fyysisesti kauempana kuin klusterilaskennassa. Laitetasolla hilalaskentasolmuissa on huomattavasti enemmän heterogeenisuutta kuin tyypillisissä klusterijärjestelmissä (Pant & Jafri 2004, s. 23). Käytännössä jokainen laite voi olla erilainen. Yksittäinen klusteri voi olla hilalaskentaverkossa yksi laskentasolmu siinä missä yksittäinen tietokonekin. Hilalaskennassa laskentayksiköiden välinen kommunikointi on yleisesti vähäisempää, koska tiedonsiirto saattaa tapahtua jopa Internetin yli ja siten viiveet ja vasteajat ovat hyvin suuria verrattuna puhtaisiin klusterijärjestelmiin (Pant &

7 Jafri 2004, s. 24). Hilalaskentajärjestelmiin on kehitetty omia ohjelmointirajapintoja, joiden avulla sovelluksista voidaan helpommin tehdä hilalaskentaan soveltuvia (Goodale et al. 2008). 2.4. Kohdeympäristö Järjestelmä toteutetaan ja testataan työasemaluokassa, joka sisältää 21 kappaletta Intel Pentium 4 suorittimilla varustettua tietokonetta, joissa on 1,5 gigatavua keskusmuistia. Tietokoneet ovat yhdistettyinä 100 Mbit/s Ethernet:llä kytkimeen ja sitä kautta toisiinsa sekä TTY:n sisäverkkoon ja myöhemmin Internetiin. Työasemaluokka on jatkuvassa opetuskäytössä ja olemassa olevaan järjestelmään ei saa tehdä mitään muutoksia, eli tietokoneiden kiintolevyille ei voida asentaa uutta käyttöjärjestelmää. Kohdeympäristö asettaa rajoitukset mahdollisille toteutustavoille. Opiskelijoilla on työasemaluokkaan kulkuoikeus, joka vaikuttaa osaltaan järjestelmän fyysiseen tietoturvaan. Tietokoneiden virransyöttöä ei ole varmistettu, joten esimerkiksi sähkökatkoihin on varauduttava. Käytettäessä järjestelmää raskaaseen laskentaan, on huomioitava tietokoneiden suuri lämmöntuotto, joka asettaa vaatimuksia työasemaluokan ilmastoinnille. Yksitäisten tietokoneidenkin lämpötiloja on hyvä tarkkailla pitkään jatkuvassa rasituksessa, koska niiden omat jäähdytysratkaisut eivät ole välttämättä riittäviä.

8 3. TOTEUTUSVAIHTOEHDOT Eri vaihtoehtoja, eli käytännössä jonkin tietyn Linux-jakelupaketin pohjalle rakennettuja perusjärjestelmiä, löytyy monia. Toteutusta suunniteltaessa on perehdytty joihinkin merkittävimpiin ja ennen kaikkea avoimen lähdekoodin määritelmän (The Open Source Definition) mukaisiin vaihtoehtoihin. Avoimen lähdekoodin määritelmän mukaisten sovellusten käyttäminen mahdollistaa toteutettavan järjestelmän hyödyntämisen myös projekteissa, joissa tutkimus on kaupallista toimintaa. Monien valmiiden järjestelmien kehitys on lopetettu tai ne ovat yhdistyneet johonkin uuteen kehitysprojektiin. Merkittävimmät vaihtoehdot on valittu seuraavien kriteerien pohjalta siten, että tärkein ominaisuus on luettelossa ensimmäisenä: tekninen soveltuvuus kyseiseen ympäristöön, käytettävyys, ohjelmiston ajantasaisuus, muokattavuus, sovellettavuus ja dokumentaation kattavuus sekä tuotetuki. Ratkaisun tulee olla ennen kaikkea teknisesti mahdollinen toteuttaa, esimerkiksi ei voida valita järjestelmää, joka ei toimi käytössä olevalla Pentium 4 -arkkitehtuurilla. Ratkaisun tulee toimia Ethernet-verkon välityksellä, eikä vaatia mitään muita kommunikointiväyliä. Käytettävyys on myös hyvin tärkeä tekijä toteutustekniikkaa valittaessa, sillä järjestelmää voi käyttää myös henkilöt, joilla ei ole riittävää tietoa ja teknistä osaamista kaikkien järjestelmien käyttämiseksi. Huono käytettävyys altistaa kokeneemmankin käyttäjän tekemään enemmän virheitä tai ainakin hidastaa työskentelyä. Ohjelmiston ajantasaisuus tarkoittaa että uusia, mutta mahdollisimman vakaita toteutuksia tulisi suosia. Tämän lisäksi on hyvä arvioida päivitysten ja korjausten jakelu myös lähitulevaisuudessa. Muokattavuudella tarkoitetaan tässä yhteydessä järjestelmän pysyvää muokkausta, eli yleistäen onko järjestelmän haluttu tila mahdollista tallentaa siten, että seuraavalla käyttökerralla se olisi mahdollisimman samanlainen, eikä kaikkia asetuksia tarvitsisi tehdä uudelleen. Muokattavuuteen liittyy myös mahdollisuus lisätä järjestelmään toimintoja, jotka lisäävät sen sovellusmahdollisuuksia. Sovellettavuus tarkoittaa mahdollisia eri käyttötapauksia ja sovellusalueita, joissa järjestelmää tässä yhteydessä voidaan hyödyntää, eli esimerkiksi soveltuuko se simulaatioiden suorittamiseen tai muuhun tekniseen laskentaan. Kaikkia mahdollisia järjestelmiä ei ajan puitteissa ole mahdollista testata käytännössä ja siten todeta niiden ominaisuuksia ja puutteita, joten tämä tieto on hankittava järjestelmän tekijöiden toimittaman dokumentaation pohjalta. Dokumentaatio helpottaa myös asennusta ja järjestelmän käyttöönottoa ja hyvät toteutusesimerkit on otettu huomioon eri toteutusvaihtoehtoja valittaessa. Myös asennuksen jälkeinen tuotetuki, joka voi olla paljolti riippuvainen kehitysyhteisön laajuudesta, on tärkeää. Kehitysyhteisön

9 laajuus riippuu myös paljon aikaisempien toteutusten määrästä, jota tullaan tässä arvioimaan. 3.1. XtreemOS XtreemOS on laaja ja monipuolinen hilalaskentajärjestelmä, joka on kehitetty Euroopan komission tuella ja projektissa on ollut mukana useita akateemisia instituutioita ja yrityksiä Euroopasta sekä Kiinasta. XtreemOS on kehitetty Mandriva Linux 2009.0 jakelupaketin pohjalta. XtreemOS käyttöjärjestelmä tukee virtuaalisia organisaatioita. Virtuaaliset organisaatiot voivat olla esimerkiksi yksittäisiä henkilöitä, ryhmiä, yrityksiä tai jotain vielä laajempia kokonaisuuksia, jotka jakavat järjestelmän tarjoamat fyysiset ja tiedolliset resurssit keskenään. Nykyisen palvelukeskeisen ajattelun pohjalta virtuaaliset organisaatiot ovat tärkeässä roolissa kun puhutaan järjestelmien skaalautumisesta eli laajennettavuudesta lähes ilman rajoja. XtreemOS pyrkii tarjoamaan tärkeimmät toiminnot, joilla näitä virtuaalisia organisaatioita voidaan hallita ja tarjota resurssit niiden käyttöön. Järjestelmänhallinta voidaan suorittaa joko komentorivi- tai webkäyttöliittymän avulla. (XtreemOS: A Linux-based Operating System.) 3.1.1. Arkkitehtuuri ja ominaisuudet XtreemOS-järjestelmän arkkitehtuuri on esitetty alla [Kuva 3.1]. XtreemOS sisältää kolme eri versiota, jotka ovat työpöytäkäyttöjärjestelmä, klusterikäyttöjärjestelmä ja mobiililaajennus. Yksittäisillä laitteilla voi olla yksi tai useampia erilaisia rooleja. Mahdollisia rooleja on kolme: ydinsolmu, resurssisolmu ja asiakassolmu (Massimo & Johnson 2009, s. 14). Ydinsolmut toimivat palveluiden välittäjinä resurssisolmuilta XtreemOS-järjestelmälle. Resurssisolmut tarjoavat esimerkiksi laskenta- ja varastointiresursseja järjestelmän käyttöön. Asiakassolmut taas voivat syöttää tehtäviä järjestelmälle sekä tarkastella niiden suoritusta ja resurssien käyttöä. XtreemOS vastaa toteutuksen pohja- ja hilakerroksen toiminnoista eli se tuo käyttöjärjestelmän ytimen tasolla tuen klusterijärjestelmiin sekä tarjoaa kattavat toiminnot sovelluksen suorituksen hallintaan, hajautettuun tiedonhallintaan ja tietoturvallisuuden ylläpitoon. Käyttäjän ohjelmisto tarkoittaa sovelluksen käyttäjän tuottamia tai käyttämiä sovelluksia, joita järjestelmällä suoritetaan.

10 XtreemOS hilakäyttöjärjestelmä VO ja turvallisuuden hallinta Hilasovellukset XtreemOS-ohjelmointirajapinta Sovelluksen suorituksen hallinta Perusteet korkean saatavuuden ja skaalautuvuuden palveluille VO-laajennukset Linux:iin Tiedonhallinta Linux LinuxSSI Sulautettu Linux PC Klusteri Mobiililaite Käyttäjän ohjelmisto Hilakerros Pohjakerros Kuva 3.1 XtreemOS-järjestelmän arkkitehtuuri (XtreemOS: A Linux-based Operating System) 3.1.1.1 Hilakerros Järjestelmässä suoritettavissa sovelluksissa voidaan käyttää XtreemOS:n tukemaa SA- GA-ohjelmointirajapintaa (Goodale et al. 2008). Käyttäjä voi syöttää sovelluksensa järjestelmään suoritettavaksi web-pohjaisen käyttöliittymän avulla, jossa määritellään muun muassa syöte- ja tulostetiedostot XML-muotoisessa asetustiedostossa. Asetustiedossa on mahdollista määritellä tarkemmat suoritusparametrit. Sovelluksen suorituksen hallinta perustuu niin kutsuttuun eräajojärjestelmään, missä suoritettava sovellus tulee voida suorittaa alusta loppuun ilman käyttäjän puuttumista suorituksen kulkuun. Suoritusten hallintaan kuuluu myös sovelluksen suorituksen etenemisen tarkkailu ja resurssien käytön seuranta. XtreemOS-järjestelmään kuuluu oma tiedostojärjestelmä, joka on suunniteltu erityisesti hajautettuun tiedonsäilytykseen ja käyttöön. Tiedostojärjestelmä on oliopohjainen eli liitännäistiedot kuten tiedoston nimi ja koko ovat tallennettuina eri paikkaan kuin varsinainen tietosisältö. Tiedostojärjestelmän avulla käyttäjillä on saatavissa oma kotihakemisto riippumatta mistä käyttää kyseistä järjestelmää. Turvallisuuden hallinta vastaa esimerkiksi varmenteiden käytöstä ja säilömisestä. Virtuaaliorganisaatioiden hallinnassa käyttäjillä on mahdollisuus luoda uusia ryhmiä ja lisätä näihin käyttäjiä. Virtuaalisen organisaation ylläpitäjä voi hallita toimialueen resursseja ja käyttäjien oikeuksia. Hallinta suoritetaan web-pohjaisen käyttöliittymän avulla. XtreemOS:n hilakerroksen alin osa eli perusteet korkean saatavuuden ja skaalautuvuuden palveluille yhdistää toisistaan erillään olevat laskentasolmut kokonaisuudeksi, jota on helpompi hallita yllä esitettyjen toimintojen avulla. (XtreemOS: A Linux-based Operating System.) 3.1.1.2 Pohjakerros Pohjakerroksessa on toteutettu klustereille tarkoitettu LinuxSSI-käyttöjärjestelmä. LinusSSI toteuttaa yhtenäisen järjestelmän abstraktion, jossa resurssit näkyvät kaikilla laitteilla (katso luku: 2.2.1.2 Jaetun muistin tekniikat). XtreemOS:n käyttämä SSItoteutus perustuu Kerrighed-järjestelmään (Kerrighed 2010). LinuxSSI-järjestelmään

11 kuuluvien laitteiden tulee olla samassa fyysisessä aliverkossa (Massimo & Johnson 2009, s. 134). LinuxSSI sisältää automaattisen konfigurointityökalun, jolla voidaan käynnistää klusteri. LinuxSSI-käyttöjärjestelmä tulee asentaa kaikille laskentasolmuille erikseen, eikä se oletusarvoisesti tue levyttömiä laskentasolmuja, jotka osaisivat käynnistyä automaattisesti ohjaavaan tietokoneen tarjoamalta verkkolevyltä. Järjestelmänvalvojan oppaassa kerrotaan, että LinuxSSI-klusteria tulisi käyttää vain resurssina XtreemOS-järjestelmässä. Työpöytäjärjestelmä sen sijaan voi toimia kaikissa kolmessa eri tehtävässä. Työpöytäjärjestelmä asennetaan normaalin Mandriva Linux-käyttöjärjestelmän päälle. Työpöytäjärjestelmät voidaan asentaa myös heterogeeniseen ympäristöön. Mobiililaajennus on tarkoitettu älykkäisiin sulautettuihin järjestelmiin ja sen avulla voidaan käyttää asiakassolmun ominaisuuksia vastaavia toimintoja. (Massimo & Johnson 2009, s. 11-12.) 3.1.2. Tietoturva XtreemOS-järjestelmässä on kiinnitetty erityistä huomiota tietoturvaan ja tiedonsiirto on mahdollista turvata käyttämällä SSL-salausprotokollaa (Massimo & Johnson 2009, s. 17). Toiminta perustuu varmenteisiin, jotka sisältävät julkiset avaimet, joilla voidaan salakirjoittaa halutut viestit. Järjestelmässä on yksi juurivarmenne, joka pitää asentaa jokaiselle koneelle, joka kytkeytyy laskentaverkkoon. Juurivarmenteen yksityinen avain tulee suojata erityisen hyvin, koska sen varassa on koko järjestelmän luotettavuus. Juurivarmenteen yksityinen avain tulisikin säilyttää tietokoneella, johon ei ole mitään verkkoyhteyttä ja joka on fyysisesti suojatussa tilassa. Juurivarmenteen yksityisellä avaimella allekirjoitetaan palveluvarmenteet, joista esimerkkinä tunnistautumisen hallintapalvelun varmenne, jota käytetään edelleen ylemmän tason varmenteiden allekirjoittamisessa (Massimo & Johnson 2009, s.42). Tämän lisäksi käytetään vielä käyttäjä-, ja resurssivarmenteita. Käyttäjä- ja palveluvarmenteiden avulla käyttäjät voidaan todentaa oikeiksi palvelimille ja palvelimet käyttäjille sekä allekirjoittaa palvelimien vastaukset. Resurssivarmenteet ovat käytössä kun resurssit tunnistautuvat palveluille. (Massimo & Johnson 2009, s. 17-20, 106.) LinuxSSI-järjestelmässä laskentasolmujen välillä tapahtuvaa tiedonsiirtoa ei salakirjoiteta oletuksena, koska perusjärjestelmänä on Kerrighed. Kerrighed vaatii verkkojaot tiettyjen liitospisteiden osalta, jotta se toimisi kunnolla ja kyseiset verkkojaot tehdään käyttäen NFS-protokollaa. NFS-protokollasta on mahdollista käyttää myös salattua versiota (Shepler et al. 2010, s. 9), mutta sovelluksen dokumentaatio eikä automaattinen konfigurointisovellus tue tätä. 3.1.3. Tuotetuki XtreemOS:n kehityksestä on kattavat raportit saatavilla julkisesti järjestelmän virallisilta web-sivuilta (XtreemOS: A Linux-based Operating System). Tämän lisäksi sivuilta löy-

12 tyy viittauksia useisiin tieteellisiin julkaisuihin, joissa käsitellään XtreemOSjärjestelmää. Sivustolta löytyy myös videoita ja muuta informatiivista materiaalia, joissa esitellään järjestelmän toimintaa. Järjestelmänvalvojan käyttöön suunnattu dokumentaatio on kattava ja pyrkii käymään läpi järjestelmän asennuksen vaihe vaiheelta (Massimo & Johnson 2009). Järjestelmän tulevia ominaisuuksia on kuvattu useissa dokumenteissa ja tulevaisuuden suunnitelmien pohjalta voidaan olettaa, että tuotetuki pysyy hyvällä tasolla myös jatkossa. XtreemOS-järjestelmästä on mahdollista tehdä Live-CD, mutta sellaista ei tarjota valmiina (Giniès & Vigier 2009). Live-CD on CD-levylle tallennettu käyttöjärjestelmä, joka on heti käyttövalmis kun tietokoneen käynnistää kyseiseltä CDlevyltä. Live-CD:n heikkous on sen pysyvyys, koska CD-levyille ei yleensä pystytä tallentamaan järjestelmään tehtyjä muutoksia. Live-CD:n korvaajaksi onkin nykyisin tullut vastaava versio, mutta tallennusmediana käytetään USB-muistitikkua, jolle myös muutoksien tekeminen ja asetusten tallentaminen käytön yhteydessä on mahdollista. 3.1.4. Soveltuvuus ja yhteenveto Yhteenveto järjestelmän tiedoista ja versionumeroista on esitetty taulukossa 3.1. Järjestelmään tutustuminen on mahdollista käyttämällä valmiiksi asennettuja virtuaalikoneiden virtuaalikiintolevyjä, jotka ovat saatavilla myös järjestelmän virallisilta websivuilta. Valmiiksi asennettuja järjestelmiä testatessa VirtualBox-ohjelmiston Windows versiolla 3.1.4 (Sun VirtualBox 2009) havaittiin, että käyttöjärjestelmiin oli asennettu epäsopiva näytönohjaimen ajuri. Tämä esti graafisen käyttöliittymän käynnistymisen ja järjestelmän testauksen, mutta soveltuvan ajurin asentaminen onnistui suorittamalla komento XFdrake ja valitsemalla näytönohjaimeksi VirtualBox virtual videocard. Toisena puutteena voitaisiin pitää virtuaaliverkkokorttien tyypin määrittelemättä jättämistä, koska kyseinen käyttöjärjestelmä muistaa siihen aiemmin liitetyt verkkokortit ja lisää uudet juoksevan numeroinnin mukaan vanhojen perään, ei valmiiksi konfiguroitu järjestelmä ei enää toimikaan jos siihen lisätään eri verkkokortit. Tämä ongelma voidaan kiertää poistamalla tiedosto /etc/udev/rules.d/70-persistent-net.rules ja käynnistämällä järjestelmä uudelleen, jolloin vanhat verkkokortit poistuvat ja uudet näkyvät oikein. XtreemOS-järjestelmä on tarkoitettu hyvin laajojen verkkojen käyttöjärjestelmäksi, virallisilla web-sivuilla ilmoitetaan sen tukevan, jopa satojatuhansia laskentasolmuja ja miljoonia käyttäjiä (XtreemOS: A Linux-based Operating System). Tämä ei estä sen käyttämistä myös pienemmässä mittakaavassa, mutta järjestelmänhallinta ja ylläpito ovat verrattain monimutkaisia. XtreemOS-järjestelmä vaatii kaikkien peruspalveluiden asentamista ja varmenteiden käyttöä, jotka eivät tietoturvan ja käyttötarkoituksen mukaan olisi välttämättömiä toteutettavassa järjestelmässä. XtreemOSjärjestelmästä puuttuu tuki kiintolevyttömille laskentasolmuille, josta johtuen XtreemOS-käyttöjärjestelmä tulisi todellisessa toteutusympäristössä asentaa muistitikuille tai luoda tarvittavat Live-CD:t. Muistitikkuja tai CD-levyjä tarvittaisiin siis yksi jokaiselle laskentasolmulle. CD-levyjen tiedostorakenne on pysyvä ja mikäli järjestelmään halutaan tehdä pysyviä muutoksia, on luotava uusi Live-CD. Normaali asennus kiintolevylle

13 tai muistitikulle vie tilaa käytännössä yli kaksi gigatavua, joten jokaiselle laskentasolmulle olisi hyvä varata vähintään neljän gigatavun suuruinen muistitikku. Taulukko 3.1 XtreemOS-järjestelmän yleistiedot (XtreemOS: A Linux-based Operating System) Nimi ja versio XtreemOS 2.0 Julkaistu 12.11.2009 Tyyppi Linux-jakelupaketti Ohjelmointirajapinnat Asennusmuoto Kehittäjä Muuta Klusteri SSI, Grid Mandriva 2009.0 Linux XtreemOS API (POSIX), Jaettu sekä hajautettu muisti, Kiintolevy/USB-muisti, (Live-CD) Useita yliopistoja ja yrityksiä Tuki yksittäisille PC:eille, klustereille ja mobiililaitteile. 3.2. PelicanHPC PelicanHPC on Beowulf-tyyppinen toteutus klusterijärjestelmästä. Sen on kehittänyt Universitat Autònoma Barcelona. PelicanHPC:n kehitys on alkanut aiemman projektin ParallelKnoppix:n pohjalta. Pohjana PelicanHPC v2.0 käyttää Debian GNU/Linux jakelupaketin versiota squeeze. (Creel 2007.) Ideana PelicanHPC-järjestelmässä on helppokäyttöisyys ja nopea käyttöönotto. PelicanHPC-järjestelmää voi käyttää myös vain yhdellä koneella. 3.2.1. Arkkitehtuuri ja ominaisuudet Järjestelmä perustuu Live-CD-pohjaiseen ratkaisuun, joka on valmiiksi saatavilla sekä 32-bittisenä että 64-bittisenä versiona. Järjestelmä on rakennettu käyttämällä Debian live-helper -sovellusta, jonka avulla on mahdollista luoda mukautettu Live-CD tai Live- USB toteutus Debian GNU/Linux -käyttöjärjestelmästä. Järjestelmä perustuu MPIpohjaiseen toteutukseen ja laskentasolmut näkyvät toisistaan erillisinä resursseina ja ovat arkkitehtuuriltaan normaaleja Debian GNU/Linux -järjestelmiä. Ensimmäinen tietokone käynnistetään käyttämällä edellä mainittua Live-CD:tä, jolloin tästä tulee muita laskentasolmuja ohjaava pääsolmu. Laskentasolmut käyttävät verkkokäynnistystä ja saavat tiedostojärjestelmänsä ohjaavalta tietokoneelta. PelicanHPC latautuu laskentasolmujen keskusmuistiin. Kaikilla solmuilla on saatavissa yhteisen tiedostojärjestelmän kautta yhteinen kotihakemisto, johon voidaan asentaa sovelluksia käynnistyksen jälkeen. Yhteinen tiedostojärjestelmä on käytettävissä NFSprotokollan avulla. Kotihakemisto voidaan tallentaa erilliselle laitteelle kuten USBmuistitikulle tai ohjaavan tietokoneen keskusmuistiin.

14 Järjestelmään on lisätty mukaan useita erilaisia testi- ja esimerkkisovelluksia, joilla voidaan esimerkiksi mitata järjestelmän suorituskykyä. Mukana on myös valmiiksi asennettu versio GNU Octave-laskentaohjelmistosta (Octave 2006) sekä Gangliamonitorointijärjestelmä (Ganglia Monitoring System). 3.2.2. Tietoturva Järjestelmä soveltuu ainoastaan klusterijärjestelmän pohjaksi ympäristöön, jossa laitteet ovat kytkettyinä samaan lähiverkkoon, jolloin tietoliikenteen näkökulmasta laskentajärjestelmä on erotettuna Internetistä ja laskentasolmujen välinen kommunikointi tapahtuu ainoastaan lähiverkon sisällä. Järjestelmä generoi SSH-avaimet eri laskentasolmuille automaattisesti ja Open MPI käyttää SSH:ta solmujen välisessä kommunikoinnissa. Yhteisen tiedostojärjestelmän käyttö verkon yli ei ole salattua. Mikäli järjestelmässä päätetään käyttää kotihakemiston tallennuspaikkana keskusmuistia, on ongelmana tietojen katoaminen. Keskusmuisti tyhjenee aina jos järjestelmä käynnistyy uudelleen. Yksinkertaisin tapa säilyttää tiedot on käyttää erillistä USB-muistitikkua kotihakemistona, johon laskennan seurauksena saadut tulokset tallennetaan. Live-CD -järjestelmä käynnistyy aina muokkaamattomana, koska CD-levylle ei voida tallentaa tehtyjä muutoksia. Järjestelmä pysyy siis käyttökerrasta toiseen sama ja tietojen eheys säilyy. 3.2.3. Tuotetuki PelicanHPC-järjestelmästä saatava dokumentaatio on hyvin vähäistä verrattuna XtreemOS-järjestelmään, mutta koska PelicanHPC on huomattavasti yksinkertaisempi arkkitehtuuriltaan, ei yhtä laajaa tuotetukea tarvita. Järjestelmän kehittäjien puolesta tarjottava dokumentaatio rajoittuu ainoastaan opetussivustoon (Creel 2010), joka sekin on osittain vanhentunut ja käsittelee järjestelmän versiota 1.9. Järjestelmän versioiden 1.9 ja 2.0 välillä on tapahtunut joitakin merkittäviä muutoksia, esimerkiksi perusjärjestelmänä ollut Debian on päivitetty uudempaan versioon ja MPI-toteutus on muuttunut. Tämän seurauksena osa esimerkkisovelluksista ja testeistä eivät enää toimi uudemmassa järjestelmässä. Tämän työn kirjoitushetkellä PelicanHPC v2.0 on ollut julkaistuna vasta reilun kuukauden, joten on hyvin mahdollista että dokumentaatio päivitetään myöhemmin tukemaan versiota 2.0. Järjestelmän web-sivuilta löytyy myös video, jossa esitetään järjestelmän käynnistys ja muutama käyttöesimerkki. Tämän lisäksi on tarjolla keskustelufoorumi, jolla voi esittää kysymyksiä ja etsiä ongelmiin ratkaisuja. Debian GNU/Linux käyttöjärjestelmän tukisivustoista on myös merkittävästi apua, koska perusjärjestelmään ei ole tehty mitään merkittäviä muutoksia. PelicanHPC tarjoaa automatisoidun tavan luoda mukautettu Live-CD tai Live-USB. Käytössä olevia ja toteutettuja järjestelmiä ei löydy listattuna tukisivustolta.

15 3.2.4. Soveltuvuus ja yhteenveto Yhteenveto järjestelmän tiedoista ja versionumeroista on esitetty taulukossa 3.2. PelicanHPC Live-CD tarjoaa jo valmiissa muodossaan hyvän perusjärjestelmän ja on riittävä tämän työn vaatimusten kannalta, mutta siitä tulee vielä parempi muokkaamalla ja luomalla uusi Live-USB-versio. Oletuksena PelicanHPC asettaa päälle IP-osoitteita jakavan DHCP-palvelimen, joka saattaa häiritä jo olemassa olevaa järjestelmää, mutta tämäkin ongelma voidaan kiertää muokkaamalla järjestelmää ja tuottamalla uusi Live- CD tai Live-USB. Valmiiksi asennettu GNU Octave mahdollistaa esimerkiksi useiden Matlab-yhteensopivien simulaatioiden suorittamisen. PelicanHPC:n valmiiksi asennettu monitorointijärjestelmä on yleisesti käytetty ja liitettävissä myös osaksi isompaa järjestelmää (Ganglia). Heikkoutena voidaan pitää muutosten tekemisen vaikeutta, koska aina jos järjestelmään halutaan tehdä suurempia ja pysyviä muutoksia, tulee tuottaa uusi Live-CD tai Live-USB. PelicanHPC ei oletuksena tarjoa muita ohjelmointirajapintoja kuin Open MPI:n. Taulukko 3.2 PelicanHPC-järjestelmän yleistiedot (Creel 2007) Nimi ja versio PelicanHPC v2.0 Julkaistu 12.01.2010 Tyyppi Beowulf-klusteri, ei yhteistä muistia Linux-jakelupaketti Debian squeeze (testattava) kernel 2.6.30 Ohjelmointirajapinnat Open MPI, GNU Octave valmiiksi asennettuna Asennusmuoto Live-CD/USB + verkkokäynnistys Kehittäjä Universitat Autònoma de Barcelona Muuta Ei tarvetta kuin yhdelle CD-levylle tai USB-muistitikulle. 3.3. Kerrighed ja Debian Kerrighed on vuonna 1999 aloitettu klusterilaskentajärjestelmän kehitysprojekti, johon on ottanut osaa useita yliopistoja ja kehitys jatkuu nykyisin avoimen lähdekoodin projektina. Kerrighed on myös osana aiemmin esiteltyä XtreemOS-järjestelmää. Kerrighed:ssä kaikki resurssit ovat kaikkien laskentasolmujen käytössä eli se on tyypiltään SSI-järjestelmä. Kerrighed pyrkii tarjoamaan helppokäyttöisen, tehokkaan ja muokattavan käyttöjärjestelmän klustereihin. Kerrighed asennetaan laajennuksena johonkin Linux-jakelupakettiin, esimerkiksi Debian GNU/Linux:iin tai Mandriva Linux:iin. (Kerrighed 2010.) Dokumentaatio ja tuotetuki painottuvat Debian GNU/Linux järjestelmän

16 pohjalle asennettuihin kokonaisuuksiin, joten tässäkin tarkastellaan ratkaisua, jossa Kerrighed on asennettu kyseisen käyttöjärjestelmän laajennukseksi. 3.3.1. Arkkitehtuuri ja ominaisuudet Kerrighed tukee sekä 32-bittisiä että 64-bittisiä ympäristöjä. Kerrighed:n arkkitehtuuri koostuu useista erilaisista moduuleista [Kuva 3.2]. Moduuleiden voidaan ajatella olevan jakautuneena kolmelle eri tasolle. Alimmalla tasolla Kerrighed tekee muutoksia Linuxytimeen sekä ottaa käyttöön yhden Linux-ytimen moduulin. SSI-järjestelmän ominaisuudet kuten resurssienjako suoritetaan järjestelmän alimmalla tasolla. Kerrighedjärjestelmässä suorittimet ja muistit ovat jaettuina kaikkien laskentasolmujen kesken. Keskimmäisellä tasolla Kerrighed asentaa kirjaston, joka tarjoaa toimintoja ylemmän tason sovellusten suorittamiseen. Korkeimmalla tasolla Kerrighed tarjoaa käyttäjälle työkaluja klusterin hallintaan ja mahdollisuuden sovellusten suorittamiseen ja vuorottamiseen. (Kerrighed 2010.) Vuorottamisella tarkoitetaan menetelmää, jolla prosessit määritellään suoritettavaksi saatavilla olevilla suorittimilla tai suoritinytimillä. Käyttäjän sovellukset Kerrighed-järjestelmä Sovelluksen suorituksen hallinta Vuorottaminen Työkalut klusterin hallintaan Kirjasto ylemmän tason sovelluksille Järjestelmäkutsurajapinta Linux-ydin SSI-laajennukset Ytimen moduulit Laitteisto Kuva 3.2 Kerrighed-järjestelmän arkkitehtuuri 3.3.1.1 Prosessienhallinta Kerrighed tarjoaa koko klusterin laajuisen prosessienhallinnan. Kaikki Linux:n normaalit prosessienhallintatyökalut ovat käytettävissä ja kaikki laskentasolmut näkevät järjestelmässä suoritettavat prosessit samalla tavalla. Kerrighed sisältää hajautettuun laskentaan suunnitellun vuorottajan, joka pyrkii tasaamaan eri resurssien kuormitusta siirtämällä prosesseja suorittimelta toiselle. Vuorottajan toiminta on täysin automaattista ja käyttäjän tarvitsee ainoastaan asettaan ominaisuus päälle, jolloin järjestelmä osaa tarkkailla tilaansa ja tehdä tarvittavat toimenpiteet ajonaikaisesti. Käyttäjällä on mahdollisuus luoda omia profiileja, joiden mukaan kuormituksen tasaus suoritetaan. Järjestelmä ei suorita kuormituksen tasausta tietyn sovelluksen kohdalla jos sovelluksessa on käytössä POSIX-rajapinnan ajastinfunktioita. Käyttäjän on myös mahdollista luoda niin kutsuttuja tarkastuspisteitä, joiden kohdalla sovelluksen suoritus voidaan keskeyttää ja jatkaa myöhemmin. (Kerrighed 2010.)

17 3.3.1.2 Muokattavuus Kerrighed-järjestelmään voidaan asentaa myös muita hajautettua laskentaa tukevia ohjelmistoja kuten Open MPI tai jokin muu MPI-toteutus. MPI-rajapintaa voidaan hyödyntään samalla kun käytetään järjestelmän SSI-ominaisuuksia tai puhtaana MPI:nä, koska Kerrighed-järjestelmän SSI-toiminnallisuutta ei ole pakollista käynnistää automaattisesti (Kerrighed 2010). Koska järjestelmä on identtinen kaikilla laskentasolmuilla ja sijaitsee fyysisesti ohjaavan tietokoneen kiintolevyllä tai muistitikulla, johon kaikilla on yhteys, riittää että haluttu sovellus asennetaan kertaalleen, jolloin se on kaikkien käytettävissä. 3.3.2. Tietoturva Tietoturvan arvioinnissa pätee samat tosiseikat kuin muissakin järjestelmissä, mutta koska Kerrighed asennetaan alusta alkaen itse, esimerkiksi tiedostojärjestelmän jakaminen laskentasolmujen kesken on täysin käyttäjän päätettävissä. MPI-ratkaisua käytettäessä kommunikointi on mahdollista hoitaa, joko SSI-järjestelmän ominaisuuksia käyttäen tai perinteisesti SSH-pohjaisena viestinvälityksenä. Laskentasolmujen kommunikointi Internetiin voidaan toteuttaa ohjaavan tietokoneen välityksellä, jolloin ohjaava tietokone voi toimia esimerkiksi palomuurina. Voidaankin todeta että tietoliikenteen osalta tietoturvataso on helposti mukautettavissa tarpeen mukaan. Laskentasolmujen käyttöjärjestelmä eli Kerrighed on täysin erillään ohjaavan tietokoneen käyttöjärjestelmästä, joten ohjaavan tietokoneen käyttöjärjestelmään voidaan asentaa aina kaikki uusimmat päivitykset. Pitkään kestävien suoritusten aikana tarkastuspisteet tuovat mahdollisuuden ottaa varmuuskopioita suorituksesta, jotta vikatilanteessa jo suoritettu työ ei menisi kokonaan hukkaan. 3.3.3. Tuotetuki Kerrighed-järjestelmän tukisivusto on melko suppea (Kerrighed 2010). Järjestelmän asennus ja toiminnot ovat kuvattuina sivustolla, mutta toimintaa ei ole selitetty kuin yleisellä tasolla. Järjestelmän käytöstä ei löydy havainnollistavia kuvia eikä videoita. Koska järjestelmä on kehitetty yliopistoissa, siitä on tehty useita akateemisia opinnäytetöitä, mutta koska järjestelmä on muuttunut ja kehittynyt jatkuvasti eivät nämä julkaisut ole enää täysin ajan tasalla. Kerrighed:n tukisivustolta löytyvät linkit neljään eri ulkopuolisen tahon ylläpitämään ohjesivustoon, joilla kuvataan järjestelmän asennus yksityiskohtaisemmin. (Kerrighed 2010.) Järjestelmä on asennuksen jälkeen yksinkertainen käyttää ja ei siten tarvitse laajaa käyttöohjetta. Käytettäessä MPI-ratkaisuja voidaan nojautua kyseisen MPI-ratkaisun ohjeistukseen. Käytössä olevia ja toteutettuja järjestelmiä löytyy listattuna tukisivustolta (Kerrighed 2010).

18 3.3.4. Soveltuvuus ja yhteenveto Yhteenveto järjestelmän tiedoista ja versionumeroista on esitetty taulukossa 3.3. Kerrighed-järjestelmästä on saatavilla myös testikäyttöön soveltuva Live-CD, mutta kyseinen julkaisu perustuu vanhentuneeseen Kerrighed 2.3.0 versioon, eikä sitä tulisi harkita pysyvään käyttöön. Käytännössä järjestelmä tulee siis asentaa muistitikulle. Laskentasolmuihin käyttöjärjestelmä pystytään käynnistämään verkkokäynnistystä käyttäen yhden ohjaavan tietokoneen kautta ja näin ollen laskentasolmut voivat olla levyttömiä. Kerrighed pystyy toimimaan myös ympäristössä, jossa on jo IP-osoitteita jakava DHCPpalvelin. Kerrighed on erityisen hyvin muokattavissa ja sopeutettavissa käyttötarpeen mukaan, koska asennus tehdään itse alusta alkaen. Ohjeistuksen mukaisessa asennusmallissa ohjaava tietokone ei osallistu laskentaan käytettäessä järjestelmän SSI-ominaisuuksia, mutta MPI-pohjaisesti voidaan ohjaava tietokonekin ottaa mukaan laskentaan. Kerrighed järjestelmä on verrattain työläs ottaa käyttöön, koska kaikki tarvittavat sovellukset tulee asentaa itse. Muihin tässä työssä esiteltyihin ratkaisuihin verrattuna Kerrighed tarjoaa lisäominaisuutena SSI-toiminnallisuuden verkkokäynnistyksellä ja pystyy käyttämään MPI-pohjaisia ratkaisuja tarvittaessa eli Kerrighed on klusteripohjaiseen toteutukseen monipuolisin ratkaisu. Taulukko 3.3 Kerrighed-järjestelmän yleistiedot (Kerrighed 2010) Nimi ja versio Kerrighed 2.4.4 Julkaistu 29.01.2010 Tyyppi Linux-jakelupaketti Ohjelmointirajapinnat Asennusmuoto Kehittäjä Muuta Klusteri, SSI Debian GNU/Linux Lenny, kernel linux- 2.6.20 OpenMP, Open MPI, Posix USB-muisti ja verkkokäynnistys tai kokeellinen Live-CD (vanha versio) Useita yliopistoja, Kerlabs Ei tarvetta kuin yhdelle CD-levylle tai USB-muistitikulle. Ohjaavan tietokoneen käyttöjärjestelmä voidaan valita vapaasti. 3.4. Bootable Cluster CD Bootable Cluster CD (BCCD) on nimensä mukaisesti klusterikäyttöjärjestelmä, joka on hyvin paljon PelicanHPC-järjestelmän kaltainen. Tällä hetkellä uusin versio on 3.0, joka eroaa arkkitehtuuriltaan aiemmista versioista huomattavasti. BCCD:n aiemmat versiot olivat SSI-järjestelmiä, mutta versiossa 3.0 SSI-ominaisuuksista on luovuttu. BCCD on tarkoitettu erityisesti opetuskäyttöön ja pyrkii toimimaan tieteelliseen laskentaan kyke-

19 nevänä järjestelmänä ympäristössä, johon ei saa tehdä muutoksia. (Bootable Cluster CD.) 3.4.1. Arkkitehtuuri ja ominaisuudet Järjestelmä perustuu Live-CD-pohjaiseen ratkaisuun, joka on saatavilla ainoastaan 32- bittisenä versiona. Järjestelmä on Debian GNU/Linux-pohjainen, mutta sitä ei ole tehty käyttämällä Debian:in omaa Live-CD-työkalua vaan käyttämällä erityistä Knoppix Live-CD-jakelupakettia pohjana. BCCD:stä on mahdollista tehdä myös Live-USB versio, mutta sitä ei ole valmiiksi saatavilla. BCCD-järjestelmä on myös mahdollista asentaa kiintolevylle tai USB-muistitikulle suoraan Live-CD:ltä tai kopioida levyn sisältö keskusmuistiin, jolloin CD-levyä ei tarvitse pitää CD-asemassa käytön aikana. Keskusmuistiin kopioitaessa toiminta on huomattavasti nopeampaa, mutta keskusmuistista käytetään tällöin noin gigatavu tiedostojärjestelmän tallentamiseen (BCCD 3.0 2010). Knoppix-jakelupaketin ideana on käyttää erilaisia moduuleita, joita voidaan aktivoida tarvittaessa ja myös BCCD tukee vastaavaa toimintatapaa. Yksittäinen moduuli voi olla esimerkiksi jokin MPI-toteutus kuten Open MPI. BCCD-järjestelmään ensimmäisenä käynnistetty tietokone on ohjaava tietokone. BCCD-järjestelmässä on kaksi vaihtoehtoa miten laskentasolmut käynnistetään. Ensimmäinen vaihtoehto on käyttää kaikissa järjestelmään kuuluvissa tietokoneissa omaa Live-CD:tä. Toinen vaihtoehto on käyttää verkkokäynnistystä, jolloin muut laskentasolmut käynnistyvät ohjaavan tietokoneen muistitikulta tai kiintolevyltä. Toinen vaihtoehto vaatii siis järjestelmän asentamista Live-CD:ltä joko kiintolevylle tai USBmuistitikulle. (BCCD 3.0 2010.) 3.4.2. Tietoturva Käytettäessä omaa Live-CD:tä tai Live-USB:tä jokaisella laskentasolmulla, tiedonsiirto ja kommunikointi tapahtuu täysin salattuna käyttäen SSH:ta. Verkkokäynnistyksen avulla käynnistetyt laskentasolmut jakavat yhteisen tiedostojärjestelmän (BCCD 3.0 2010), jonka käyttö ei ole salattua. BCCD käyttää oletuksena järjestelmän kehittäjän tarjoamaa tietokantaa sovelluksista. Tietokanta liitetään Internetin yli automaattisesti osaksi tiedostojärjestelmää. Tämä saattaa olla tietoturvariski, koska tarjottavan palvelun luotettavuudesta on vaikea tehdä hyväksyttävää arviota. Puhdasta Live-CD-järjestelmää käytettäessä on tässäkin järjestelmässä vaarana tietojen katoaminen jos järjestelmä käynnistetään uudelleen. 3.4.3. Tuotetuki Järjestelmän dokumentaatio pohjautuu järjestelmän kehittäjien tarjoamaan tukisivustoon (BCCD 3.0 2010), joka version 3.0 osalta on hieman puutteellinen, koska kaikkia mainittuja ohjeita ei löydy. Vanhempien versioiden ohjeistus on myös osittain yhteensopiva version 3.0 kanssa, joten myös vanhempia ohjeita voidaan hyödyntää (Bootable Cluster CD). Tukisivustolta löytyy muutamia kuvakaappauksia, joiden avulla järjestelmän toi-

20 mintaa on demonstroitu, mutta esimerkiksi videomateriaalia ei ole saatavilla. Live-CD:n tai Live-USB:n luontiin löytyy lyhyt ohjeistus tukisivustolta. Järjestelmän kehittäjille suunnattu kehitysohjeistus (BCCD 3.0 2010) selittää järjestelmän toimintaa hieman tarkemmin, mutta ei kovin yksityiskohtaisesti verrattuna XtreemOS-järjestelmään. Käytössä olevia toteutettuja järjestelmiä ei ole listattuna järjestelmän tukisivustolla. 3.4.4. Soveltuvuus ja yhteenveto Yhteenveto järjestelmän tiedoista ja versionumeroista on esitetty taulukossa 3.4. BCCD on suunniteltu juuri luvun 2.4 kaltaiseen ympäristöön, mutta on kehittäjiensä mukaan edelleen varhaisessa kehitysvaiheessa (BCCD 3.0 2010). BCCD pyrkii tekemään verkkoasetukset automaattisesti, jolloin käyttäjän ei tarvitse olla niin perehtynyt verkkotekniikoihin. Järjestelmä pyrkii ottamaan huomioon myös muut palvelut samassa verkossa kuten DHCP-palvelimet ja toimimaan siten ettei muiden palveluiden toiminta häiriinny (BCCD 3.0 2010). BCCD-järjestelmää testattaessa huomattiin joitakin poikkeavuuksia ohjeistukseen. Järjestelmän tulisi automaattisesti lisätä hyväksytyt laskentasolmut erityiseen tiedostoon, jota voidaan käyttää MPI-sovelluksen suorituksen yhteydessä, mutta kyseisen tiedoston luonnissa esiintyi ongelmia. Nämä ongelmat eivät estä järjestelmän käyttöä, mutta vaikeuttavat asetusten tekemistä. BCCD-järjestelmässä on asennettuna oletuksena useita tieteelliseen laskentaan soveltuvia ohjelmistoja. Taulukko 3.4 BCCD-järjestelmän yleistiedot (BCCD 3.0 2010; Bootable Cluster CD) Nimi ja versio Bootable Cluster CD v3.0 Julkaistu 2009 Tyyppi Linux-jakelupaketti Ohjelmointirajapinnat Asennusmuoto Kehittäjä Muuta Beowulf-klusteri Debian GNU/Linux (Knoppix) Useita eri MPI-toteutuksia Live-CD/USB, kiintolevy/usb-muisti Useita oppilaitoksia Automaattiset verkkoasetukset

21 4. TOTEUTUS Toteutuksessa testataan yhtä järjestelmää oikeassa ympäristössä. Toteutukseen valitaan yksi luvussa 3 esitellyistä järjestelmistä. Kaikki esitellyt vaihtoehdot testataan virtualisoidussa ympäristössä ennen valinnan tekemistä. 4.1. Testaus Käytännön toteutusympäristö on arkipäivisin opetuskäytössä ja siellä tehtävä testaus ei silloin ole mahdollista, joten testaus on jaettu kahteen osaan: ensin suoritetaan alustavat testit virtualisoidussa ympäristössä ja sen jälkeen vaihtoehdoista paras oikeassa ympäristössä. 4.1.1. Alustava testaus Virtualisoitu ympäristö koostuu VirtualBox-ohjelmistosta, joka mahdollistaa useiden virtuaalisien käyttöjärjestelmien suorittamisen samanaikaisesti muun muassa Windowsja Linux-käyttöjärjestelmien päällä (Sun VirtualBox 2009). Virtualisointiohjelmiston avulla voidaan asettaa halutut resurssit eri virtuaalikoneille ja siten tutkia järjestelmän yhteistoimintaa ja resurssien käytön ja jaon onnistumista ilman että olemassa olevaan järjestelmään tulee muutoksia. Lähiverkon vaikutusta järjestelmään testataan ensin kahdella tietokoneella, joissa molemmissa ajetaan useita virtuaalikoneita ja fyysisesti tietokoneet ovat yhteydessä normaalin Ethernet-verkon välityksellä. 4.1.2. Lopullinen testaus Lopullinen testaus suoritetaan luvussa 2.4 esitetyssä ympäristössä tietyin rajoituksin. Oikeassa ympäristössä testaukseen valitaan neljä tietokonetta, jotka yhdistetään kytkimellä toisiinsa ja suoritetaan testaus. Tämä vaihe on välttämätön, jotta voidaan varmistaa esimerkiksi laitteiston ja ohjelmiston yhteensopivuus. 4.2. Toteutusvaihtoehdon valinta Kaikki luvussa 3 esitetyt järjestelmät ovat toimivia ratkaisuja kyseiseen ympäristöön. Yhteenveto järjestelmien perusominaisuuksista on esitetty taulukossa 4.1. Kaikki järjestelmät tukevat jotakin MPI-toteutusta, mutta vain XtreemOS ja Kerrighed tarjoavat loogisesti yhtenäisen SSI-järjestelmän. XtreemOS vaatii käytännössä erillisen USBmuistitikun jokaiselle tietokoneelle, mutta muut järjestelmät toimivat tarvittaessa yhdellä USB-muistitikulla tai CD-levyllä. XtreemOS vaatii myös verrattain monimutkaisen

22 tietoturvajärjestelmän pohjalleen, joten se ei ole näiden kriteerien pohjalta paras vaihtoehto. Taulukko 4.1 Järjestelmien perusominaisuudet Järjestelmä MPI SSI Asennusmuoto XtreemOS kyllä kyllä monta USB-muistitikkua PelicanHPC kyllä ei Live-CD/USB Kerrighed kyllä kyllä yksi USB-muistitikku BCCD kyllä ei Live-CD/USB tai yksi USB-muistitikku Kerrighed-järjestelmä erottui muista parhaana erityisesti muokattavuuden ja monipuolisimpien ominaisuuksiensa johdosta. Kerrighed voidaan asentaa käyttämällä yhtä USB-muistitikkua, jolloin kustannukset tulee minimoitua. Kerrighed-järjestelmän valintaa puoltaa myös itse tehtävän asennuksen vaatima perehtyminen järjestelmään, joka erityisesti myöhemmin ja vikatilanteissa on erityisen hyvä etu. Valmiin Live-CDjärjestelmän käyttöönotto ei välttämättä vaadi kovinkaan perusteellista tietämystä järjestelmästä, jolloin ei saavuteta hyödyllistä oppimista. Kerrighed on luonnollinen valinta toteutuksen pohjaksi. 4.3. Järjestelmän asennus Toteutus perustuu kirjoitushetkellä uusimpaan vakaaseen versioon Kerrighedjärjestelmästä. Toteutuksessa laskentasolmut ja näitä ohjaava tietokone ovat erikseen tarkastelun kohteena. Tässä toteutuksessa ohjaava tietokone ei ole osa SSI-järjestelmää, mutta tarjoaa tiedon varastointiresursseja kokonaisjärjestelmän käyttöön ja sitä voidaan tarvittaessa käyttää myös MPI-pohjaisesti laskentaan. Mahdollisimman tehokkaan ajankäytön saavuttamiseksi järjestelmä säädettiin toimintakuntoon jo ennen todelliseen ympäristöön siirtämistä. Ohjaavan tietokoneen käyttöjärjestelmällä ei ole SSI-järjestelmän kannalta merkitystä. 4.3.1. Ohjaava tietokone Ohjaavaan tietokoneeseen asennettiin Debian GNU/Linux Lenny -käyttöjärjestelmä. Asennuksen fyysisenä mediana käytettiin 16 gigatavun suuruista USB-muistitikkua, mutta kokonaisuudessaan järjestelmä vaatii, tämän ohjeen mukaisesti asennettuna, noin 3,8 gigatavua tallennustilaa. Ohjaavan tietokoneen BIOS:in asetuksista valittiin ensisijaiseksi käynnistysmediaksi USB. Asennus suoritettiin Debian GNU/Linux:in yleisen asennusoppaan (Debian 2008) mukaisesti. Kyseinen muistitikku osioitiin yhdeksi isoksi ext3-tiedostojärjestelmällä varustetuksi osioksi. Asennusvaiheessa ominaisuuksiksi valittiin ainoastaan perusjärjestelmä ja graafinen työpöytäympäristö. Käynnistyslataaja asennettiin USB-muistitikun ensimmäisen osion alkuun, eikä koko järjestelmän ensimmäisen kiintolevyn alkuun. Tässä tapauksessa käynnistyslataajan kohteena oli

23 /dev/sda1, mutta mikäli tietokoneessa on käytössä SATA-kiintolevyjä voi sda:n tilalla olla jokin muu tunnus. Tässä vaiheessa perusjärjestelmä oli kunnossa. Seuraavaksi suoritettiin ohjaavan tietokoneen valmistelu, joka on esitetty asennusoppaan [Liite 1: Asennusopas] kohdissa 0-14. 4.3.1.1 Verkkoasetukset Asennusopas [Liite 1: Asennusopas] neuvoo asennuksen siten, että ohjaava tietokone on yhteydessä sekä laskentasolmuihin että Internetiin, mutta järjestelmän toiminnan kannalta yhteys Internetiin ei ole välttämätön. Ohjaava tietokone on yhteydessä laskentasolmuihin eth0-yhteyden kautta ja Internetiin yhdistämistä varten luotiin looginen eth0:1-verkkoliityntä. Internet-yhteys voidaan jakaa laskentasolmuille käyttämällä osoitteenmuunnostekniikkaa tai suoraan asettamalla laskentasolmujen oletusyhdyskäytäväksi reititin, joka on yhteydessä Internetiin. Yhteyden jakaminen on mahdollista käyttäen joko loogisia verkkokortteja tai kahta fyysistä verkkokorttia ohjaavalla tietokoneella. 4.3.1.2 Palvelinohjelmistot Ohjaavalle tietokoneelle asennettiin DHCP, TFTP ja NFS-palvelimet. DHCP-palvelin tarjoaa IP-osoitteet laskentasolmuille, TFTP-palvelimen kautta laskentasolmut saavat käyttämänsä Linux-ytimen, NFS-palvelimen avulla laskentasolmut saavat käyttöönsä yhteisen juuritiedostojärjestelmän. Tämän lisäksi asennettiin Apache2-palvelin, PHP5- tulkki ja Ganglia-monitorointijärjestelmä, joiden avulla tarjotaan järjestelmän Webkäyttöliittymä. DHCP-palvelimen asetuksissa määriteltiin laskentasolmujen MACosoitteet ja näitä vastaavat IP-osoitteet. 4.3.2. Laskentasolmut Laskentasolmujen asennus suoritettiin käymällä läpi asennusoppaan [Liite 1: Asennusopas] kohdat 15-48. Laskentasolmujen käyttöjärjestelmäksi asennettiin Debian GNU/Linux Lenny ja Kerrighed 2.4.4, jonka kanssa käytettiin linux 2.6.20:sta muokattua ydintä. Laskentasolmujen sovellukset asennettiin chroot-ympäristössä, jossa voidaan muokata toista käyttöjärjestelmää muuttamalla juurihakemistoa. Myös myöhemmin tarvittaessa uusien sovellusten asentaminen tulee suorittaa asennusoppaan mukaisesti. Laskentasolmujen juuritiedostojärjestelmä asetettiin haettavaksi ohjaavalta tietokoneelta NFS-protokollaa käyttäen, jotta laskentasolmut voivat olla kiintolevyttömiä. Laskentasolmujen verkkoasetukset muodostetaan automaattisesti käyttäen DHCP-palvelua, mutta tarvittaessa ne voidaan määritellä käsin. Halutut laskentasolmujen nimet ja IPosoitteet tulee määritellä asennusoppaan esittämällä tavalla. 4.4. Testausraportti Järjestelmän testaus suoritettiin erottamalla neljä tietokonetta työasemaluokan lähiverkosta ja kytkemällä ne erilliseen kytkimeen. Testausympäristössä ei ollut käytössä In-

ternet-yhteyttä. Yksi tietokoneista valittiin ohjaavaksi tietokoneeksi ja loput kolme laskentasolmuiksi. Ohjaava tietokone asetettiin käynnistymään ensisijaisesti USB-väylään liitetyltä laitteelta eli USB-muistitikkulta, johon oli valmiiksi asennettuna Luvun 4.3 mukainen järjestelmä, jossa oli kaikki asennusoppaan [Liite 1: Asennusopas] kattamat toiminnot. Käynnistyksen yhteydessä havaittiin, että toteutuskokoonpanossa oli asennuskokoonpanosta poiketen käytössä SATA-kiintolevy, jolloin käynnistyslataaja ei löytänyt tiedostojärjestelmää laitteelta sda. Käynnistyslataajan komentoriviparametreja muuttamalla siten, että sda:n paikalle asetettiin sdb, saatiin järjestelmä käynnistymään normaalisti. Toteutuskokoonpanossa oli eri verkkokortti, joten tiedot vanhasta verkkokortista poistettiin poistamalla tiedosto /etc/udev/rules.d/70-persistent-net.rules ja käynnistämällä tietokone uudelleen. Kyseinen toiminto voitaisiin toteuttaa automaattisesti esimerkiksi poistamalla tai korvaamalla kyseinen tiedosto käynnistyksen alussa. Uudelleen käynnistyksen jälkeen verkkoasetusten todettiin olevan kunnossa ja seuraavaksi lisättiin laskentasolmujen MAC-osoitteet asennusoppaan [Liite 1: Asennusopas] kohdan 8 mukaisesti. Tämän jälkeen ohjaava tietokone käynnistettiin vielä uudelleen. Laskentasolmut asetettiin käynnistymään käyttäen PXE-verkkokäynnistystä, jolloin ne hakivat käyttöjärjestelmän ytimen ohjaavalta tietokoneelta ja liittivät juuritiedostojärjestelmän käyttäen NFS-protokollaa. Kerrighed SSI-järjestelmä käynnistyi automaattisesti kun kaikki kolme laskentasolmua olivat käynnistyneet. Kun Kerrighed järjestelmä oli käynnissä, todettiin että kaikki laskentasolmut näkivät kaikki suorittimet ja prosessit sekä keskusmuisti oli jaettu laskentasolmujen kesken. Oletuksena Kerrighed-järjestelmä ei suorita resurssien käytön tasausta, mutta tasaus otettiin käyttöön suorittamalla asennusoppaan [Liite 1: Asennusopas] kohtien 49 ja 50 mukaiset komennot. Sovelluksen käynnistymistä jossakin muussa laskentasolmussa kuin siinä missä käynnistyskomento suoritetaan testattiin suorittamalla sovellusta hostname useita kertoja. Sovellus hostname näyttää suoritettavan järjestelmän isäntänimen ja koska sovellus käynnistyi eri laskentasolmuilla oli sen antama tuloste joko node1, node2 tai node3. Suoritinkäytön jakaantumista testattiin ajamalla itse käännettävän sovelluksen konfigurointikomentosarja, jolloin nähtiin että järjestelmä käytti kaikkia suorittimia [Liite 2: Kuvia testauksesta, Kuva B] ja tilanteessa, jossa resurssien tasaus oli pois käytöstä todettiin, että toiminto kuormitti vain yhtä suoritinta [Liite 2: Kuvia testauksesta, Kuva A]. MPI-toteutuksen toimintaa testattiin käyttämällä sitä ohjaavalta tietokoneelta kutsumalla myös laskentasolmuja, jolloin sovellusten suorittamiseen pystyttiin käyttämään kaikkia neljää tietokonetta. Järjestelmän web-käyttöliittymään [Liite 2: Kuvia testauksesta, Kuva C] päästiin menemällä ohjaavan tietokoneen web-selaimella osoitteeseen http://localhost/web/, josta nähtiin että kaikki neljä tietokonetta olivat aktiivisina ja nähtiin myös näiden tarjoamat resurssit. Lopuksi testausjärjestely purettiin ja järjestelmä palautettiin siihen tilaan missä se oli ennen testausta. 24

25 5. JOHTOPÄÄTÖKSET Työssä oli tavoitteena toteuttaa laskentajärjestelmä työasemaluokkaan, joka on päivisin opetuskäytössä. Toteutettavan järjestelmän tuli toimia muokkaamatta olemassa olevaa Windows-järjestelmää ja oltava laajennettavissa. Käyttötarkoitukseen soveltuvia järjestelmiä löytyi useita, mutta yleisesti ottaen kuvaukset järjestelmistä ja muu dokumentaatio seuraavat toteutusten jäljessä, jolloin järjestelmiä vertailtaessa ja testattaessa kohdattiin kaikissa järjestelmissä poikkeavuuksia todellisen toiminnan ja dokumentaatioissa ilmoitettujen ominaisuuksien välillä. Toteutukseen valittu Kerrighed-järjestelmä toteuttaa sille asetetut vaatimukset erittäin hyvin ja tarjoaa helppokäyttöisen sekä muokattavan SSI-järjestelmän. Järjestelmä on hyvin skaalautuva, koska laskentasolmujen määrää rajoittavana tekijänä on ainoastaan valitun IP-aliverkon koko. Laskentasolmujen tiedot tarvitsee lisätä järjestelmään vain kerran, jonka jälkeen järjestelmää voidaan käyttää käynnistämällä haluttu määrä tietokoneita. Järjestelmän toteutuskustannukset jäävät pieniksi, koska ainoa yksittäinen ja kiinteä kustannuserä syntyy hankittavasta USB-muistitikusta. Järjestelmä toteuttaa resurssien jaon ja tasauksen automaattisesti, jolloin sovelluskehitys ja yleinen käyttö helpottuu. Valittu järjestelmä tarjoaa monipuoliset rajapinnat sovelluskehitykseen. Pilvilaskennan periaatteiden mukaisesti järjestelmässä on webkäyttöliittymä ja se tarjoaa abstraktin kuvan loogisesti yhtenäisestä järjestelmästä. Sovellukset ovat käytettävissä Internetin yli käyttäen salattua SSH-yhteyttä. USB-muistitikuilla on rajallinen kirjoituskertojen määrä ja kirjoitusnopeus saattaa hidastua käytössä, jolloin USB-muistitikku tulee uusia. Ohjaava tietokone on keskeisenä tiedon varastointiresurssina, jolloin sen rikkoontuminen tai jumittuminen aiheuttaa koko järjestelmän pysähtymisen. Laskentasolmujen käyttämien tiedostojen hakuajat pidentyvät laskentasolmujen lukumäärän kasvaessa, koska kaikki käyttävät yhteistä ohjaavaa tietokonetta, jonka tarjoama tiedonsiirtokapasiteetti on jaettuna kaikkien laskentasolmujen kesken. Ennen järjestelmän ottamista tuotantokäyttöön on sen vakautta pidemmässä suorituksessa ja rasituksessa tarkasteltava huolellisesti. Todellisen hyödyn arvioimiseksi on myös hyvä suorittaa joitakin suorituskykymittauksia eri sovelluksilla. Voidaan myös harkita ohjaavan solmun varmistusta esimerkiksi kahdentamalla joitakin toimintoja tai hajauttamalla tiedostojärjestelmä laskentasolmuille. Järjestelmään on myös mahdollista asentaa web-käyttöliittymään sisältyvä sovellusten eräajojärjestelmä.

26 LÄHTEET Amza, C., Cox, A.L., Dwarkadas, S., Keleher, P., Honghui Lu, Rajamony, R., Weimin, Y. & Zwaenepoel, W. 1996. TreadMarks: Shared memory computing on networks of workstations. Computer 29(1996)2, pp. 18-28. Saatavissa rajoitetusti: http://ieeexplore.ieee.org BCCD 3.0. [WWW]. 18 January 2010 [viitattu 27.2.2010]. Saatavissa: http://bccd.net/ver3/wiki/index.php/main_page Bootable Cluster CD. [WWW]. 2010 [viitattu 5.3.2010]. Saatavissa: http://bccd.net/ver3/ Choi, M., Lee, D. & Maeng, S. 2004. Cluster Computing Environment Supporting Single System Image. Cluster computing, 2004 IEEE international conference. p. 235-243 Saatavissa rajoitetusti: http://ieeexplore.ieee.org Creel, M. 2007. PelicanHPC GNU Linux. [WWW]. 26.2.2010 [viitattu 28.2.2010]. Saatavissa: http://pelicanhpc.org/ Creel, M. 2010. PelicanHPC Tutorial. [WWW]. January 2010 [viitattu 28.2.2010]. Saatavissa: http://pareto.uab.es/mcreel/pelicanhpc/tutorial/pelicantutorial.html Debian GNU/Linuxin asennusohje. 2008. [WWW]. [viitattu 3.3.2010]. Saatavissa: http://www.debian.org/releases/stable/i386/ Dikaiakos, M.D., Katsaros, D., Mehra, P., Pallis, G. & Vakali, A. 2009. Cloud computing: Distributed internet computing for IT and scientific research. Internet Computing, IEEE. 13(2009)5, pp. 10-3. Saatavissa rajoitetusti: http://ieeexplore.ieee.org Foster, I., Yong Zhao, Raicu, I. & Lu, S. 2008. Cloud computing and grid computing 360-degree compared. Grid Computing Environments Workshop, 2008 GCE '08, pp. 1-10. Saatavissa rajoitetusti: http://ieeexplore.ieee.org Ganglia Monitoring System. [WWW]. [viitattu 28.2.2010]. Saatavissa: http://ganglia.sourceforge.net/ Giniès, A. & Vigier, N. 2009. Public LiveCD release - XtreemOS 2.0, Integrated Project, IST-033576 18.12.2009. 9 p. Saatavissa: http://www.xtreemos.eu/publications/project-deliverables/d4-1-30.pdf/download

27 Goodale, T., Jha, S., Kaiser, H., Kielmann, T., Kleijer, P., Merzky, A., Shalf, J. & Smith, C. 2008. A Simple API for Grid Applications (SAGA). 324 p. Saatavissa http://www.ogf.org/documents/gfd.90.pdf Kerrighed. 2010. [WWW]. [viitattu 24.2.2010] Saatavissa: http://www.kerrighed.org Massimo, C. & Johnson, I. 2009. XtreemOS Advanced Guide: Installation and Administration, XtreemOS Technical Report, IST-033576 9.11.2009. 143 p. Saatavissa: http://www.xtreemos.eu/software/adminguide.pdf Merkey, P. Beowulf History. [WWW]. [viitattu 20.2.2010]. Saatavissa: http://www.beowulf.org/overview/history.html MPI Implementations. [WWW]. [viitattu 10.2.2010] Saatavissa: http://www.mcs.anl.gov/research/projects/mpi/implementations.html MPI: A Message-Passing Interface Standard Version 2.2. Knoxville 4.7.2009, Message Passing Interface Forum. 623 p. Saatavissa: http://www.mpi-forum.org/docs/mpi- 2.2/mpi22-report.pdf Murugesan, S. 2007. Understanding web 2.0. IT Professional. 9(2007)7, pp. 34-41. Saatavissa rajoitetusti: http://ieeexplore.ieee.org Pant, A. & Jafri, H. 2004. Communicating efficiently on cluster based grids with MPICH-VMI. Cluster computing, 2004 IEEE international conference. 23 p. Saatavissa rajoitetusti: http://ieeexplore.ieee.org Pfister, G.F. 1993. The varieties of single system image. Advances in parallel and distributed systems, 1993., proceedings of the IEEE workshop. pp. 59-63. Saatavissa rajoitetusti: http://ieeexplore.ieee.org Rabenseifner, R., Hager, G. & Jost, G. 2009. Hybrid MPI/OpenMP parallel programming on clusters of multi-core SMP nodes. Parallel, distributed and network-based processing, 2009 17th Euromicro international conference. pp. 427-436. Saatavissa rajoitetusti: http://ieeexplore.ieee.org Rittinghouse, J.W. & Ransome J.F. 2010. Cloud computing: Implementation, management, and security. Boca Raton: CRC Press. Saatavissa rajoitetusti: http://library.books24x7.com/

28 Shepler, S., Storspeed, Eisler, M. & Noveck, D. 2010. Network File System (NFS) Version 4 Minor Version 1 Protocol. IETF Request for Comments: 5661, 617 p. January 2010 Saatavissa: http://tools.ietf.org/html/rfc5661 Sun VirtualBox User Manual [WWW]. [viitattu 11.2.2010]. Saatavissa: http://www.virtualbox.org/manual/usermanual.html The Open Source Definition [WWW]. [viitattu 9.5.2010]. Saatavissa http://www.opensource.org/docs/osd The PVM System [WWW]. [viitattu 12.2.2010]. Saatavissa: http://www.netlib.org/pvm3/book/node17.html TOP500 List November 2009 [WWW]. [viitattu 20.2.2010]. Saatavissa: http://www.top500.org/list/2009/11/100 Träff, L.J., Gropp, W., Thakur, R. 2009. Self-consistent MPI performance guidelines. Parallel and Distributed Systems, IEEE Transactions, 30 p. [Julkaisematon]. [viitattu 12.2.2010]. Saatavissa rajoitetusti: http://ieeexplore.ieee.org Twenty Experts Define Cloud Computing [WWW], 2008. [viitattu 01.02.2010]. Saatavissa: http://cloudcomputing.sys-con.com/node/612375/print van der Pas, R. 2009 An Overview of OpenMP 3.0. The 2009 International Workshop on OpenMP. Dresden, Germany. June 3-5, 2009. 107 p. Saatavissa rajoitetusti: http://ieeexplore.ieee.org XtreemOS: A Linux-based Operating System to support Virtual Organizations for next generation Grids. [WWW]. [viitattu 25.2.2010] Saatavissa: http://www.xtreemos.eu/

29 LIITE 1: ASENNUSOPAS Asennusopas on kuvaus Kerrighed-järjestelmän asentamisesta sen jälkeen kun varsinainen Debian-pohjainen käyttöjärjestelmä on jo asennettu. Asennusopas on numeroitu vaiheisiin, jotka läpikäymällä järjestelmä saadaan asennettua peruskokoonpanoonsa. Kaikki alla esitetyt komennot suoritetaan pääkäyttäjänä (root): ## Päivitetään pakettienhallinnan tietokanta # Vaihe 0. apt-get update ## Konfiguroidaan verkkoliitynnät # Vaihe 1. vim /etc/network/interfaces auto lo iface lo inet loopback # Ensisijainen verkkoliityntä allow-hotplug eth0 auto eth0 iface eth0 inet static address 10.11.12.1 netmask 255.255.255.0 network 10.11.12.0 broadcast 10.11.12.255 #optiona verkkoliityntä Internetiin #aseta gateway ja muut toteutusympäristön vaatimiksi auto eth0:1 iface eth0:1 inet static address 192.168.0.4 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 ## Asennetaan tarvittavat palvelimet ja ohjelmat: ## dhcp-server tarjoaa IP-osoitteet laskentasolmuille ## tftpd-hpa:ta käytetään siirtämään Linux-ydin laskentasolmuille

30 ## portmap muuntaan NFS-protokollan RPC-kutsut portin numeroiksi ## syslinux toimii käynnistyslataajana ## nfs:n avulla jaetaan tiedostojärjestelmä laskentasolmuille ## debootstrap:n avulla voidaan asentaa yksinkertainen Debian-järjestelmä ## ganglia on monitorointijärjestelmä # Vaihe 2. apt-get install dhcp3-server tftpd-hpa portmap \ syslinux nfs-kernel-server nfs-common debootstrap \ ganglia-monitor gmetad ## Konfiguroidaan ganglia-monitorointijärjestelmä # Vaihe 3. vim /etc/gmetad.conf data_source "kerrighed" localhost # Vaihe 4. vim /etc/gmond.conf name = "kerrighed" owner = "tut" ## Ladataan uusin ganglia:n lähdekoodi ja web-käyttöliittymä sekä kopioidaan sieltä ## web-käyttöliittymä web-palvelimen dokumenttihakemistoon # Vaihe 5. http://downloads.sourceforge.net/project/ganglia/\ ganglia%20monitoring%20core/3.1.7/ganglia-\ 3.1.7.tar.gz?use_mirror=heanet # Vaihe 6. tar --xvzf ganglia-3.1.7.tar.gz cp -r ganglia-3.1.7/web /var/www/ ## Valitaan DHCP-palvelin käyttämään eth0 verkkoliityntää. # Vaihe 7. vim /etc/default/dhcp3-server INTERFACES="eth0"

31 ## DHCP-palvelimen yleiset asetukset # Vaihe 8. vim /etc/dhcp3/dhcpd.conf option dhcp-max-message-size 2048; use-host-decl-names on; deny unknown-clients; deny bootp; option domain-name "cluster"; option domain-name-servers 10.11.12.1; default-lease-time 600; max-lease-time 7200; # IP-aliverkon asetukset subnet 10.11.12.0 netmask 255.255.255.0 { option routers 10.11.12.1; # Ohjaavan tietokoneen IP option broadcast-address 10.11.12.255; } # Laskentasolmujen IP-osoitteet group { filename "pxelinux.0"; # PXE-käynnistyslataaja. option root-path "10.11.12.1:/nfsroot/kerrighed"; #laskentasolmu 1 host node1 { fixed-address 10.11.12.101; hardware ethernet 08:00:27:5E:94:A7; } #laskentasolmu 2 host node2 { fixed-address 10.11.12.102; hardware ethernet 08:00:27:5E:94:A8; } #laskentasolmu 3 host node3 { fixed-address 10.11.12.103; hardware ethernet 08:00:27:5E:94:A9; } server-name "head"; next-server 10.11.12.1; # Ohjaavan tietokoneen IP }

32 ## Konfiguroidaan tftp-palvelin # Vaihe 9. vi /etc/default/tftp-hpa RUN_DAEMON="yes" OPTIONS="-l -s /var/lib/tftpboot" ## Kopioidaan PXE-käynnistyslataaja TFTP-palvelimen jakamaan hakemistoon. # Vaihe 10. cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot # Vaihe 11. mkdir /var/lib/tftpboot/pxelinux.cfg ## Luodaan vakiokonfiguraatio jokaiselle laskentasolmulle. Tarvittaessa voitaisiin ## luoda default:n kanssa samaan hakemistoon laskentasolmujen IP:eitä vastaavat ## tiedostot, joiden nimenä on IP-osoite heksadesimaalilukuna, esimerkiksi ## 10.11.12.101 on 0A0B0C65. # Vaihe 12. vim /var/lib/tftpboot/pxelinux.cfg/default LABEL linux KERNEL vmlinuz-2.6.20-krg APPEND console=tty1 root=/dev/nfs \ nfsroot=10.11.12.1:/nfsroot/kerrighed ip=dhcp rw \ session_id=1 lang=fi ## Luodaan hakemisto laskentasolmujen tiedostojärjestelmälle ja määritellään ## NFS-palvelimelle kyseinen hakemisto jaettavaksi. # Vaihe 13. mkdir -p /nfsroot/kerrighed vim /etc/exports /nfsroot/kerrighed 10.11.12.0/255.255.255.0(rw,no_subtree_check,async,\ no_root_squash) # Vaihe 14. exportfs -avr

33 ## Asennetaan peruskäyttöjärjestelmä laskentasolmuille, jonka pohjana on Debian ## lenny. # Vaihe 15. debootstrap --arch i386 lenny /nfsroot/kerrighed \ http://ftp.fi.debian.org/debian ## Siirrytään muokkaamaan laskentasolmujen järjestelmää ja asetetaan sen root:n ## salasana # Vaihe 16. chroot /nfsroot/kerrighed # Vaihe 17. passwd ## Liitetään nykyisen järjestelmän /proc hakemisto laskentasolmujen /proc ## hakemistoksi, jotta voidaan käyttää laskentasolmuille tulevan järjestelmän ## sovelluksia # Vaihe 18. mount -t proc none /proc ## Lisätään pakettienhallinnan tietokantaan lähteitä # Vaihe 19. vim /etc/apt/sources.list deb http://security.debian.org/ lenny/updates main deb-src http://security.debian.org/ lenny/updates main deb http://ftp.fi.debian.org/debian lenny main deb-src http://ftp.fi.debian.org/debian lenny main deb http://volatile.debian.org/debian-volatile \ lenny/volatile main deb-src http://volatile.debian.org/debian-volatile \ lenny/volatile main ## Perl vaatii LC_ALL-ympäristömuuttujan asettamista. # Vaihe 20. export LC_ALL=C # Vaihe 21. apt-get update

34 ## Asennetaan paketit, joita tarvitaan ohjaavan tietokoneen kanssa kommunikointiin # Vaihe 22. apt-get install dhcp3-common nfs-common nfsbooted \ openssh-server ganglia-monitor ## Luodaan tiedostojärjestelmän liitospisteet, joita Kerrighed tarvitsee toimiakseen # Vaihe 23. mkdir /config # Vaihe 24. vim /etc/fstab proc /proc proc defaults 0 0 /dev/nfs / nfs defaults 0 0 configfs /config configfs defaults 0 0 ## Muokataan hosts-tiedostoon laskentasolmujen nimet ja IP-osoitteet # Vaihe 25. vim /etc/hosts 127.0.0.1 localhost 10.11.12.1 head 10.11.12.101 node1 10.11.12.102 node2 10.11.12.103 node3 ## Luodaan symbolinen linkki, jolla liitettään NFS automaattisesti käynnistyksessä # Vaihe 26. ln -sf /etc/network/if-up.d/mountnfs /etc/rcs.d/s34mountnfs ## Konfiguroidaan verkkoliityntä # Vaihe 27. vim /etc/network/interfaces auto lo iface lo inet loopback iface eth0 inet manual ## Lisätään uusi käyttäjä ja tarvittavia paketteja # Vaihe 28. adduser nodeuser

35 # Vaihe 29. apt-get install automake autoconf libtool pkg-config \ gawk rsync bzip2 libncurses5 libncurses5-dev wget \ lsb-release xmlto patchutils xutils-dev \ build-essential subversion ## Haetaan Kerrighed:in uusin versio ja linux 2.6.20-ydin sekä puretaan ne # Vaihe 30. cd /usr/src/ wget http://gforge.inria.fr/frs/download.php/26017/\ kerrighed-2.4.4.tar.gz tar -xvzf kerrighed-2.4.4.tar.gz # Vaihe 31. wget \ http://www.kernel.org/pub/linux/kernel/v2.6/\ linux-2.6.20.tar.bz2 # Vaihe 32. tar -jxvf linux-2.6.20.tar.bz2 # Vaihe 33. cd kerrighed-2.4.4 ## configure löytää linux:n ytimen automaattisesti. # Vaihe 34../configure cd kernel make defconfig ## Lisätään tarvittaessa verkkokortin ajurit # Vaihe 35. make menuconfig ## Käännettään ydin # Vaihe 36. cd.. make kernel make make kernel-install make install ldconfig

36 ## Muokataan Kerrighed:n laskentasolmujen nimet ja niihin liittyvät IP:t # Vaihe 37. vim /et/kerrighed_nodes session=1 # Arvo voi olla 1-254 nbmin=3 # Laskentasolmujen määrä, jonka jälkeen # järjestelmä käynnistyy automaattisesti 10.11.12.101:1:eth0 10.11.12.102:2:eth0 10.11.12.103:3:eth0 ## Aktivoidaan Kerrighed-modulin lataus. # Vaihe 38. vim /etc/default/kerrighed ENABLE=true ## Konfiguroidaan ganglia-monitorointijärjestelmän asiakasohjelma # Vaihe 39. vim /etc/gmond.conf name = "kerrighed" owner = "tut" ## Poistutaan chroot-ympäristöstä # Vaihe 40. exit ## Kopioidaan käännetty linux-ydin tftp-palvelimen hakemistoon # Vaihe 41. cp /nfsroot/kerrighed/boot/vmlinuz-2.6.20-krg \ /var/lib/tftpboot/ ## Käynnistetään aiemmin asennetut palvelut/palvelimet. # Vaihe 42. /etc/init.d/tftpd-hpa start /etc/init.d/dhcp3-server start /etc/init.d/portmap start /etc/init.d/nfs-kernel-server start

37 Tässä vaiheessa Kerrighed on täysin asennettu ja konfiguroitu, mutta jos halutaan käyttää Open MPI:tä voidaan suorittaa myös seuraavat vaiheet: ## Luodaan SSH-avaimet ja asetetaan ne sallituiksi, jotta yhteydenpidossa ei tarvita ## salasanoja. Luodaan myös saman niminen käyttäjä kuin laskentasolmuilla. ## Kannattaa varmistua, että tiedostojen oikeudet ovat seuraavat: -rw-r--r-- authorized_keys -rw------- id_dsa -rw-r--r-- id_dsa.pub -rw-r--r-- known_hosts # Vaihe 43. adduser nodeuser # Vaihe 44. su nodeuser # Vaihe 45. ssh-keygen -t dsa # Vaihe 46. cp ~/.ssh/id_dsa.pub ~/.ssh/authorized_keys # Vaihe 47. cp -r /home/nodeuser/.ssh \ /nfsroot/kerrighed/home/nodeuser/.ssh/ ## Seuraavaksi voidaan asentaa halutut ohjelmistot kuten Open MPI. Tämä vaihe ## suoritetaan sekä laskentasolmuilla (chroot-ympäristössä) että ohjaavalla tietoko- ## neella. # Vaihe 48. apt-get install openmpi-bin Seuraavat komennot muokkaavat Kerrighed-järjestelmän resurssien tasausta ja sovellusten suoritusominaisuuksia: ## Asetetaan resurssien tasaus päälle ja annetaan sille periytyvyys (valitsin -d) eli ## ominaisuus pysyy päällä kyseisen istunnon ajan. # Vaihe 49. krgcapset -d +CAN_MIGRATE

38 ## Asetetaan sovelluksille periytyvä mahdollisuus käynnistyä jossakin muussa ## laskentasolmussa kuin siinä missä käynnistyskomento suoritetaan. # Vaihe 50. krgcapset -d +DISTANT_FORK Asennusoppaassa on käytetty lähteinä: EasyUbuntuClustering/UbuntuKerrighedClusterGuide. 2009. [WWW]. [viitattu 10.3.2010]. Saatavissa: https://wiki.ubuntu.com/easyubuntuclustering/ubuntukerrighedclusterguide How to Set Up a High Performance Cluster (HPC) Using Debian Lenny and Kerrighed. 2009. [WWW]. [viitattu 10.3.2010]. Saatavissa: http://www.debianadmin.com/how-toset-up-a-high-performance-cluster-hpc-using-debian-lenny-and-kerrighed.html Kerrighed on NFSROOT. 2009. [WWW]. [viitattu 10.3.2010]. Saatavissa: http://www.kerrighed.org/wiki/index.php/kerrighed_on_nfsroot

39 LIITE 2: KUVIA TESTAUKSESTA Kuva A: htop-ohjelman näyttö, tilanteessa jossa ajetaan suoritintehoa vaativaa konfigurointikomentosarjaa. SSI-järjestelmän prosessien siirto ja kuormantasaus on pois käytöstä, jolloin käytetään ainoastaan yhtä suoritinta. Kuva B: htop-ohjelman näyttö, tilanteessa jossa ajetaan suoritintehoa vaativaa konfigurointikomentosarjaa. SSI-järjestelmän prosessien siirto ja kuormantasaus on käytössä, jolloin käytetään kaikkien kolmen koneen suorittimia.

Kuva C: Ganglia-monitorointijärjestelmän web-käyttöliittymä. Kuvassa node1-3 ovat SSIjärjestelmän tietokoneita ja head.local on ohjaava tietokone. Yksittäisestä tietokoneesta saa lisätietoja klikkaamalla koneen nimeä. 40