Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Naplózó állomány-rendszerek
Journaling File Systems (JFS) Kis Zsigmond Dániel 541
2
Állomány-rendszer, meta-adat
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 Eredmény á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 eltérések
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 Műveletek végrehajtása
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
Példák Linux OS/2 AIX Windows Macintosh operációs rendszerek IRIX
EXT3, JFS, ReiserFS, Reiser4, XFS OS/2 JFS AIX Windows NTFS Macintosh operációs rendszerek HFS Plus IRIX XFS Solaris UFS, VxFS HP-UX VxFS
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 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) igen JFS Fa + Binary Buddy tehnika nem 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 Struktúrája: 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-bejegyzés: Hátrányok:
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 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 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 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
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) Aggregátum (aggregate)
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 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 – 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érete a háttértárolón 512 byte
minden inodenak van egy egyedi 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:8 unsigned 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 á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 Jellemző Ext3 ReiserFS XFS JFS max blokk méret 4 Kb
max állomány-rendszer méret 16384 Gb 17592 Gb 18 Pb (1015) 32 Pb max állomány méret 2048 Gb 1 Eb (1018) 9000 Pb 4 Pb állomány-rendszer bővítése patch igen dinamikus tárfoglalás inode-oknak nem adat naplózás napló külső tárolón
30
32 bites architektúrán Jellemző Ext3 ReiserFS XFS JFS
alkönyvtár / könyvtár 32 KB 65 KB 4 GB max állomány-rendszer méret 2 TB 16 TB max állomány méret további információk: - lásd mellékelt állományokat - JFS weblap: - Naplózó állomány-rendszerek linuxon:
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.