Ei enkelt datamaskin har ei avgrensa mengde systemressursar som prosessorkraft, arbeidsminne og lagringsplass. Internt i maskina er det òg avgrensa kor mykje og kor raskt informasjon kan flyttast mellom komponentane (I/O).
På serversida i større system vil derfor éi enkelt servermaskin sjeldan vere nok for å dekkje behovet. Bruk av éin enkelt server gir òg låg feiltoleranse for systemet, sidan ein enkeltståande feil som får den serveren til å stoppe, òg vil resultere i at heile systemet stoppar opp.
Å setje fleire serverar til å samarbeide er derfor vanleg innan serverdrift og gjerast på ulike måtar avhengig av behovet som skal dekkjast. Ein server som er del av eit større system, kallar vi ofte for ein servernode. Dette speglar at den er ein liten del av det totale systemet.
Når maskiner arbeider saman for å gjere oppgåver, blir som oftast éin av desse tre metodane brukt:
rekneklyngje (cluster)
grid
sky (cloud computing)
Desse er strukturerte ulikt frå kvarandre og har ulike bruksområde.
Rekneklyngje (cluster) | Grid | Sky (cloud computing) | |
---|---|---|---|
Kort skildring | Servernodane har rask tilgang til felles ressursar, som lagring og nokre gonger arbeidsminne. Dette gjer det mogleg for dei å arbeide parallelt med den same arbeidsoppgåva. | Arbeidsoppgåvene som skal løysast, blir delte opp i mindre sjølvstendige deloppgåver som blir fordelte ut til dei tilgjengelege servernodane. | Servernodane blir tildelte virtuelle maskiner eller konteinarar dei skal køyre frå eit handteringssystem (orchestration system). |
Korleis auka kapasitet blir oppnådd | Servernodane fungerer som delar av ei større samanhengande maskin. Dette gjer dei spesielt nyttige for omarbeiding av store og komplekse oppgåver som må løysast i ei lineær rekkjefølgje. | Kvar deloppgåve inneheld alle dataa som trengst for å bli løyst. Så lenge det er ugjorde deloppgåver og handteringssystemet som sender desse ut og tek imot endeleg resultat har kapasitet, kan det berre leggjast til fleire servernodar for meir kapasitet. | Ved behov kan virtuelle maskiner eller konteinarar kopierast og køyrast på fleire samtidige fysiske serverar. Dette gir ein kapasitet utover det som éin enkelt fysisk server kan levere. |
Plassering av utstyr | Behovet for rask kommunikasjon og låg forseinking mellom servernodane gjer at desse må vere plasserte nært kvarandre. | Kommunikasjon over Internett er naudsynt, men utstyret kan vere plassert kvar som helst. | Eksterne skyleverandørar har ofte datasenter rundt omkring i verda, og kvar av desse har mange servernodar. |
Krav til servernode | Servernodar som er ein del av ein rekneklyngje, må ha lik maskinvare. | Maskinene som fungerer som servernodar, kan ha heilt ulik maskinvare. | Bruk av lik maskinvare på kryss av mange servernodar er praktisk og vanleg, men ikkje eit krav for skyoppsett. |
Døme på bruk | Forskingsprosjekt, vêrvarsel | Forskingsprosjekt, desentraliserte tenester som torrent, cryptovaluta | Skytenester som IaaS, Paas og Saas |
Arbeidsoppgåver for rekneklyngjer og grid
Arbeidsoppgåver som kan delast opp
Nokre arbeidsoppgåver kan delast i mindre deloppgåver. Eit døme på dette kan vere eksportering av ein dataanimert film.
Kvar biletrute (frame) i den dataanimerte filmen må rendrast til stillbilete. Stillbileta blir så sett saman til ei videofil. For ein lengre animasjonsfilm kan dette raskt vere over 200 000 biletruter (frames).
Med komplekse figurar, animasjon, lyssetjing og bakgrunnar ville rendringa ha teke år å gjere på éi enkelt datamaskin.
Heldigvis er det mogleg å dele opp animasjonsfilmen i scener eller mindre grupper av biletruter (mellom keyframes). Desse kan eksporterast ut uavhengig frå kvarandre. Berre til slutt må alle stillbileta setjast saman i riktig rekkjefølgje, og eksporteringa er fullført.
Andre døme på arbeidsoppgåver som passar til grid-oppsett er store forskingsprosjekt som seti@home og folding@home.
Arbeidsoppgåver som ikkje kan delast opp
Nokre arbeidsoppgåver må gjerast lineært, altså i rekkjefølgje. Komplekse simuleringar er eit typisk døme. Her blir data tekne inn og omarbeidde gjennom fleire simuleringssteg. Kvar steg er ressurskrevjande og krev resultatet frå det førre steget som inndata for å fungere. Dette gjer at stega ikkje kan gjerast parallelt (samtidig) eller i ei anna rekkjefølgje enn den som er planlagt.
Sky og eigne serverklyngjer
Rekneklyngjer og grid blir brukte for store spesialiserte arbeidsoppgåver, ofte relaterte til forsking. For drifting av system ute i ordinære bedrifter er det vanleg å bruke sky og eigne serverklyngjer. Servernodane der samarbeider om køyre naudsynte virtuelle maskiner eller konteinarar for å dekkje behovet til systemet.
Eit døme på dette kan vere drifta av ei større nettside. Kvar delteneste som nettsida avheng av (som backend, frontend, database, nettbutikk og så vidare) er skild ut i separate konteinarar. Éin eller fleire kopiar (instansar) av kvar konteinar køyrar så på éin eller fleire fysiske serverar, avhengig av behovet akkurat då. Dette kan til dømes vere som i modellen under.
Relatert innhald
Nettside hos snl.no