Professional Documents
Culture Documents
i-node
tip objekta
Superblock
i-node tabela
pristupna prava
i-node 0
i-node 1
.. .
.. .
.. .
user ID
group ID
veliina datoteke
access time
mod time
i-node time
file-info
ime datoteke
i-node broj
i-node n-1
blokovi sa podacima
direktorijumski blokovi
blokovi pokazivaa
data block 0 (direktorijum)
direktan pokaziva 1
direktan pokaziva 2
.. .
.. .
.. .
indirektan pokaziva
2x indirektan pokaziva
3x indirektan pokaziva
direktorijum
file-info 0
file-info 1
.. .
.. .
.. .
file-info n-1
zaglavlje (superblock),
Str. 1 / 8
tip objekta (npr. regularna datoteka, direktorijum ili simboliki link) i pristupna prava za tri
vlasnike kategorije,
vreme zadnje modifikacije indeksnog vora objekta (i-node time) u UNIX vremenskom
formatu,
listu direktnih pokazivaa na blokove sa podacima, koja je dovoljna da se adresiraju prvih 1012 blokova podataka koji ine poetak datoteke (broj zavisi od tipa sistema datoteka),
Rupe u datotekama
Neki UNIX sistemi datoteka dozvoljavaju kreiranje rupa u datotekama (hole) pomou lseek()
sistemskog poziva. Rupe u datoteci ne zauzimaju prostor na disku, a sistem datoteka ih simulira
odreenim brojem nula. Na ovaj nain se smanjuje broj upotrebljenih blokova podataka za datoteke
koje u svom binarnom obliku imaju velike nizove nula (male binarne datoteke, deljene biblioteke i
neke baze podataka). Rupe se implementiraju upisivanjem specijalnih vrednosti na mestima adresa
blokova podataka u indirektnim pokazivaima. Te vrednosti znae da ni jedan blok podataka nije
upotrebljen za taj deo datoteke, ve da se na tom mestu nalazi rupa.
Dozvoljeni karakteri su: sva velika slova (A-Z), sva mala slova (a-z), cifre (0-9), crta (-),
underscore (_) i taka (.). Opcije UNIX komandi poinju jednom (-) ili dvema crtama (--), tako da
imena objekata ne treba poinjati tim karakterima. Ukoliko ime objekta poinje takom (.), on se
smatra skrivenim i moe se videti pomou komande ls samo ako je zadata s parametrom -a (all).
Datoteke koje slue za inicijalizaciju i podeavanje radnog okruenja najee su skrivene
(.bash_profile, .bash_history);
Ukoliko se ova komanda pokrene dvaput nad direktorijumima koji se nalaze na istom sistemu
datoteka, isti rezultat se vraa u oba sluaja. Ukoliko se direktorijumi nalaze na razliitim tipovima
sistema datoteka, npr. ukoliko je /etc na ext2 sistemu datoteka, a /public na FAT 8.3 sistemu,
komande getconf NAME_MAX /etc i getconf NAME_MAX /public vratie razliite rezultate.
Str. 3 / 8
Journal je reim praenja svih promena u sistemu datoteka, kako u meta-data oblasti tako i u
objektima-datotekama, ime se pouzdanost sistema datoteka znatno uveava na raun performansi.
Redundansa koju ovaj reim rada unosi je velika, ali svakako na raun performansi.
Ordered je reim praenja promena u meta-data oblasti, pri emu se promene u objektima
sistema datoteka upisuju pre auriranja i-node tabele. Ovo je podrazumevani reim rada dnevnika,
koji garantuje potpunu sinhronizaciju objekata sistema datoteka i meta-data oblasti. U odnosu na
journal, ovaj reim karakterie manja redundansa i vea brzina rada.
Writeback je reim praenja promena u meta-data oblasti, pri emu se i-node tabela moe
aurirati pre upisa promena u objekte sistema datoteka. Ovo je najbri reim rada ali ne garantuje
konzistenciju meta-data oblasti, odnosno sinhronizaciju objekata sistema datoteka meta-data oblasti,
to moe dovesti do neprijatnih situacija u sistemu datoteka kao to su pojave nove i stare verzije
datoteke itd.
Reiser FS
Jedan od prvih sistema datoteka sa journaling opcijom je ReiserFS, verzija 3.6.x (prisutna u
Linux kernelima poev od verzije 2.4). ReiserFS, koji je ime dobio po tvorcu, Hansu Reiseru,
znaajno poveava performanse pri radu sa malim datotekama (small file performance), koje su kod
ostalih journaling sistema datoteka veoma slabe. Brojni testovi pokazuju da je ReiserFS 8 do 15
puta bri od ext2 pri radu sa datotekama manjim od 1KB. Dodatno, ReiserFS razreava problem
interne fragmentacije ime se poveava efikasnost iskorienja diskova. Ovako visoke performase
pri radu sa malim datotekama ReiserFS postie na osnovu optimizovanog B+ stabla (jedno po
sistemu datoteka) i dinamike alokacije indeksnih vorova (za razliku od fiksne alokacije i-node
koju koristi ext2). Dodatno, ReiserFS koristi promenljivu veliinu sistemskog bloka, a male
datoteke se upisuju u svoj direktorijum zajedno sa svojom file-info strukturom. U dnevniku se
auriraju samo promene u meta-data oblasti.
Loe osobine ReiserFS reflektuju se pri radu sa upljim datotekama (sparse files), gde je ext2
daleko bolji. Takoe, ReiserFS radi sporije sa velikim datotekama u odnosu na ext2.
Za testiranja sistema datoteka na Linux operativnom sistemu koristiemo alat Postmark koji
simulira optereenje servera za elektronsku potu.
PostMark kreira veliki inicijalni skup (pool) sluajno generisanih datoteka na bilo kom mestu
u fajl sistemu. Nad tim skupom se dalje vre operacije kreiranja, itanja, upisa i brisanja datoteka.
Redosled izvoenja operacija je sluajan ime se dobija na verodostojnosti simulacije. Broj
datoteka, opseg njihove veliine i broj transakcija su u potpunosti konfigurabilni. Radi eliminisanja
cache efekata preporuuje se kreiranje inicijalnog skupa sa to veim brojem datoteka (bar 10000) i
izvrenje to veeg broja transakcija.
Poto emo testiranje vriti na praznim particijama, potrebno je prekopirati fajl postmark iz
korisnikog direktorijuma na novu particiju. Kopiranje vrimo iz grafikog okruenja ili putem
komande cp.
Str. 5 / 8
PostMark konfiguracija:
set size
set number
set transactions
1000 90000
2000
50000
Rezultate sauvati u obliku tekstualnog fajla radi kasnijeg poredjenja sa drugim testovima.
Primer rezultata:
datoteka/sec
journal
ordered
writeback
kreiranje dat.
2000
2000
500
kreiranje sa trans.
220
314
1038
itanje
219
312
1035
upis u datoteku
216
308
1035
brisanje
2340
2340
336
brisanje sa trans.
217
310
1045
1.3
1.85
6.25
upis (MB/sec)
1.41
6.37
PostMark konfiguracija:
set size
set number
set transactions
1000 30000000
4000
50000
Rezultate sauvati u obliku tekstualnog fajla radi kasnijeg poredjenja sa drugim testovima.
Primer rezultata:
datoteka/sec
journal
ordered
writeback
kreiranje dat.
63
85
88
kreiranje sa trans.
itanje
upis u datoteku
154
166
160
brisanje
brisanje sa trans.
Str. 7 / 8
1.28
1.36
1.36
upis (MB/sec)
1.49
1.57
1.57
PostMark konfiguracija:
set size
set number
set transactions
1
1000
4000
50000
Rezultate sauvati u obliku tekstualnog fajla radi kasnijeg poredjenja sa drugim testovima.
Primer rezultata:
datoteka/sec
journal
ordered
writeback
kreiranje dat.
277
256
256
kreiranje sa trans.
36
38
38
itanje
36
38
37
upis u datoteku
36
38
38
4992
4992
4992
36
38
38
brisanje
brisanje sa trans.
15.44
15.92
15.71
upis (KB/sec)
48.51
50.04
49.36
Analiza rezultata:
Izvrite poredjenje rezultata prethodna 3 testa i objasnite pomou dobijenih rezultata razlike
pomenuta dva sistema datoteka u radu sa razliitim veliinama datoteka. Navedite koji sistem je
pogodniji za razliite vrste namena.