Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Naplózó állomány-rendszerek Journaling File Systems (JFS) Kis Zsigmond Dániel 541.

Hasonló előadás


Az előadások a következő témára: "Naplózó állomány-rendszerek Journaling File Systems (JFS) Kis Zsigmond Dániel 541."— Előadás másolata:

1 Naplózó állomány-rendszerek Journaling File Systems (JFS) Kis Zsigmond Dániel 541

2 Állomány-rendszer, meta-adat Állomány-rendszer Állomány-rendszer –adatok tárolása háttértárolón –állományok, könyvtárak, indexek –megbízható, gyors Meta-adat Meta-adat –állomány-rendszert jellemző adatok –állományokat jellemző adatok –kezdőcím, blokkok száma –hely, méret, név, jogok

3 Állományba való írás új blokkok lefoglalása új blokkok lefoglalása –szabad blokkok listájának módosítása állomány-leíró módosítása (file descriptor) állomány-leíró módosítása (file descriptor) –új blokkok bejegyzése –új méret adatok írása a lemezre adatok írása a lemezre –az új adatok kiíródnak a háttértárolóra más adatok is módosulhatnak más adatok is módosulhatnak –könyvtár bejegyzések –indexek atomi műveletnek tűnik, de nem az atomi műveletnek tűnik, de nem az

4 Hibák Meta-adat meghibásodása Meta-adat meghibásodása –áramszünet, felhasználói hibák –adatok részleges kiírása –félbeszakított műveletek Eredmény Eredmény –inkonzisztencia –hibás indexek –hibás állomány-rendszer

5 Megoldások Állomány-rendszer javító program Állomány-rendszer javító program –sok időbe telik (pl. scandisk) –idő arányos a partíció méretével, állományok számával Naplózás (journaling, logging) Naplózás (journaling, logging) –konzisztenciát biztosít –nem küszöböli ki az adatvesztést „Soft update” „Soft update” –meta-adatok írása olyan sorrendben, hogy az állomány-rendszer mindig konzisztens maradjon (BSD)

6 Napló állomány, amelyben az állományrendszeren végrehajtott műveleteket tárolják állomány, amelyben az állományrendszeren végrehajtott műveleteket tárolják –meta-adatokra vonatkozó műveleteket, vagy –minden műveletet tranzakciók tranzakciók –a napló tranzakciók listájából áll –ABKR-hez hasonló kezelési mód hiba esetén hiba esetén –naplózott műveletek végrehajtása (redo) –tranzakciók visszapörgetése (undo)

7 Tranzakciók ABKR tranzakciói ABKR tranzakciói –hasonlóságok változtatások halmaza, melyeket atomi műveletnek tekintünk változtatások halmaza, melyeket atomi műveletnek tekintünk „minden vagy semmi” – vagy minden művelet végrehajtódik, vagy egyik sem „minden vagy semmi” – vagy minden művelet végrehajtódik, vagy egyik sem –eltérések állományokra (meta-adatra, felhasználói adat) vonatkozó változtatások állományokra (meta-adatra, felhasználói adat) vonatkozó változtatások

8 Naplózás Műveletek lejegyzése a naplóban Műveletek lejegyzése a naplóban –tranzakciók –minden tranzakció végén commit Műveletek végrehajtása Műveletek végrehajtása Újraindulás hiba után Újraindulás hiba után –minden művelet végrehajtódott az állomány-rendszer konzisztens és helyes az állomány-rendszer konzisztens és helyes –befejezetlen műveletek commit – végrehajtja, ha lehet commit – végrehajtja, ha lehet rollback – visszavonja a módosításokat rollback – visszavonja a módosításokat

9 Példák Linux Linux –EXT3, JFS, ReiserFS, Reiser4, XFS OS/2 OS/2 –JFS AIX AIX –JFS Windows Windows –NTFS Macintosh operációs rendszerek Macintosh operációs rendszerek –HFS Plus IRIX IRIX –XFS Solaris Solaris –UFS, VxFS HP-UX HP-UX –VxFS

10 Előnyök, újabb elvárások Modern állományrendszerek esetén Modern állományrendszerek esetén –gyors hibajavítás néhány másodperc néhány másodperc –új követelmények gyorsabb tárkiosztás gyorsabb tárkiosztás nagyon sok állomány egy könyvtárban nagyon sok állomány egy könyvtárban nagy méretű állományok nagy méretű állományok gyorsasság, nagy teljesítmény, bíztonság gyorsasság, nagy teljesítmény, bíztonság –módszerek B+ fák, extent kiosztás B+ fák, extent kiosztás

11 Megoldások technika / állomány rendszer szabad blokk kezelés szabad hely extentek- kel B-fa a könyvtár- bejegyzé- seknek B-fa állomány blokkjaira extent blokkok címzésére adatok az inode-ban szimboli- kus link inode-ban könyvtár- bejegyzés inode-ban XFS B+fa (eltolás és méret szerint) igenigenigenigenigenigenigen JFS Fa + Binary Buddy tehnika nemigenigenigennemigen max 8 ReiserFS B*fára épűl bittérkép alapú nem, de tervezik A fő fa alfájaként A fő fában 4. verzióban B*fa keretén belül Ext3FS Mivel Ext2-re épül a fenti technikákat nem alkalmazzák. A lényeg az ext2-vel való kompatibilitás és a gyors helyreállítása az állomány-rendszernek

12 Ext2 (Second Extended File System) nem naplózó állomány rendszer nem naplózó állomány rendszer Struktúrája: Struktúrája: Blokk csoport: Blokk csoport: Boot sector Blokk csoport 1 Blokk csoport2... Blokk csoport n Szuper blokk Állomány- rendszer deszkriptor Blokk térkép Inode térkép Inode tábla Adat blokkok

13 Ext2 Könyvtár: Könyvtár: –könyvtárbejegyzések listája –különböző méretű bejegyzések Könyvtár-bejegyzés: Könyvtár-bejegyzés: Hátrányok: Hátrányok: –hiba esetén teljes állomány-rendszert ellenőrizni kell –nem támogatja a nagyon nagy méretű állományokat és állomány rendszereket inode száma Bejegyzés hossza Név hossza állománynév

14 Ext3 (Third Extended File System) Ext2 bővítése naplóval Ext2 bővítése naplóval meta-adatokat és felhasználói adatokat is naplóznak meta-adatokat és felhasználói adatokat is naplóznak szerkezet és adatszerkezetek megmaradnak (Ext2) szerkezet és adatszerkezetek megmaradnak (Ext2) előnye előnye –gyorsan helyreáll hiba esetén megmaradtak a régi hátrányok megmaradtak a régi hátrányok –merev belső szerkezet, szigorú korlátok –nem támogatja a nagyon nagy állományokat –max alkönyvtár – állomány (soros láncolás miatt)

15 ReiserFS B* fára épül – a B+ fa bővített változata B* fára épül – a B+ fa bővített változata minden objektum egy fában minden objektum egy fában különleges indexelési technikák szükségesek különleges indexelési technikák szükségesek nem használ extent-eket nem használ extent-eket jól kezeli a kis méretű állományokat <1k jól kezeli a kis méretű állományokat <1k jól kezeli a nagy könyvtárakat (több százezer állomány) jól kezeli a nagy könyvtárakat (több százezer állomány)

16 JFS Szerkezete Szerkezete –logikai kötetek, partíciók (logical volumes) –aggregátumok és állományhalmazok (aggregates and filesets) –állományok, könyvtárak, inodeok, címzési struktúrák –napló (log)

17 JFS - Szerkezet Partíció (partition) Partíció (partition) –rögzített blokk méret: 512, 1024, 2048, 4096 –blokkok száma –absztrakt cím-zóna: 0 - blokkok száma-1 Aggregátum (aggregate) Aggregátum (aggregate) –partíció kiosztható részét írja le –partíciónként egy aggregátum

18 JFS - Aggregátum szerkezete 32KB fenntartott terület 32KB fenntartott terület rögzített aggregátum blokk méret (>= partíció blokk méret) rögzített aggregátum blokk méret (>= partíció blokk méret) elsődleges és másodlagos szuperblokkok elsődleges és másodlagos szuperblokkok inode tábla, másodlagos inode tábla inode tábla, másodlagos inode tábla inode térkép, másodlagos inode térkép inode térkép, másodlagos inode térkép blokk kiosztási térkép (aggregátum blokkok) blokk kiosztási térkép (aggregátum blokkok) munkaterület az fsck-nak munkaterület az fsck-nak in-line napló – aggregátum meta-adat változásainak naplózására in-line napló – aggregátum meta-adat változásainak naplózására

19 JFS - Allokációs csoportok (Allocation group) az aggregátumot nagyobb darabokra osztják az aggregátumot nagyobb darabokra osztják egymással kapcsolatban levő adatok csoportosítása (lokalitás) egymással kapcsolatban levő adatok csoportosítása (lokalitás) kapcsolatban nem álló adatok szétszórása kapcsolatban nem álló adatok szétszórása sorszám sorszám –aggregátumon belül –0-tól méret méret –minél több folytonos tárkiosztás –min aggregátum blokk (mindig 2 hatványa) –szuperblokkban tárolják legtöbb 128 csoport legtöbb 128 csoport –műveletek gyorsak ha módosításokat kell végrehajtani

20 JFS - Állományhalmazok (fileset) állományok és könyvtárak halmaza, melyek egy függetlenül beilleszthető (mount) részfát alkotnak állományok és könyvtárak halmaza, melyek egy függetlenül beilleszthető (mount) részfát alkotnak szerkezete szerkezete –inode tábla – az állományhalmazt leíró adatszerkezetekkel –inode kiosztási térkép szuper inode szuper inode –aggregátum inode táblájában –az állományhalmaz és az állományhalmaz kiosztási térképének leírását tartalmazza

21 JFS - Extent egymást követő aggregátum blokkok egymást követő aggregátum blokkok egységként osztják ki egységként osztják ki blokkok egy aggregátumba tartoznak blokkok egy aggregátumba tartoznak több allokációs csoportot is lefedhet több allokációs csoportot is lefedhet címe címe –első blokk címe – aggregátum blokkok (0-tól indexelve) mérete mérete – 1 – aggregátum blokk –maximum (nem befolyásolja az állomány méretét): 512 byte ag. blokkal: 8GB 512 byte ag. blokkal: 8GB 4096 byte ag. blokkal: 64GB 4096 byte ag. blokkal: 64GB

22 JFS - Inode mérete a háttértárolón 512 byte mérete a háttértárolón 512 byte minden inodenak van egy egyedi száma minden inodenak van egy egyedi száma négy adathalmazt tartalmaz négy adathalmazt tartalmaz –objektum adatainak POSIX leírása –O.R. függő adatok, B+ fa gyökere, VFS támogatásához szükséges adatok –B+ fa extent kiosztásai vagy egyenesen a felhasználói adatokat (pl. kis méretű állományok esetén) –más jellemzők, további extent kiosztási információ vagy további felhasználói adatok JFS dinamikusan osztja ki az inode-okat JFS dinamikusan osztja ki az inode-okat –inode extenteket oszt ki (általában 32 inode) –nincs összefüggés az inode száma és a fizikai címe között

23 JFS - B+ fák minden JFS objektumot egy inode ír le minden JFS objektumot egy inode ír le a kiosztott extent-eket B+ fában tárolják a kiosztott extent-eket B+ fában tárolják –gyors keresés módosítások esetén –optimalizálva van lineáris bejárásra is elemek szerkezete elemek szerkezete –unsigned flag:8unsigned rsvrd:16 –unsigned off1:8 uint32 off2 (kezdőblokk eltolása) –unsigned len:24 –unsigned addr1:8 uint32 addr2 (extent címe) JFS meta-adatai is állományokban tárolódnak (kivéve szuperblokk) – könnyen kiterjeszthető szerkezet JFS meta-adatai is állományokban tárolódnak (kivéve szuperblokk) – könnyen kiterjeszthető szerkezet

24 JFS - További adatszerkezetek blokk kiosztási térkép (block allocation map) blokk kiosztási térkép (block allocation map) inode kiosztási térkép (inode allocation map) inode kiosztási térkép (inode allocation map) inode kiosztási csoport (inode allocation group) inode kiosztási csoport (inode allocation group) kiosztási csoport szabad inode listája (allocation group free inode list) kiosztási csoport szabad inode listája (allocation group free inode list) kiosztási csoport szabad extentlistája (allocation group free extent list) kiosztási csoport szabad extentlistája (allocation group free extent list) inode kiosztási csoport szabad inode listája (inode allocation group free list) inode kiosztási csoport szabad inode listája (inode allocation group free list) hozzáférés ellenőrzés lista (access control list) hozzáférés ellenőrzés lista (access control list)

25 JFS – Naplózás csak meta-adatokat naplóznak csak meta-adatokat naplóznak naplózó állomány-rendszernek tervezték naplózó állomány-rendszernek tervezték naplózás naplózás –naplóállomány –tranzakció kezelő (transaction manager) logredo logredo –segédprogram –induláskor a naplót visszafelé olvasva javítja a hibákat

26 JFS - Napló felépítése minden művelet tranzakcióba kerül minden művelet tranzakcióba kerül mielőtt a műveleteket végrehajtaná, a tranzakciót beírja a naplóba mielőtt a műveleteket végrehajtaná, a tranzakciót beírja a naplóba a műveleteket csak a napló írásának befejezése után kezdi el a műveleteket csak a napló írásának befejezése után kezdi el siker esetén commit siker esetén commit pufferelést használ pufferelést használ –szinkronizálási műveletek –szinkronizáláskor kiírja a puffert a háttértárolóra

27 JFS - Állományrendszer javítása napló eseményeinek újrajátszása napló eseményeinek újrajátszása –a bejegyzett műveletek végrehajtása –utolsó szinkronizálásig megy vissza –befejezett tranzakciókat újra végrehajtja (commit) –befejezetlen tranzakciókat visszapörgeti helyreállítás sikertelen helyreállítás sikertelen –teljes ellenőrzés –használt virtuális memória az állományok, könyvtárak számával arányos, nem a méretével – állomány esetén kb. 32MB –blokkok kiosztásának ellenőrzésére nem virtuális memóriát, hanem az állományrendszeren belül e célra fenntartott területeket használja

28 Naplózott műveletek állomány létrehozás állomány létrehozás link link könyvtár létrehozás könyvtár létrehozás állomány törlése állomány törlése átnevezés átnevezés könyvtár törlése könyvtár törlése szimbolikus link szimbolikus link állomány lerövidítése állomány lerövidítése

29 Összehasonlítás JellemzőExt3ReiserFSXFSJFS max blokk méret 4 Kb 4Kb max állomány-rendszer méret Gb Gb 18 Pb (10 15 ) 32 Pb max állomány méret 2048 Gb 1 Eb (10 18 ) 9000 Pb 4 Pb állomány-rendszer bővítése patchigenigenigen dinamikus tárfoglalás inode-oknak nemigenigenigen adat naplózás igennemnemnem napló külső tárolón igenigenigenigen

30 32 bites architektúrán JellemzőExt3ReiserFSXFSJFS alkönyvtár / könyvtár 32 KB 65 KB 4 GB 65 KB max állomány-rendszer méret 2 TB 16 TB max állomány méret 16 TB további információk: - lásd mellékelt állományokat - JFS weblap: - Naplózó állomány-rendszerek linuxon:


Letölteni ppt "Naplózó állomány-rendszerek Journaling File Systems (JFS) Kis Zsigmond Dániel 541."

Hasonló előadás


Google Hirdetések