Skoči na vsebino

Vsebniki Singularity

Uvod

Danes so najbolj razširjeni vsebniki Docker, ki jih je že leta 2013 razvilo podjetje DotCloud. Že od samega začetka ponujajo format za zapis receptov za gradnjo vsebnikov in format za zapis slik vsebnikov. Uporabnikom je na voljo spletni portal dockerhub, na katerega lahko objavljamo recepte. Tako lahko danes vsak zgradi vsebnik, ki ga lahko kdorkoli z nekaj enostavnimi ukazi zažene na svojem računalniku. Vsebniki Docker predstavljajo industrijski standard za virtualizacijo operacijskega sistema. Na voljo je kopica orodij za orkestracijo vsebnikov Docker, mnogi upravljalci oblačnih storitev omogočajo integracijo v svoje sisteme. Z učinkovitim upravljanjem vsebnikov strankam zagotavljajo raztegljivost programske opreme, običajno zgrajene iz množice mikrostoritev, ki se izvajajo v vsebnikih. Vsebniki Docker pa imajo nekaj lastnosti, zaradi katerih niso najprimernejši za uporabo v superračunalniških okoljih. Med drugim nadzornik vsebnikov teče kot servis, ki za zagon vsebnika in mnoge operacije z njimi zahteva več pravic, kot jih imajo običajni uporabniki.

"Docker logo""arrow""Syngularity logo"

Zaradi lastnosti, ki omejujejo praktično uporabnost vsebnikov Docker v superračunalniškem okolju, je leta 2016 Lawrence Berkley National Laboratory začel odprtokodni projekt razvoja ogrodja za delo z vsebniki, prilagojenega za superračunalniške sisteme. Danes za razvoj ogrodja in vsebnikov Singularity skrbi podjetje Sylabs, ki vzdržuje tudi prosto dostopno različico Community Edition. Ogrodje Singularity je v zasnovi precej podobno ogrodju Docker. Sliko vsebnika Docker je možno zelo enostavno pretvoriti v sliko vsebnika Singularity.

Prednosti ogrodja Singularity

Glavne prednosti, zaradi katerih so vsebniki Singularity priljubljeni v superračunalniškem okolju, so1:

  • Vsak vsebnik je shranjen v eni sami datoteki, ki vključuje knjižnice, orodja, uporabniško programsko opremo. Zato vsebnike enostavno prenašamo med računalniškimi sistemi.
  • Uporabnik si v vsebnike namesti poljubno programsko opremo po svojih potrebah in željah. Pri delu v vsebniku ogrodje uporablja enostaven varnostni model, ki pravice uporabnika iz gostitelja prenese v vsebnik, v vsebniku pa ne dovoli spreminjanja pravic.
  • Ogrodje Singularity daje prednost integraciji pred izolacijo, s čimer olajša uporabo posebne strojne opreme: grafičnih procesnih enot in drugih pospeševalnikov, nizkolatenčnih širokopasovnih omrežij in dostop do porazdeljenega datotečenga sistema.
  • Vsebnike lahko opremimo s kriptografskimi mehanizmi, preko katerih uporabnik lahko preveri izvor vsebnika in se prepriča, da ni bil spremenjen.

Arhitektura

Mnogi nadzorniki vsebnikov, med njimi tudi Docker, tečejo kot servisi z več pravicami, kot jih ima navaden uporabnik. Na ta način lahko učinkovito povezujejo delovne tokove, sestavljene iz množice vsebnikov, in uporabnikom v vsebnikih dajo več pravic, kot jih imajo na gostitelju. Zaradi tega morajo biti tudi močno izolirani od gostitelja. Vsebniki, ki jih nadzira servis, so tako podrejeni servisu, ne pa uporabniški lupini, in so tako zunaj dosega razvrščevalnika poslov na superračunalniku.

V ogrodju Singularity to težavo razrešujejo tako, da je nadzornik vsebnikov Singularity Launcher navadna aplikacija, ki jo zaženemo iz uporabniške vrstice in se samodejno zaustavi, ko vsebnik zaključi z izvajanjem. Ker ima uporabnik znotraj vsebnika enake pravice, kot na gostitelju, ima v vsebniku lahko dostop do datotečnega sistema in posebne strojne opreme na gostitelju.

"Primerjava ogrodij za vsebnike" "Primerjava ogrodij za vsebnike")

Delovno okolje

Vsebnike gradimo v razvojnem okolju, kjer moramo imeti skrbniške pravice (root) ali pa nam mora skrbnik sistema dati dovoljenje za uporabo stikala --fakeroot pri delu z ogrodjem Singularity. Običajno slike vsebnikov pripravljamo kar na osebnem računalniku, kjer imamo dovolj pravic. Za namestitev ogrodja Singularity sledite navodilom na spletni strani https://sylabs.io/guides/3.7/user-guide/quick_start.html#quick-installation-steps.

Pri pripravi vsebnikov se lahko poslužimo naslednjih možnosti:

  • vsebnike lahko gradimo interaktivno v peskovniku ali interaktivno popravljamo obstoječe slike,
  • vsebnike lahko gradimo iz v naprej pripravljenih receptov, ali
  • jih preprosto potegnemo iz podprtih repozitorijev, kot so Syngularity Cloud Library, docker hub in Nvida NGC.

Pripravljene vsebnike zaganjamo v produkcijskem okolju, kjer običajno nimamo skrbniških pravic. Zaganjamo jih interaktivno ali ne-interaktivno

  • iz slike, ki smo jo na sistem prenesli neposredno, ali
  • iz slike, na enem od repozitorijev.

  1. Sylabs, Singularity User Guide, 2021.