Hopp til innhald

Fagstoff

Når serverar arbeider saman

Éin enkelt fysisk server har ofte for lite systemressursar til å drifte større system med mange samtidige brukarar åleine. Å setje fleire maskiner til å arbeide saman er derfor i mange tilfelle naudsynt. Fleire maskiner gir ikkje berre auka kapasitet, men òg betre feiltoleranse.
Fleire høge metallskap med perforerte dører framom og bak. I metallskapa er serverar stabla oppover. Ein mann står bøygd og koplar kablar til ein svitsj i eit av skapa. Foto.
Opne bilete i eit nytt vindauge

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).

Storyboard for animasjonsserien Masha og Mishka. Illustrasjon.
Opne bilete i eit nytt vindauge

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.

Tre boksar merkte med steg 1, 2 og 3. Frå boksen steg 1 går det ei pil til boksen steg 2, og frå boksen steg 2 går det ei pil til boksen steg 3. Illustrasjon.
Opne bilete i eit nytt vindauge

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.

Modell av fire serverar, éin fungerer som konteinarkontrollar, dei tre andre er nodar med forskjellige konteinarar på dei forskjellige maskinene. Nokre konteinarar finst det fleire kopiar av. Illustrasjon.
Opne bilete i eit nytt vindauge

Relatert innhald

Serverkonteinarar (containers) er ein virtualiseringstype som blir brukt mykje både i driftsmiljø og utvikling. Kvar konteinar inneheld ofte ei teneste.

CC BY-SASkrive av Tron Bårdgård.
Sist fagleg oppdatert 04.05.2021

Læringsressursar

Virtualisering av IT-ressursar