![]() | ![]() |
![]() |
| ![]() |
| |||||||||||||
Fajl sistemi za Linux (1)
1, 2, 3, 4 Istorija Linuxa započinje od nečega što je nosilo naziv Minix. Reč je o operativnom sistemu koji je pratio poznatu knjigu Endrjua Tanenbauma, a koju je Linus Torvalds obilato koristio prilikom započinjanja rada na Linux kernelu. On je jednostavno preuzeo kod koji je obavljao funkciju fajl sistema i uvrstio ga u okvir svog kernela. Pošto je knjiga Operating Systems: Design and Implementation prvenstveno imala obrazovni karakter, prateći fajl sistem je bio prilično rudimentaran i imao dosta ograničenja (maksimalna veličina fajla od 64 megabajta, imena do 14 znakova itd.). Posla oko prevazilaženja tih problema se latio Francuz Remi Kard i njegov trud aprila 1992. godine rezultira pojavom fajl sistema pod nazivom EXT (Extended File System). Iako je uspeo da reši prethodno navedene probleme (fajl sistem je mogao iznositi tada velikih dva gigabajta, a imena do 255 karaktera), EXT je u radu pokazivao prilično konzervativne rezultate, što je istog autora navelo da se pozabavi razvojem njegovog naslednika. Na njega nije trebalo čekati dugo i već u januaru 1993. se pojavljuje Ext2 (Second Extended File System, ili na srpskom: drugi prošireni fajl sistem), koji je ponudio rad sa fajlovima do dva terabajta, što je u kasnijim verzijama kernela poraslo do čitavih 32 terabajta. Prilikom njegove realizacije su u velikoj meri korišćena rešenja sa Unix platforme, odnosno, uzor je bio fajl sistem poznat pod nazivima UFS (Unix file system), FFS (Fast File System) ili Berkeley Fast File System. Reč je o izuzetno uspešnom fajl sistemu koji se i dan-danas dovoljno često koristi u praksi. Posebno često je u upotrebi sa skladištima baziranim na fleš memorijama iz proste činjenice što se kod njega ne vrši upis pratećih podataka koji negativno utiču na vek trajanja memorijskih medija.
Svaka particija diska može da ima veličinu do jednog eksabajta (260, 1024 petabajta ili približno 1018 bajtova), dok je maksimalna veličina fajla povećana do 16 terabajta (244, 1012). Dodavanjem dva dodatna bita u strukturu zaduženu za precizno označavanje vremenskih zapisa fajlova (timestamp) maksimalna vremenska granica koja je bila postavljena na 2038. godinu (znači, još manje od dve decenije), sada je pomaknuta na već pristojnu 2446. godinu. Inače, preciznost vremena zapisa podataka o fajlovima kod Ext4 iznosi samo jednu nanosekundu. Uvedena je i tehnologija takozvanog prostornog zapisa fajlova (extent), koja pozitivno utiče na povećanje brzine i smanjenje fragmentacije. Ovo se ostvaruje zapisivanjem novih podataka na kraj oblasti diska koja je unapred određena da bude neposredno uz oblast koja sadrži fajl. Omogućeno je i izvođenje defragmentacije bez potrebe za demontiranjem (umount) diskova, što se obavlja putem komande e4defrag. Ovoj priči o Ext particijama je moguće dodati nekoliko reči o takozvanim Swap particijama. U pitanju je specijalni tip particija koji nema nikakvu logičku strukturu i koriste se u situacijama kada na sistemu ponestane RAM-a pa kernel, da bi oslobodio radnu memoriju, prebacuje deo podataka na Swap particiju. Iz svega napisanog se vidi da je reč o evoluciji fajl sistema koji se pojavio pre više od četvrt veka i koji je najčešći gost u okviru Linux distribucija. Što se tiče izbora, on je prilično jasan. Kada se radi o savremenim sistemima, Ext4 pruža ubedljivo najviše i obesmišljava upotrebu prethodnika Ext3, pa i Ext2 jer ima bolje performanse prilikom čitanja podataka i neznatno je sporiji prilikom zapisivanja. U scenarijima kada moramo da brinemo o dugovečnosti fleš memorije, Ext2 je i dalje dobar izbor, mada je moguće koristiti i Ext4 sa isključenim žurnaliranjem. Malo anatomije Kao što se to lepo može videti iz prateće ilustracije, Ext fajl sistemi započinju sa Boot blokom koji se nalazi na samom početku fajl sistema, ima dužinu od jednog kilobajta i tu je iz istorijskih razloga pošto se odavno ne koristi. Glavne jedinice za smeštanje podataka se nazivaju blokovima, a oni su smešteni u okviru grupa koje na ilustraciji nose naziv Blok grupa. One su uvedene da bi se izbegla fragmentacija i ubrzao pristup podacima. Veličina blokova iznosi jedan, dva, četiri ili osam kilobajta i od toga zavise parametri maksimalnih veličina pojedinačnih fajlova i samog fajl sistema.
dumpe2fs -h /dev/sda1 Naravno, u slučaju da skladište nosi drugi naziv, potrebno ga je postaviti umesto sda1.
I malo prakse Linux je poznat po tome što ima dosta moćnih CLI naredbi, ali rad sa njima zna da bude prilično složen. Primer takve naredbe je fdisk (format disk) koja sadrži ceo interaktivni podsistem za rad sa diskovima i njihovim particijama. Postoji više naredbi za rad sa particijama i njih ćemo analizirati u sledećem nastavku priče o fajl sistemima. Ulazak u interaktivni režim komande fdisk postižemo zadavanjem parametra koji predstavlja naziv diska. Na primer: fdisk /dev/sda Nakon ovoga, potrebno je da kreiramo novu particiju zadajući parametar p, a zatim i da te izmene zapišemo i izađemo iz programa zadajući parametar w. Ostatak parametara možemo saznati kucajući n. Sledeće što je potrebno je da na stvorenoj particiji kreiramo fajl sistem. U slučaju da je u pitanju Ext2, procedura je sledeća: mke2fs /dev/sda1 Kada je u pitanju Ext3, procedura je vrlo slična: mke2fs –j /dev/sda1 Nije teško pogoditi da parametar -j sugeriše upotrebu žurnala (dnevnika). Ovo je moguće postići i sledećom naredbom: mkfs.ext3 /dev/sda1 Vrlo slična situacija je i u slučaju kada želimo koristiti Ext4: mke2fs -t ext4 /dev/sda1 ili mkfs.ext4 /dev/sda1 Parametar -t u gornjem slučaju podrazumeva navođenje dodatnog parametra koji označava koji fajl sistem želimo kreirati. Pozitivna stvar je da možemo menjati trenutni fajl sistem u neki drugi. U slučaju da želimo Ext2 pretvoriti u Ext3, prvo je potrebno da demontiramo željenu particiju. recimo: umount /dev/sda1 Da budemo precizniji, literatura navodi da se procedura može završiti i bez demontiranja particije, ali je u slučaju da imamo važne podatke rizik potrebno svesti na najmanju meru. Nakon toga provodimo proceduru kao nešto uviše: tune2fs -j /dev/sda2 i nakon toga ponovo montiramo disk unutar željenog direktorija, u našem slučaju je to /mnt: mount /dev/sda2 /mnt Apgrejd iz ext3 u Ext4 obavljamo slično. Prvo demontiramo particiju: umount /dev/sda1 Zatim preko parametra -O komande tune2fs aktiviramo stvari svojstvene za Ext4: tune2fs -O extents,uninit_bg,dir_index /dev/sda1 Opcija „extents” stavlja fajl sistemu do znanja da koristi ranije pominjani mehanizam umesto bitmapa za fajlove, „uninit_bg” skraćuje vreme provere fajlova, dok „dir_index” poboljšava performanse heširanjem takozvanih b-stabala. U sledeća dva koraka proveravamo ispravnost podataka i ponovo montiramo disk: e2fsck -pf /dev/sda1 mount /dev/sda1 /mnt U slučaju da želimo isključiti sistem dnevnika (journal) kod fajl sistema Ext3 i Ext4, radimo sledeće: umount /dev/sda1 tune2fs -O ^has_journal /dev/sda1 Parametar -O je namenjen (de)aktiviranju pojedinih svojstava fajl sistema. Znak „^” ispred svojstva „has_journal” znači da će žurnaliranje biti isključeno. Još smo zaboravili da pomenemo kako je moguće saznati koji fajl sistem je prisutan na drajvovima u okviru našeg sistema. Kao i u mnogim drugim situacijama, Postoji veliki broj načina da se dođe do ove informacije. Neki od njih su: df -T lsblk -f fsck -N /dev/sda1 sudo parted -l blkid /dev/sda1 mount | grep „^/dev” sudo file -sL /dev/sda tune2fs -l /dev/sda1 | grep features Naravno, neke od ovih naredbi pružaju i znatno više podataka od onoga što smo tražili, ali smo ih namerno naveli da bi oni koji tek ulaze u svet Linuxa videli koliko mogućnosti imamo na raspolaganju da saznamo željenu informaciju. I da stvar bude intrigantnija, taj spisak nije konačan. Igor S. RUŽIĆ |
| |||||||||||||||
![]() | |
![]() | ![]() |
Home / Novi broj | Arhiva • Opšte teme | Internet | Test drive | Test run | PD kutak | CeDeteka | WWW vodič • Svet igara Svet kompjutera Copyright © 1984-2018. Politika a.d. • Redakcija | Kontakt | Saradnja | Oglasi | Pretplata • Help • English | |
SKWeb 3.22 |