LAKI PINGVINI<>
042019<><>

Fajl sistemi za Linux (3)

Nešto malo drugačije

Pošto smo u prošlom broju obradili temu EXT fajl sistema koji služi kao okosnica najvećeg broja Linux distribucija, ovaj put ćemo se baviti rešenjima koja predstavljaju alternativu tom mainstream fajl sistemu. U nastavku vam prezentujemo nekoliko fajl sistema koji se u pojedinim praktičnim scenarijima mogu pokazati kao znatno kvalitetnije rešenje.

BtrFS

Skraćenica BtrFS predstavlja kovanicu od termina B-Tree i FS (File System), a na engleskom se najčešće izgovara kao „butter fuss”. Pojam B-tree se odnosi na strukturu binarnog stabla koje se često upotrebljava u ovakvim prilikama. Iza projekta stoji kompanija Oracle, koja je uz njegovu pomoć želela da stvori alternativu za ZFS, a koji je igrom prilika nakon objavljivanja BtrFS (2010. godina) došao u njihovo vlasništvo. Ovaj fajl sistem se u radu oslanja na upotrebu CoW (Copy on Write) mehanizma i poseduje visok stepen otpornosti na greške uz mogućnost provere konzistentnosti bez potrebe za demontiranjem diska. Odlikuje ga pojednostavljeno dodavanje, menjanje i udaljavanje diskova iz aktivnog fajl sistema, kao i mogućnost povećanja i smanjenja particija u online režimu. Omogućuje kloniranje sistema i kreiranje snimaka diskova (snapshoots) metodom inkrementacije. Korisnici imaju mogućnost upotrebe transparentne kompresije putem algoritama zlib, ZSO i ZSTD, što smanjuje zauzeće prostora, a u pojedinim slučajevima vrlo pozitivno utiče na performanse diska. Sistem je optimizovan za rad sa većim brojem fajlova malih dimenzija. Veličina fajla je ograničena na 16 egzbibajta (264 bajtova), a u stvarnosti je ta vrednost za polovinu manja.

Iako BtrFS ima dosta dobrih karakteristika, ipak nije sve preterano ružičasto. U slučaju da imamo disk sa velikim brojem fajlova izloženih intenzivnom random zapisivanju, može doći do vrlo ozbiljne fragmentacije i izraženog zauzeća procesorskih i memorijskih resursa. Prilikom korišćenja u RAID konfiguracijama je zbog izvesnih nedorađenosti potreban priličan oprez, naročito sa profilima 5 i 6. Ako se izuzme ovaj podatak, BtrFS se u radu ponaša stabilno i u potpunosti je upotrebljiv. Testovi brzine su neujednačeni, ali je BtrFS najčešće sporiji od Ext4 u testovima zapisivanja i u pojedinim scenarijima brži od njega kada se radi o sekvencijalnom čitanju podataka.

Uprkos tome što se razvija već deset godina BtrFS još uvek pati od nekih dečijih bolesti, iako spada u uski krug fajl sistema direktno podržanih kernelom. Google je do pre par godina ozbiljno razmatrao BtrFS u ulozi osnovnog fajl sistema za Android, ali su odustali zbog nemogućnosti šifrovanja fajlova, što nije realizovano ni do današnjeg dana. Zanimljivo je da je BtrFS kompatibilan sa Ext4 i da je moguća konverzija u jednom ili drugom smeru. Računa se da će upravo on u budućnosti naslediti tehnološki prilično zastareli Ext4. Instaliranje podrške je krajnje jednostavno i izvodi se sa:

sudo apt install btrfs-tools.

ReiserFS / Reiser4

Rad na projektu ReiserFS je započet 1993. sa ciljem da se stvori savremeni fajl sistem koji bi bio orijentisan na Linux. Ime je dobio po američkom programeru Hansu Rajseru, koji je u to vreme radio za kompaniju Namesys. Zahvaljujući činjenici da je bio prvi fajl sistem sa žurnaliranjem koji je podržan od stane kernela (2.4.1), bio je dosta popularan, pa ga je i poznati SuSE Linux jedno vreme koristio u svojstvu primarnog fajl sistema. U vreme pojavljivanja (2001. godina), to je bio proizvod koji mnogo obećava i imao je mnoštvo kvalitetnih rešenja, ali je vremenom došlo do zastoja u njegovom razvoju, što je konkurenciji dozvolilo da ga prestigne. Najbolje rezultate pokazuje u radu sa malim fajlovima i više malih fajlova kombinuje u jedan veći, čime se smanjuje fragmentacija i štedi prostor, ali to dovodi i do ozbiljnog pada performansi. Po pitanju iskorišćenosti prostora na disku ReiserFS je na prvom mestu. Pohvalna je i mogućnost promene veličine particije bez potrebe za njenim prethodnim demontiranjem. Maksimalna veličina particije je 16 terabajta, fajla (teoretski) jedan egzobajt, dok je broj fajlova u okviru jedne particije ograničen na 232.

U toku rada na nasledniku ovog fajl sistema, 2006. godine se desio tragičan događaj u kojem je Rejser optužen za ubistvo svoje supruge i osuđen na kaznu doživotnog zatvora (kasnije ublaženo). Pošto je posle toga potpuno obustavio svoj profesionalni rad, njegova firma je preuzela brigu o unapređenoj verziji pod nazivom Reiser4. On sa sobom donosi napredne tehnologije, kao što je uvođenje takozvanog algoritma plešućeg drveta, koja uveliko poboljšava gustinu zapisa podataka, atomsku strukturu fajl sistema koja omogućava da fajl sistem obavi neku operaciju u potpunosti ili je uopšte ne obavi i mogućnost proširenja dodavanjem plaginova. Iz nedovoljno poznatih razloga, podrška za Reiser4 nije dodata u kernel do današnjeg dana, što je imalo mnogo uticaja na njen dalji razvoj. Alati za podršku ReiserFS se instaliraju preko:

sudo apt install reiserfsprogs.

JFS

Na samom početku devedesetih, tada moćni IBM rešava da napravi novi fajl sistem koji bi bio korišćen u okviru njihovih poslovnih mini-kompjutera baziranih na operativnom sistemu AIX (varijante UNIX-a). Dobio je naziv JFS (Journaled File System) i predstavlja jednu od najranijih implementacija ove tehnologije. Prva verzija za Linux se pojavljuje 2001. godine pod GNU/GPL klauzulom, dok je delom kernela (2.4.19) postao godinu dana kasnije. Reč je o 64-bitnom fajl sistemu, što znači da je lestvica ograničenja postavljena veoma visoko. Maksimalna dužina naziva iznosi 255 znakova, veličina particije do 32 petabajta, veličina fajla četiri petabajta, broj fajlova nije ograničen dok je standardna veličina bloka četiri kilobajta. Maksimalna veličina fajla žurnala iznosi 32 megabajta. Jedan od osnovnih ciljeva prilikom projektovanja ovog fajl sistema je bio da se omogući brzi oporavak nakon njegovog pada, što je i postignuto korišćenjem metapodataka iz žurnala. Da bi se postigla veća brzina rada, korišćeni su algoritmi bazirani na B+ stablu, pa se tako svi direktorijumi koji sadrže više od osam fajlova smeštaju u stablo, dok su oni sa manjim brojem fajlova deo i-node strukture. Zahvaljujući svojoj rasprostranjenosti na polju mainframe računara, JFS je imao dosta dobre pozicije na polju fajl sistema u poslovnoj primeni. Međutim, sam projekat se nije naročito isticao svojom aktivnošću i već duži niz godina nije unapređivan. Podrška za rad u Linuxu se dodaje instaliranjem libguestfs-jfs.

XFS

XFS osim naziva ima još dosta sličnosti sa JFS. Radi se o kreaciji nekada poznate kompanije Silicon Graphics namenjene za njihov operativni sistem IRIX. U pitanju je 64-bitni fajl sistem koji je od početka kreiran za diskove (tačnije, RAID masive) obima većeg od dva terabajta. Projekat postoji od 1994. godine, a od 2001. ima status otvorenog koda, dok je podršku u okviru Linux kernela dobio od verzije 2.4. S obzirom na orijentaciju ka masivima velikih kapaciteta, XFS se prilično retko koristi u desktop konfiguracijama zbog loših performansi prilikom brisanja velike količine malih fajlova, komplikovanog oporavka obrisanih datoteka i nemogućnosti smanjenja veličine diska. Situacija je dosta drugačija kada su u pitanju veliki sistemi, pa primera radi, NASA za svakodnevno prikupljanje desetina terabajta podataka koristi upravo XFS. Slično kao Ext4, XFS upotrebljava ekstente koji povećavaju performanse i smanjuju fragmentaciju podataka. U poslovima čitanja i kopiranja podataka XFS je po testovima redovno na prvom mesu ili u samom vrhu, dok je prilikom zapisivanja nešto sporiji. U pitanju je osnovni fajl sistem za neke od popularnih distribucija kao što su Oracle Linux, RHEL ili CentOS 7. Za upotrebu na Linuxu, potrebno je da instaliramo xfsprogs.

HFS/HFS+

HFS je skraćenica za Hierarchical File System i svoje korene vuče još iz 1985. godine kada je postao standardom za računare Macintosh. Njegovog naslednika pod nazivom HFS+ (ponegde se naziva Mac OS Extented) smo dobili 1998. godine sa pojavom operativnog sistema Mac OS 8.1. Poboljšanja u odnosu na prethodnika su se ogledala u uvođenju 32-bitnog adresnog prostora, povećanju dužine naziva do 255 UTF-8 karaktera, podrškom za velike fajlove i naprednije tehnike zapisivanja podataka. Od verzije Mac OS 10.3 (oktobar 2003.) uvedena je mogućnost korišćenja žurnala, verzija 10.6 (Snow Leopard) dodaje kompresiju, dok 10.7 (Lion) daje mogućnost šifrovanja logičkih particija. Particije su podeljene na blokove koji standardno imaju veličinu od 512 bajtova, a grupa blokova organizuje klaster. Ovaj sistem omogućuje upotrebu do 232 klastera po particiji. Maksimalna veličina diska i fajla iznosi 8000 petabajta dok je broj fajlova ograničen na 231 (2,13 milijardi).

HFS+ je u okviru Mac OS X platforme korišćen sve do izlaska verzije High Sierra (10.13) 2017. godine, kada je izvršen transfer na napredniji APFS. Ovaj fajl sistem se još uvek često koristi u sredinama gde su rašireni Apple Mac računari. Procedura priključivanja je vrlo jednostavna:

sudo apt install hfsplus hfsutils hfsprogs

sudo mount -t hfsplus /dev/sdb1 /mnt/diskhfsp

Kod korišćenja u okviru Linuxa se preporučuje isključivanje žurnaliranja da bi se izbegao eventualni gubitak podataka.

ZFS

U SK 11/2018 smo pisali o distribuciji True OS koja je bazirana na FreeBSD varijanti UNIX-a i pomenuli da ona koristi ZFS kao osnovni fajl sistem. Reč je o naprednom fajl sistemu kreiranom od strane kompanije Sun za potrebe njihovog operativnog sistema Solaris i u skladu sa svojom tadašnjom praksom su krajem 2005. godine odlučili da projekat objave kao opensource. Međutim, situacija se naglo menja 2010, kada Sun biva kupljen od Oracle i oni sve vraćaju u projekat zatvorenog koda. Posledica toga je da je pokrenut nezavisni projekat OpenZFS zasnovan na poslednjem javno dostupnom izvornom kodu.

U pitanju je 128-bitni fajl sistem, što znači da njegovi limiti neće ni približno biti dostignuti u narednim decenijama. Maksimalna veličina fajl sistema iznosi celih 256 zetabajta (1021), maksimalni broj fajlova 248, dok je maksimalna veličina pojedinačnog fajla ograničena na 264 bajtova (16 eksbibajtova). Broj fizičkih diskova je ograničen na 264, koliko iznosi i maksimalni broj particija (u ZFS žargonu „pulova” (eng. pools), koje se mogu prostirati na više fizičkih diskova), a toliki je i maksimalni broj fajl sistema u okviru jednog pula. ZFS osim što predstavlja fajl sistem, istovremeno obavlja i funkciju menadžera logičkih particija (LVM). Po podacima vezanim za Solaris 11.4, postoje čak 44 različite verzije ZFS pula (zpool) koje se razlikuju po mogućnostima i funkcionalnosti. Naziv fajla ili direktorijuma je ograničen na 256 karaktera, ali se to odnosi na svaki pojedinačni segment, a ne za celu putanju. Blokovi zapisanih podataka mogu imati promenjivu veličinu, a standardna vrednost iznosi 128 kilobajta.

ZFS sadrži veliki broj naprednih tehnologija čiji opis prevazilazi okvire ovog teksta i zahvaljujući njima taj fajl sistem se od strane brojnih stručnjaka smatra liderom u svojoj kategoriji. Veliki broj parametara omogućava visok stepen optimizacije po pitanju brzine i bezbednosti. Najpodesniji je za poslove čuvanja velikih količina informacija i uz to obezbeđuje visok stepen integriteta podataka. Potencijalni minus je da za efikasan rad zbog upotrebe mehanizma Copy on write računar mora imati dosta RAM-a (minimum je dva gigabajta, za udoban rad se savetuje od osam gigabajta pa na više), što danas i nije neki problem. ZFS poseduje i mogućnost optimizacije za rad sa skladištima baziranim na fleš memoriji.

Od Ubuntu verzije 15.10 postoji podrška za ZFS preko zvaničnog repozitorijuma i ona se instalira putem naredbe:

sudo apt install zfsutils-linux

Sa Debianom je situacija slična, ali postoje pojedine finese, pa na ovu temu nije loše pogledati link goo.gl/DW15sP.

Kod distribucija koje koriste yum, procedura je sledeća:

sudo yum install http://download.zfsonlinux.org/epel/zfs-release.el7_3.noarch.rpm

sudo yum install zfs

i nakon ovoga još treba da uključimo podršku u okviru kernela

sudo modprobe zfs

Distribucije bazirane na ArchLinux imaju znatno komplikovaniju proceduru, koja je objašnjena u ovom tekstu goo.gl/Dbpwwd.

Upravljanje sa ZFS particijama se izvodi preko komande zpool a primer kreiranja particije bi izgledao ovako:

sudo zpool create -f mojpool /dev/sdb

Parametar „mojpool” predstavlja naziv pula koji se posle može koristiti i za montiranje diska na sistem.

• • •

Korišćenje opisanih fajl sistema na računarima sa ulogom desktopa uglavnom neće doneti nikakva poboljšanja performansi, a zna se desiti i suprotno. Zato će u serverski orijentisanim sistemima koji barataju sa velikim obimima podataka najčešće pozitivno uticati na povećanju brzine rada i bezbednosti čuvanog sadržaja.

Igor S. RUŽIĆ

 
Fajl sistemi za Linux (3)
Šta mislite o ovom tekstu?
Rad sa zvukom
Friendly Arm NanoPi K1 Plus
Home / Novi brojArhiva • Opšte temeInternetTest driveTest runPD kutakCeDetekaWWW vodič • Svet igara
Svet kompjutera Copyright © 1984-2018. Politika a.d. • RedakcijaKontaktSaradnjaOglasiPretplata • Help • English
SKWeb 3.22
Opšte teme
Internet
Test Drive
Test Run
PD kutak
CeDeteka
WWW vodič
Svet igara



Naslovna stranaPrethodni brojeviOpšte informacijeKontaktOglašavanjePomoćInfo in English

Svet kompjutera