1 Innledning Her i Norge dør hvert år ca 20.000 nordmenn av kreft. Hvis du hadde fått muligheten til å bidra med å løse kreftgåten ville du tatt den? Prognosen for at du alene skal kunne løse kreftgåten er veldig lav, men hva vis du hadde fått denne sjansen, en mulighet, ville du tatt den? Med hjelp av en pc og internett er det mulig for alle å bidra med og løse gåten. Et utmerket eksempel på denne typen av samarbeid er Stanford School Of Medisin bruk av datakraften til hjemmedatamaskiner i dvale til å regne på protein strenger i kreftceller. Ved å skape et nettverk av hjemmedatamaskiner har Standford School Of medisin nå en av verdens største superdatamaskiner i sin besittelse. Denne superdatamaskinen vil bare vokse i takt med hvor mange medmennesker som velger og delta i prosjektet. Med flere hjemmemaskiner jo flere utregninger klarer superdatamaskinen og kalkulere. Med det havet av datamaskiner på nett i dag kan man undre seg over hvorfor ikke flere tar i bruk slike tjenester. Vi kan anta at innen utgangen av januar at ca 30 millioner hjemme pc-er vil ha blitt solgt på verdens basis under denne måneden. Hvis man plasserer alle maskinene side om side vil dette motsvare et areal som er større en 220 fotballbaner (ifølge Fifa standard). Vi kan anta at disse pc-ene vil høyst sannsynlig bli kastet etter fem år. De kastes ikke på grunn av at de er ødelagte, de kastes fordi de ses på som utdaterte. Databransjen har siden sin start vært pådriver for nytenkning og utvikling noe som har gitt både positive og negative konsekvenser. I følge Intels grunnlegger Gordon Moore vil antallet transistorer på et arial dobles hver 24 måned dette utsagnet har i etter tid blitt kalt Moores lov. Moores lov er fremdeles gjeldene i dag noe som har gitt oss en eksplosiv utvikling innen datateknologien. Det positive med utviklingen er at den gir oss reduserte kostnader og høyere ytelse per maskin. Den negative konsekvensen for forbrukeren er at man må bytte utstyr hver 24 måned for å kunne følge med i utviklingen. Dette skaper et overforbruk hvor man går til innkjøp av nytt utstyr oftere. For den normale konsumenten veier det positivet trekkene i Moores lov høyre, lavere pris og mer ytelse på innkjøp av en ny datamaskin. Derimot kan det negative fort trekkes frem for foretak, datautstyret må kontinuerlig byttes ut kan dette handle om million beløp i omkostnader i form av innkjøp oppsett og drift. Med den store veksten av Ikt innefor arbeidsplassen har kostnadene eskalert enormt.. Disse faktorene har tvunget fram et ønske om å finne nye løsninger. En av de nyskapende og kanskje mest spennende teknologiene som finnes innen IKT er i dag er å arbeide i en nettsky (Cloud computing). Cloud Computing er muligens den framtidige løsningen, en alternativ løsning som spås en veldig lys fremtid. Det er en ny teknologi som i teorien bygger på å desentralisere ressurser i form av å tilgjengeliggjøre de over internett. Grunntanken bak dette prinsippet, er å gi forbrukeren mer ytelse, uten behov for selv og investere i dyr hardware. Forekjemperne for Cloud computing poengterer at å jobbe i en sky krever ingen drifting, innkjøp av hardware og siden en nettsky er skalerbar imotsettning til en lokal server vil man også kunne imøtekomme varierende behov. Skeptikerne derimot hevder at Cloud baserte teknologiske løsninger er lite utprøvd og utgjør dermed en reell økonomisk risiko. De poengterer også at sensitive data kan ende opp på feil side av gjerdet noe som utgjør en sikkerhetsrisiko. Oppsummert vil nettskyer være interessant for bedrifter som har et varierende behov for ytelse, høyt forbruk av prosessorkraft og unngå direkte og indirekte kostnader av å drifte og oppdatere eget system. En bransje som kan ha stor nytte av å ta i bruk nettsky teknologi er bedrifter som spesialiserer seg innen digital grafisk fremstilling.
Data inntog inn det grafiske miljøet skapte en revolusjon, man kan anta at nesten all grafisk produksjon generert i verden i dag lages ved hjelp av datamaskiner. Datateknologi har også gitt oss nye grafiske uttrykk som 3d grafikk og animasjon (rendering). For selskaper som ønsker og drive med grafisk prosessering er utfordringene at grafikk prosessering (rendring) krever tidvis massiv rå prosesserings kraft. Dette vil si at behovet for å investere i en serverpark er tidvis stort. Dette gir høye kostnader for selskapet i form av innkjøp og drift av datasystemene. En av de store utfordringene dette skaper er at bedriten kjøper in hardware som ikke alltid utnyttes til det fulle. Dette fordi grafikk rendring ikke er en konstant prosess uten en midlertidig opperasjon som er enormt krevende. For mindre bedrifter inne grafisk produkson som krever massiv prosessor kraft, kan kosnadene bli enorme hvis de ønsker og kunne konkurere med større bedriftene. Det blir så mer og mer viktig for slike bedrifter og finne alternative mer lønnsomme løsninger for å holde konkurranse dyktigheten. Da er det ekstremt viktig å forske på alternativeløsninger for å se om de er levedyktige. Så oppsumert må de mindre aktørene må finne ut om det finnes alternative løsninger for eksempel cloud computing kan øke lønnsommeheten. Dette er viktig for deres videre eksistens i informasjonssamfunnet vi i dag lever i. Problemstilling I denne hovedoppgaven vil vi undersøke om et cloud-basert system kan imøtekomme krav om ytelse, forutsigbarhet, kvalitet og smidighet, samtidig som det er økonomisk bærekraftig for små og mellomstore bedrifter. I denne oppgaven skal vi med hjelp av en Linux cluster på en Amazon Ec2 server som renderer 3d grafikk med hjelp programmet blender imøtekomme krav for Ytelse (Alle nodene yter opptil 100% cpu under render opperasjonen) Forutsigbarhet (Oppgaven fullføres hver gang når igangsatt av operatør) Kvalitet (At renderoppgaven blir gjennomført med 100% nøyaktig resultat) Smidighet (Igangsetting av renderfarmen krever ingen kommando eller konfigurering fra bruker) Samtidig som systemet gjennom en pris sammenligning i forhold til lokkede renderfarm systemer skal være økonomisk lønnsomt for bedrifter med 4 til 20 ansatte.
2. Bakgrunn For å få bedre innsikt i dette prosjektet og hvordan oppgaven skal løses, vil vi i dette kapittelet presentere de ulike verktøyene og løsningene som er valgt for gjennomføring av prosjektet. 2.1 Xen Xen var opprinnelig et forskningsprosjekt ledet av Ian Pratt, på Cambridge University i England. Den første offisielle versjonen ble lansert i 2003. I oktober 2007 kjøpte Citrix Systems XenSource Inc, og flyttet prosjektet til www.xen.org, og i oktober 2009 annonserte Citrix deres nå kommersielle Xen applikasjoner ville fullt og helt bli åpen kildekode og gjort kostnadsfritt tilgjengelig for allmennheten. Simon Crosby, teknisk leder av Citrix virtualisering og administrasjons avdeling sa: «XenServer er 100 % gratis, og har i tillegg fullstendig åpen kildekode. Vi har ingen profitt her». Hva er Xen? Xen hypervisor er en virtualiseringsmonitor for x86m x86_64, ARM, IA64 og andre CPU-arkitekturer. Programmet er basert på åpen kildekode, og gjør det mulig å kjøre flere separate operativsystemer på en og samme maskinvare. Xen.org-samfunnet utvikler og vedlikeholder Xen hypervisor som en gratisløsning lisensiert under GNU General Public Licence. Hvordan fungerer Xen? Xen har en struktur med Xen hypervisor som det laveste og mest privilegerte lag. Den er ansvarlig for CPU-fordeling og minnedeling av det varierende antallet virtuelle maskiner som kjører på maskinvaren. Hypervisoren ikke bare abstraherer maskinvaren for virtuelle maskiner, men kontrollerer også igangsetting/kjøring av de virtuelle maskinene fordi de deler prosessmiljø. Den har ingen kjennskap til nettverk, eksterne lagringsenheter, video eller andre vanlige I/O-funksjoner man finner i et datasystem. En datamaskin som kjører Xen hypervisor inneholder tre komponenter. Dette er: Xen hypervisor. Domain 0 Guest (Dom0), som den mest privilegerte gjest som kjører på toppen av hypervisoren med direkte maskinvaretilgang. Multi Domain Guests (DomU), uprivilegerte gjester som kjører på hypervisoren. Xen hypervisor kjører direkte på maskinvaren og blir grensesnittet for alle spørringer fra maskinen, som for eksempel CPU, I/O. Den fungerer også som disk for gjesteoperativsystemene. Dom0 Guest, referert til som Dom0, starter opp automatisk når hypervisoren startes opp. Dom0 kan kjøre alle operativsystemer bortsett fra Windows. Dom0 har unike tilgangsprivilegier til Xen hypervisor som ikke er allokert til noen andre Dom Guests. Disse privilegiene gjør det mulig for den å
håndtere alle aspekter av Domain Guests som å starte, stoppe, I/O spørringer, etc. En systemadministrator kan logge seg på Dom0 og administrere hele systemet. Dom Guests, referert til som DomUs blir operert og kontrollert av Dom0, og opererer selvstendig i systemet. Disse gjestesystemene blir enten kjørt med spesialmodifisert operativsystem, referert til som paravisualisert eller umodifisert operativsystemer, som leverer spesial virtualiseringsmaskinvare (Intel VT og AMD-V) referert til som "hardware virtual machine" (HVM). - Paravisualisering er et begrep brukt til å beskrive virtualiseringsteknikker som tillater operativsystemer å være oppmerksom på at det kjører på en hypervisor og ikke en basismaskinvare. Operativsystemet må være modifiser til å tilpasse seg det å kjøre på en hypervisor i stedet for vanlig maskinvare. - Hardware Virtual Machine (HVM) er et begrep brukt til å beskrive et operativsystem som kjører i et virtualisert miljø uforandret og uoppmerksom på at den ikke kjører direkte på maskinvaren. Spesielt tilpasset maskinvare trengs for å kunne utføre dette, derav begrepet HVM. 2.2 MLN MLN (Manage Large Networks) er et perlprogram som kan brukes til å lage komplette nettverk av Xen eller User-Mode-Linux fra en enkelt konfigurasjonsfil. Formålet er å forenkle konfigurering og administrering av virtuelle nettverk. Xen og User-Mode Linux er mye brukt som verktøy for testing, læring og som virtuell vert. MLN bygger og konfigurerer filsystemmaler basert på dets beskrivende og enkle programmeringsspråk, og lagrer dem systematisk. Det genererer også start og stopp script for hver virtuelle vert, og muliggjør å administrere et kjørende virtuelt nettverk ved å kunne stoppe individuelle virtuelle maskiner, og starte dem igjen. MLN gjør det mulig å ha fler separate nettverk/prosjekter samtidig, og kan også sette disse sammen til større nettverk. Å bruke MLN kan gi mange fordeler. Man forenkler logistikken om man f. eks har flere maskiner kjørerne på samme pc, noe som gjør det enklere å teste og utvikle på flere maskiner på for eksempel en og samme pc. Man kan også spare både tid og penger fordi man ikke trenger fornye maskinvare eller bruke mye tid på vedlikehold som installering etc. På en virtuell maskin kan man enkelt bytte "image" (rammeverk/filsystem) eller oppgradere prosjektet. I læring eller forskningssammenheng, trenger man ofte flere maskiner for å gjennomføre et eksperiment, oppgave eller kurs. MLN ble laget for dette formålet: En kjapp og effektiv måte å konfigurere, bygge, gjenopprette og dele komplekse nettverk, tilnærmet "på sparket". CPU emulatorer er veldig praktiske, men med kjerneemulatorer fjerner vi et lag emulering. UMLkjernen vil kjøre på lik linje med andre prosesser i systemet ditt. Det bør nevnes at ytelsen vil variere ettersom hvordan du konfigurer dine virtuelle maskiner og hvor mye minne du tildeler dem. MLN er tiltenkt brukt i læringsinstitusjoner, for å lage flere Xen eller UML instanser som studenter bruker for å lage root-nettverk eller vertskonfigurasjon. MLN kan også brukes til å lage testmiljøer hvor man kan undersøke nye konfigurasjoner for systemadministratorer. i tillegg til at det også kan brukes som en del av en produksjonsnettverk for separate tjenester i separate instanser.
MLN er skrevet med tanke på langtidsbruk og er tiltenkt brukt i blant annet utdanningsinstitusjoner. I denne sammenheng må det være mulig å administrere mange virtuelle nettverk over en lang periode av tid, uten store vansker. Studenter skal også kunne klare bygge deres egne nettverk som testmiljøer hvor de kan lære UNIX systemadministrasjon. MLN kan også brukes til å lage testmiljøer hvor systemadministratorer kan undersøke nye konfigurasjoner, og det kan også brukes som en del av et produksjonsnettverk for separate tjenester i separate instanser. 2.3 Grafikkprosessering Grafikkprosessering, også kalt rendering, handler i praksis om at man regner ut de matematiske forholdene som kan skape skygger, 3D objekter, teksturer og lignende. Dette er svært tunge arbeidsoppgaver som krever mye CPU av en maskin. Sagt på en annen måte betyr dette at man genererer et bilde fra en 3D-modell. Modellen er en matematisk beskrivelse av et tredimensjonalt objekt gjennom definering av koordinatsystem og 3D-koordinater for hjørnepunkter. Denne beskrivelsen kan omhandle informasjon om blant annet geometri, synsvinkel, tekstur, skygge og lys. z x y Grafikkprosessering brukes i sammenhenger som f.eks. arkitektur, dataspill, simulatorer, filmer og designvisualisering. I all film er det 26 bilder per sekund. Et bilde består av røde, grønne og blå punkter som skal flytte plassering 26 ganger i sekundet. Ved 3D-animasjon, har men i tillegg veldig komplisert utregning for å få fram strukturer, skygge og lignende for å få fram mest mulig naturlig bilde eller bevegelse. Vann beveger seg for eksempel annerledes enn ild. Å prosessere all denne informasjonen er en veldig avansert operasjon som krever mye datakraft. 2.4 Renderfarm En renderfarm er en klynge av maskiner som er bygget for tilsammen å utføre en grafikkprosessering. Dette kan være flere fysiske eller virtuelle maskiner. En renderfarm brukes typisk til film, tv og visuelle effekter generelt. Når man jobber i et prosjekt har man ofte tidsbegrensninger og leveringsfrister. Behovet for å lage bilder av høy kvalitet har gitt et økt behov for kraftigere maskinvare, og med årene har har kraftigere maskinvare gjort det mulig å prosessere bilder på kortere tid. Dette har igjen gjort det mulig å også prosessere bilder av høy kvalitet.
Programvaren for en renderfarm har en typisk klient-server arkitektur. For å håndtere større farmer må man ha en queue manager som distribuerer prosesser til de forskjellige prosessorene i tillegg til å omprioritere og optimalisere bruken av maskinvare i renderfarmen. Hver prosess i en renderfarm kan rendre alt fra flere hele bilder til kun en del av et bilde. Det selges i dag renderfarmprogramvare, for eksempel Rebusfarm som tilbyr, (fyll inn) og det finnes også bedrifter som (fyll inn navn), som tilbyr slike tjenester. 2.5 Nettsky (Cloud Computing) Cloud computing, også kalt arbeid i nettsky, er et stadig oftere omtalt IT-begrep. Selv om dette ikke er et nytt begrep, er det likevel først i den senere tiden at den er blitt mer og mer vanlig. Ordet cloud har lenge vært brukt som betegnels på internett, og er ofte brukt for å illustrere internett. Cloud computing er et bredt begrep, men i prinsippet kan man si at cloud computing handler om å flytte tradisjonelle IT-tjenester ut på eksterne maskiner som er tilgjengelige via internett. Cloud Computing gjør det mulig å kjøpe fleksible løsninger over internett. Dette kan for eksempel bety at datatjenester og applikasjoner blir tilgjengelige uansett hvor man er eller fra hvilken enhet man jobber på. Figur2: Illustrasjon av en nettsky Tjenestene som blir tilbudt gjennom cloud computing blir ofte delt inn I tre kategorier. Disse er: IaaS (Infrastructure-as-a-Service) IaaS tilbyr virtuelle servere med unike IP adresser og lagringsplass etter behov. Fordelen med denne løsningen er at kunden har full kontroll over sin virtuelle server. Den mest kjente leverandøren av denne tjenesten er Amazon Web Services Amazon web services er en underavdeling av selskapet Amazon og ble etablert i 2002. Selskapet tilbyr online tjeneseter for web sider og klient applikasjoner. De fleste av disse tjenestene er ikke synlige for sluttbruker, men gir funksjonalitet for utviklere. Amazon tar betaling per time tjenesten brukes. Amazons sin servertype Ec2 kan skaleres, dette betyr at brukeren kan få tilgang på mer kraft om prosjektet utvides. Kjente brukere av tjenesten er Harvard Medical School, Washington Post, Playfish, Stanford AI Lab og Linden lab. PaaS (Platform-as-a-Service) Paas er sett med utviklingsverktøy som er tilgjengelig gjennom tjenesteleverandørens servere og som utvikler kan bruke for å lage applikasjoner eller programvare. Siden det ikke eksisterer en felles standard, må applikasjonene utvikles og kjøres på tjenesteleverandørens servere innenfor leverandørens rammeverk. En av de mest kjente leverandørene av denne tjenesten er Google App Engine
Google App Engine ble lansert i 2008 som en tjeneste gitt fra Google corperation. Tjenesten gjør det mulig for utviklere og virtualisere applikasjoner over flere servere og data sentere. I- motsetning til Amazon sin Ec2 server har App Engine mer infrastruktur for enklere utvikling, men applikasjonene vil bare kjøre på App Engines infrastruktur. Tjenesten er gratis og bruke der brukeren får en kvote og hvis brukeren gå over kvoten kan mer datakraft kjøpes SaaS (Software-as-a-Service): SaaS er betegnelsen på alle webbaserte programmer og applikasjoner. Dette er et veldig bredt felt, og omhandler alt fra Hotmail til Twitter. 2.6 Blender Blender er et avansert verktøy for å lage 3D grafikk. Blender er en gratis programvare basert på åpen kildekode, utviklet og eies av stiftelsen The Blender Foundation. Det gis ut under GNU General Public License som er en vanlig lisens for gratis programvare. Blender er under stadig utvikling, og er i dag et verktøy som fint kan konkurrere med de større aktørene i markedet som for eksempel Maya og 3DS Max. Blender 2.49b er siste versjon av programmet og støtter alle de største operativsystemene som f.eks. Windows (2000/XP/Vista/7), Linux og MAC OS X. Blender tilbyr avanserte verktøy for 3Dmodellering, animasjon og rendering-program. Figur 1: Eksempel på muligheter med Blender 2.49b.