Operációs rendszerek UNIX/Linux fájlrendszerek
Tartalom Linux fájlrendszerek UNIX/Linux fájlrendszerek Szimbolikus linkek Fájlrendszerek csatolása Virtuális fájlrendszer Szuperblokk Inode Objektumok 2
UNIX fájlrendszerek Hierarchikus Fa struktúra Fájl katalógusok (mappák) belső ágak Fájlok levelek A fa szélessége és mélysége nem korlátozott Konzisztens A fájlszisztem objektumai fájlként reprezentáltak egységes fájl interfész Objektum típusától független alkalmazás Egszerű Kevés, de rugalmas fájlművelet áll rendelkezésre Egszerű fájl struktúra 3
UNIX fájlok Byte string A tartalomnak nincsenek előre definiált tulajdonságai Egy logikai médiumra korlátozott Hozzáférési jogosultságok védik: R (read) W (write) X (execute) 3 jogosultsági osztály: Fájl tulajdonosa Csoport Mindenki más 4
Inode (Index node) Minden fájlt egy inode reprezentál Tulajdonos (UID, GID) Hozzáférési jogosultságok Utolsó módosítás, hozzáférés időpontja Méret Típus (Fájl, könyvtár, eszköz, pipe, ) Fájl tartalmára mutató pointer 5
Könyvtárak Normál fájlok, de az Inode-típusa könyvtár Hossz Név (<255 karakter) Inode szám Több könyvtár létezhet ugyanazzal az inode számmal (hard link) Elérési utak (/home/user/valami.txt) az operációs rendszer rendeli hozzá az inode számokat Ha '/'-rel kezdődik az elérési út, akkor az abszolút, a root könyvtárból indul ki Egyébként az elérési út relatív az aktuális könyvtárhoz képest 6
Szimbolikus linkek Referencia fájlra vagy könyvtárra Több elérési út Pl: ln /usr/src/uts/sys /usr/include/sys ln /usr/include/realfile.h /usr/src/uts/sys/tesbile.h 3 elérési út ugyanahhoz a fájlhoz 7
Hard linkek A hard link egy plusz fájlnév Minden hard link ugyanarra az inode-ra mutat Minden új hard link inkrementálja a link számlálót az inode-on belül Amíg a link számláló nem 0, a fájl túléli a törlést és csak a link számláló dekrementálódik A hard linkek csak egy logikai fájlrendszer fájlai között hozhatóak létre Ezzel szemben a szimbolikus linkek egy elérési utat tartalmaznak Minden hozzáféréskor feloldja az OS Ha a linkelt tartalom törlésre kerül, a link megmarad (broken symlink) Szimbolikus linkek létrehozhazók a linkelt tartalom megléte nélkül 8
Logikai és fizikai fájlrendszer A logikai fájlrendszer több fizikai fájlrendszerből áll Egy fájlrendszer bármely elérési út alá felcsatolható a 'mount' paranccsal A felcsatolt fájlrendszereket az OS kezeli Mount table Elérési utakat rendel felcsatolási pontokhoz Felcsatolt fájlrendszerek root inode-ja kerül azonosításra 9
Felcsatolt fájlrendszerek 10
Virtuális fájlrendszer Virtual File System (VFS) Általános interfész a fájlrendszer implementáció és a fájlrendszert használó programok között Az alkalmazások ugyanazon rendszerhívások által különböző fizikai eszközökön lévő különböző fájlrendszereket is elérhetnek. 11
Virtuális fájlrendszer 12
Virtuális fájlrendszer - adatstruktúrák A VFS objektum orientált 4 alap objektum: Szuperblokk: A fájlrendszer egyes tulajdonságait tárolja Inode: Fájl egyes tulajdonságait tárolja Dentry: Fájlok és inode számok összekapcsolása Fájl: 'logikailag összetartozó adatok egy blokkja' A VFS a könyvtárakat fájlként kezeli Minden objektumhoz bizonyos műveletek tartoznak 13
Az ext fájlrendszer Az eredeti Linux fájlrendszer Extended filesystem Alap UNIX fájlrendszer műveletek Virtuális könyvtárak a fizikai eszközök kezelésére Az adat fix hosszúságú blokkokban kerül tárolásra Max. 2 GB méretű fájlok! 14
Az ext2 fájlrendszer Inode tábla kiegészítése: Létrehozás, módosítás, utolsó hozzáférés időpontja Max. fájl méret: 2TB (később 32 TB) Töredezettség megelőzése Adat blokk allokáció Minden fájlművelet után inode tábla frissítés! Komoly veszélyforrás Ha a folyamat megszakad, a fájlrendszer és az inode tábla nem lesz többé szinkronban ami nincs az inode táblában, arról nem tud a rendszer Ez egy megoldandó probléma 15
Naplózó fájlrendszerek Az adat fizikai kiírása és az inode tábla frissítése helyett az adat először egy ideiglenes fájlba kerül (napló) Ha az adat kiírása sikeres volt, kitörlődik az adatra vonatkozó naplóbejegyzés ha a kiírási folyamat megszakad, a napló alapján a fájlrendszer újra végre tudja hajtani a módosításokat Módszerek: Data mode: az inode és a fájl is naplózott. Nagyfokú biztonságot, de gyenge teljesítményt nyújt. Ordered mode: csak az inode kerül naplózásra, de csak akkor kerül ki a naplóból, ha az adat sikeresen kiírásra került. Kompromisszumos megoldás. Writeback mode: csak az inode kerül naplózásra, az adat kiírása nem ellenőrzött. Az adatvesztés esélye nagyobb, de még mindig jobb, mint a nem naplózó fájlrendszerek esetén 16
Az ext3 fájlrendszer Az ext2-ből ismert inode tábla struktúra Minden eszközön van egy napló, melyben a ordered mode naplózás az alapértelmezett ez arancssorból módosítható Hiányosságok: Nincs lehetőség véletlenül törölt fájlok helyreállítására Nincs beépített tömörítési eljárás Nem támogatja a fájlrendszer szintű titkosítást 17
Az ext4 fájlrendszer 2008, azóta a legtöbb GNU/Linux renszeren az alapértelmezett fájlrendszer Tömörítés, titkosítás extent: Tároló hely blokkokba szervezése Az inode táblába csak a kezdő block helye kerül eltárolásra Adatok folyamatossága töredezettség csökkentése, megszűntetése block preallocation: Hely lefoglalása egy növekvő fájl számára 18
Az Reiser fájlrendszer Az első naplózó fájlrendszer Linux-ra (2001) Csak writeback mode gyors Fájlrendszer online átméretezése tailpacking: Kisebb fájlok tartalma nem teli blokkok Fregmentálja a fájlrendszert De előnyei is vannak, pl.: egy blokk beolvasásával több fájl olvasható be Kis fájlok esetén a leghatékonyabb Reiser4, 2004 óta fejlesztik 19
További naplózó fájlrendszerek Journaled Filesystem (JFS) Az legrégibb naplózó fájlrendszer (1990) IBM AIX (UNIX) Ordered mode naplózás Extent-alapú fájl allokáció: Minden fájl egy blokk-csoportot kap A legkevesebb töredezettséggel jár XFS fájlrendszer Silicon Graphics Incorporated (SGI) IRIX (UNIX) (1994) Writeback mode naplózás Online átméretezés (csak növelni lehet) Red Hat Enterprise Linux alapértelmezett fájlrendszere 20
Copy-on-write (COW) fájlrendszerek A naplózás alternatívája snapshot-ok: Az új / a módosított adat új helyre kerül kiírásra A 'régi' adat nem kerül felülírásra ZFS fájlrendszer: 2005, Sun Microsystems OpenSolaris Stabil, a naplózó rendszerek jó vetélytársa DE: nem GPL liszenc nem lehet alapértelmezett fájlrendszer Btrfs (B-tree filesystem) 2007, Oracle Dinamikusan átméretezhető, stabil, megbízható Az opensuse Linux disztribúció alapértelmezett fájlrendszere 21