1 / 30

Naplózó állomány-rendszerek

Naplózó állomány-rendszerek. Journaling File Systems (JFS) Kis Zsigmond Dániel 541. Állomány-rendszer, meta-adat. Állomány-rendszer adatok tárolása háttértárolón állományok, könyvtárak, indexek megbízható, gyors Meta-adat állomány-rendszert jellemző adatok állományokat jellemző adatok

duke
Download Presentation

Naplózó állomány-rendszerek

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Állomány-rendszer, meta-adat • Állomány-rendszer • adatok tárolása háttértárolón • állományok, könyvtárak, indexek • megbízható, gyors • 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 • szabad blokkok listájának módosítása • állomány-leíró módosítása (file descriptor) • új blokkok bejegyzése • új méret • adatok írása a lemezre • az új adatok kiíródnak a háttértárolóra • más adatok is módosulhatnak • könyvtár bejegyzések • indexek • atomi műveletnek tűnik, de nem az

  4. Hibák • 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 • inkonzisztencia • hibás indexek • hibás állomány-rendszer

  5. Megoldások • Á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) • konzisztenciát biztosít • nem küszöböli ki az adatvesztést • „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 • meta-adatokra vonatkozó műveleteket, vagy • minden műveletet • tranzakciók • a napló tranzakciók listájából áll • ABKR-hez hasonló kezelési mód • hiba esetén • naplózott műveletek végrehajtása (redo) • tranzakciók visszapörgetése (undo)

  7. Tranzakciók • ABKR tranzakciói • hasonlóságok • változtatások halmaza, melyeket atomi műveletnek tekintünk • „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

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

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

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

  11. Megoldások

  12. Ext2 (Second Extended File System) • nem naplózó állomány rendszer • Struktúrája: • Blokk csoport:

  13. Ext2 • Könyvtár: • könyvtárbejegyzések listája • különböző méretű bejegyzések • Könyvtár-bejegyzés: • 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

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

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

  16. JFS • 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) • 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) • partíció kiosztható részét írja le • partíciónként egy aggregátum

  18. JFS - Aggregátum szerkezete • 32KB fenntartott terület • rögzített aggregátum blokk méret (>= partíció blokk méret) • elsődleges és másodlagos szuperblokkok • inode tábla, másodlagos inode tábla • inode térkép, másodlagos inode térkép • blokk kiosztási térkép (aggregátum blokkok) • munkaterület az fsck-nak • 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 • egymással kapcsolatban levő adatok csoportosítása (lokalitás) • kapcsolatban nem álló adatok szétszórása • sorszám • aggregátumon belül • 0-tól • méret • minél több folytonos tárkiosztás • min. 8192 aggregátum blokk (mindig 2 hatványa) • szuperblokkban tárolják • 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 • szerkezete • inode tábla – az állományhalmazt leíró adatszerkezetekkel • inode kiosztási térkép • 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 • egységként osztják ki • blokkok egy aggregátumba tartoznak • több allokációs csoportot is lefedhet • címe • első blokk címe – aggregátum blokkok (0-tól indexelve) • mérete • 1 – 224-1 aggregátum blokk • maximum (nem befolyásolja az állomány méretét): • 512 byte ag. blokkal: 8GB • 4096 byte ag. blokkal: 64GB

  22. JFS - Inode • méretea háttértárolón 512 byte • minden inodenak van egyegyedi száma • 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 • 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 • 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 • 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

  24. JFS - További adatszerkezetek • blokk kiosztási térkép (block allocation map) • inode kiosztási térkép (inode allocation map) • inode kiosztási csoport (inode allocation group) • kiosztási csoport szabad inode listája (allocation group free inode 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) • hozzáférés ellenőrzés lista (access control list)

  25. JFS – Naplózás • csak meta-adatokat naplóznak • naplózó állomány-rendszernek tervezték • naplózás • naplóállomány • tranzakció kezelő (transaction manager) • 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 • 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 • siker esetén commit • 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 • 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 • 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 • 1.000.000 á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 • link • könyvtár létrehozás • állomány törlése • átnevezés • könyvtár törlése • szimbolikus link • állomány lerövidítése

  29. Összehasonlítás

  30. 32 bites architektúrán további információk: - lásd mellékelt állományokat - JFS weblap: http://oss.software.ibm.com/jfs - Naplózó állomány-rendszerek linuxon: http://www.byte.com/documents/s=365/byt20000524s0001/

More Related