Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Metadata Server - Poslužitelji za upravljanje pohranjenim podacima s informacijama poput njihovog imena, vlasništva i prava pristupa
  • Object Storage Server -Poslužitelji na kojima se podaci fizički nalaze i koji se mogu proizvoljno skalirati
  • Management Server  -Poslužitelji koji su odgovorni za nadzor i upravljanje cjelokupnim datotečnim sustavom Lustre
  • Lustre Networking - Brza i visoko propusna veza kojom se podaci prenose
  • Client - Mount point na pristupnim poslužiteljima koji otkriva datotečni sustav Lustre korisničkim aplikacijama


Slika 1. Dijagram datotečnog sustava Lustre (Figure 1 u izvornoj publikaciji)

...

Ako uzmemo u obzir dva rubna slučaja: 1) tisuću datoteka u jednom direktoriju naspram 2) tisuću direktorija s jednom datotekom, vidljivo je da se množenjem direktorija efikasnost ove operacije značajno smanjuje (approx. 20 puta). Slični trend vidljiv je i u ostalim kombinacijama (10/100 vs. 100/10, itd.) što upućuje na nužnost agregacije podataka u manji broj direktorija i idealno datoteke većeg obujma.

Slika 2. Vrijeme izvođenja komande ls -l * stotinu puta nad

...

Ako pretpostavimo slična ubrzanja iz prethodnog dijagrama, Lustre datotečni sustav možemo potencijalno koristiti i do deset puta efikasnije (ili barem jedan značajan dio njegove funkcionalnosti) ako okrupnimo podatke u jednu veću, zasebnu cjelinu.

Tablica 1. Ispis broja direktorija, broja datoteka koje sadrže i njihove

veličine za tipičan python3.9 data stack


Code Block
languagebash
# broj direktorija
marko@pc-mkvakic 15:05 ~ $ find ~/.local/lib/python3.9/site-packages /usr/local/lib/python3.9/dist-packages -type d | wc -l
4338

# broj datoteka
marko@pc-mkvakic 15:05 ~ $ find ~/.local/lib/python3.9/site-packages /usr/local/lib/python3.9/dist-packages -type f | wc -l
47355

# veličine
marko@pc-mkvakic 15:06 ~ $ du -hcs ~/.local/lib/python3.9/site-packages /usr/local/lib/python3.9/dist-packages 
939M	/home/marko/.local/lib/python3.9/site-packages
747M	/usr/local/lib/python3.9/dist-packages
1.7G	total

...

Operativni sustav kao osnova kontejnera je Ubuntu Focal Fossa (v20.04 LTS)


Image RemovedImage Added

Slika 3. Workflow za izradu i korištenje kontejnera. Kombinacije komandi

poput create, import i bootstrap su u novijim verzijama zamijenjene

Slika je preuzeta sa

stranice Singularitya; preteče Apptaineru koja funkcionira

na identičan način.komandom build (Figure 1 u originalnom članku)

Izgradnja pipom

Prvi korak je stvaranje osnovnog kontejnera data_stack_sandbox u interaktivnom modu ili verziji sandbox:

...

Primjer izgradnje ubuntu v20.04 imagea s dodatnim knjižnicama:

Code Block
languagebashlinenumberstrue
# login na pristupni poslužitelj gpu
[korisnik@kompjuter ~]$ ssh korisnik@login-gpu.hpc.srce.hr
Last login: Wed May 24 09:23:06 2023 from x.x.x.x

# pomicanje u /scratch i kreiranje direktorija za izgradnju
[korisnik@x3000c0s27b0n0 ~]$ cd /scratch
[korisnik@x3000c0s27b0n0 scratch]$ mkdir ${USER}-apptainer
[korisnik@x3000c0s27b0n0 scratch]$ cd ${USER}-apptainer

# izgradnja sandbox verzije
[korisnik@x3000c0s27b0n0 korisnik-apptainer]$ apptainer build ubuntu_20.04_sandbox docker://ubuntu:20.04
[korisnik@x3000c0s27b0n0 korisnik-apptainer]$ apptainer shell --writable --fakeroot ubuntu_20.04_sandbox
Apptainer> ...
Apptainer> ... dodatne komande za izgradnju kontejnera ...
Apptainer> ...
Apptainer> exit

# mijenjanje sanboxa u image, prebacivanje u korisnički i 
[korisnik@x3000c0s27b0n0 korisnik-apptainer]$ apptainer build ubuntu_20.04.sif ubuntu_20.04_sandbox
[korisnik@x3000c0s27b0n0 korisnik-apptainer]$ mv ubuntu_20.04.sif ~
[korisnik@x3000c0s27b0n0 korisnik-apptainer]$ cd ~

# brisanje direktorija za izgradnju
[korisnik@x3000c0s27b0n0 korisnik-apptainer]$ rm -rf /scratch/${USER}-apptainer

...