naplózó állomány-rendszerek

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

Upload: duke

Post on 02-Feb-2016

35 views

Category:

Documents


1 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Naplózó állomány-rendszerek

Naplózó állomány-Naplózó állomány-rendszerekrendszerek

Journaling File SystemsJournaling File Systems (JFS) (JFS)

Kis Zsigmond Dániel 541Kis Zsigmond Dániel 541

Page 2: Naplózó állomány-rendszerek

Állomány-rendszer, meta-Állomány-rendszer, meta-adatadat• Állomány-rendszerÁllomány-rendszer

– adatok tárolása háttértárolónadatok tárolása háttértárolón– állományok, könyvtárak, indexekállományok, könyvtárak, indexek– megbízható, gyorsmegbízható, gyors

• Meta-adatMeta-adat– állomány-rendszert jellemző adatokállomány-rendszert jellemző adatok– állományokat jellemző adatokállományokat jellemző adatok– kezdőcím, blokkok számakezdőcím, blokkok száma– hely, méret, névhely, méret, név, , jogokjogok

Page 3: Naplózó állomány-rendszerek

Állományba való írásÁllományba való írás

• új blokkok lefoglalásaúj blokkok lefoglalása– szabad blokkok listájának módosításaszabad blokkok listájának módosítása

• állomány-leíró módosítása állomány-leíró módosítása ((file descriptorfile descriptor))– új blokkok bejegyzéseúj blokkok bejegyzése– új méretúj méret

• adatok írása a lemezreadatok írása a lemezre– az új adatok kiíródnak a háttértárolóraaz új adatok kiíródnak a háttértárolóra

• más adatok is módosulhatnakmás adatok is módosulhatnak – könyvtár bejegyzéskönyvtár bejegyzésekek– indexekindexek

• atomi műveletnek tűnik, de nem azatomi műveletnek tűnik, de nem az

Page 4: Naplózó állomány-rendszerek

HibákHibák

• Meta-adat meghibásodásaMeta-adat meghibásodása– áramszünet, felhasználói hibákáramszünet, felhasználói hibák– adatok részleges kiírásaadatok részleges kiírása– félbeszakított műveletekfélbeszakított műveletek

• EredményEredmény– inkonzisztenciainkonzisztencia– hibás indexekhibás indexek– hibás állomány-rendszerhibás állomány-rendszer

Page 5: Naplózó állomány-rendszerek

MegoldásokMegoldások

• Állomány-rendszer javító program Állomány-rendszer javító program – sok időbe telik (pl. scandisk)sok időbe telik (pl. scandisk)– idő arányos a partíció méretével, állományok idő arányos a partíció méretével, állományok

számávalszámával• Naplózás (Naplózás (journaling, loggingjournaling, logging) )

– konzisztenciát biztosítkonzisztenciát biztosít– nem küszöböli ki az adatvesztéstnem küszöböli ki az adatvesztést

• „„SSoft updateoft update””– meta-adatok írása olyan sorrendben, hogy az meta-adatok írása olyan sorrendben, hogy az

állomány-rendszer mindig konzisztens állomány-rendszer mindig konzisztens maradjon (BSD)maradjon (BSD)

Page 6: Naplózó állomány-rendszerek

NaplóNapló

• állomány, amelyben aállomány, amelyben az z állományrendszeren végrehajtott állományrendszeren végrehajtott műveleteket tároljákműveleteket tárolják– meta-adatokra vonatkozó műveleteket, vagymeta-adatokra vonatkozó műveleteket, vagy– minden műveletetminden műveletet

• tranzakcióktranzakciók– a napló tranzakciók listájából álla napló tranzakciók listájából áll– ABKR-hez hasonló kezelési módABKR-hez hasonló kezelési mód

• hiba eseténhiba esetén– naplózott műveletek végrehajtása (redo)naplózott műveletek végrehajtása (redo)– tranzakciók visszapörgetése (undo)tranzakciók visszapörgetése (undo)

Page 7: Naplózó állomány-rendszerek

TranzakciókTranzakciók

• ABKR tranzakcióiABKR tranzakciói– hasonlóságok hasonlóságok

•változtatások halmaza, melyeket atomi változtatások halmaza, melyeket atomi műveletnek tekintünkműveletnek tekintünk

•„„minden vagy semmi” – vagy minden minden vagy semmi” – vagy minden művelet végrehajtódik, vagy egyik semművelet végrehajtódik, vagy egyik sem

– eltérésekeltérések•állományokra (meta-adatra, felhasználói állományokra (meta-adatra, felhasználói

adat) vonatkozó változtatásokadat) vonatkozó változtatások

Page 8: Naplózó állomány-rendszerek

NaplózásNaplózás

• Műveletek lejegyzése a naplóbanMűveletek lejegyzése a naplóban– tranzakcióktranzakciók– minden tranzakció végén commitminden tranzakció végén commit

• Műveletek végrehajtásaMűveletek végrehajtása

• Újraindulás hiba utánÚjraindulás hiba után– minden művelet végrehajtódottminden művelet végrehajtódott

• az állomány-rendszer konzisztens és helyes az állomány-rendszer konzisztens és helyes

– befejezetlen műveletekbefejezetlen műveletek• commitcommit –– végrehajtja, ha lehetvégrehajtja, ha lehet

• rollbackrollback – visszavonja a módosításokat– visszavonja a módosításokat

Page 9: Naplózó állomány-rendszerek

PéldákPéldák

• LinuxLinux– EXT3EXT3, , JFSJFS, , ReiserFSReiserFS, ,

Reiser4Reiser4, , XFS XFS

• OS/2OS/2– JFSJFS

• AIXAIX– JFSJFS

• WindowsWindows– NTFSNTFS

• Macintosh Macintosh operációs operációs rendszerekrendszerek– HFS PlusHFS Plus

• IRIXIRIX– XFSXFS

• SolarisSolaris– UFS, VxFSUFS, VxFS

• HP-UXHP-UX– VxFSVxFS

Page 10: Naplózó állomány-rendszerek

Előnyök, újabb elvárásokElőnyök, újabb elvárások

• Modern állományrendszerek eseténModern állományrendszerek esetén– gyors hibajavításgyors hibajavítás

•néhány másodpercnéhány másodperc

– új követelményekúj követelmények•gyorsabb tárkiosztásgyorsabb tárkiosztás•nagyon sok állomány egy könyvtárbannagyon sok állomány egy könyvtárban•nagy méretű állományoknagy méretű állományok•gyorsasság, nagy teljesítmény, bíztonsággyorsasság, nagy teljesítmény, bíztonság

– módszerekmódszerek•B+ fák, extent kiosztásB+ fák, extent kiosztás

Page 11: Naplózó állomány-rendszerek

MegoldásokMegoldások

technika technika //

állomány állomány rendszerrendszer

szabad szabad blokk blokk

kezeléskezelés

szabad szabad hely hely

extentekextentek-kel-kel

B-fa a B-fa a könyvtárkönyvtár

--bejegyzébejegyzé--seknekseknek

B-fa B-fa állomány állomány blokkjairblokkjair

aa

extent extent blokkok blokkok címzésércímzésér

ee

adatok adatok az inode-az inode-

banban

szimboli-szimboli-kus link kus link inode-inode-

banban

könyvtárkönyvtár--

bejegyzébejegyzés inode-s inode-

banban

XFSXFS B+fa B+fa (eltolás (eltolás

és méret és méret szerint)szerint)

igenigen igenigen igenigen igenigen igenigen igenigen igenigen

JFSJFS Fa + Fa + Binary Binary Buddy Buddy

tehnikatehnika

nemnem igenigen igenigen igenigen nemnem igenigen max 8max 8

ReiserFSReiserFS

B*fára B*fára épűlépűl

bittérkép bittérkép alapúalapú

nem, de nem, de terveziktervezik

A fő fa A fő fa alfájakénalfájakén

tt

A fő A fő fábanfában

4. 4. verzióbaverzióba

nn

B*fa B*fa keretén keretén

belülbelül

B*fa B*fa keretén keretén

belülbelül

B*fa B*fa keretén keretén

belülbelül

Ext3FSExt3FS Mivel Ext2-re épül a fenti technikákat nem alkalmazzák. A lényeg az ext2-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-rendszernekvel való kompatibilitás és a gyors helyreállítása az állomány-rendszernek

Page 12: Naplózó állomány-rendszerek

Ext2 (Ext2 (Second Extended File Second Extended File SystemSystem))

• nem naplózó állomány rendszernem naplózó állomány rendszer

• Struktúrája:Struktúrája:

• Blokk csoport:Blokk csoport:

Boot sectorBoot sector Blokk Blokk csoport 1csoport 1

Blokk Blokk csoport2csoport2

...... Blokk Blokk csoport ncsoport n

Szuper Szuper blokkblokk

Állomány- Állomány- rendszer rendszer deszkriptodeszkriptorr

Blokk Blokk térképtérkép

Inode Inode térképtérkép

Inode Inode táblatábla

Adat Adat blokkokblokkok

Page 13: Naplózó állomány-rendszerek

Ext2Ext2

• Könyvtár:Könyvtár:– könyvtárbejegyzések listájakönyvtárbejegyzések listája– különböző méretű bejegyzésekkü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 hiba esetén teljes állomány-rendszert ellenőrizni

kellkell– nem támogatja a nagyon nagy méretű nem támogatja a nagyon nagy méretű

állományokat és állomány rendszereketállományokat és állomány rendszereket

inode inode számaszáma Bejegyzés Bejegyzés hosszahossza

Név hosszaNév hossza állománynévállománynév

Page 14: Naplózó állomány-rendszerek

Ext3 (Ext3 (Third Extended File Third Extended File SystemSystem))• Ext2 bővítése naplóvalExt2 bővítése naplóval• meta-adatokat és felhasználói adatokat is meta-adatokat és felhasználói adatokat is

naplóznaknaplóznak• szerkezet és adatszerkezetek megmaradnak (Ext2)szerkezet és adatszerkezetek megmaradnak (Ext2)• előnyeelőnye

– gyorsan helyreáll hiba esetén gyorsan helyreáll hiba esetén

• megmaradtak a régi hátrányokmegmaradtak a régi hátrányok– merev belső szerkezet, szigorú korlátokmerev belső szerkezet, szigorú korlátok– nem támogatja a nagyon nagy állományokatnem támogatja a nagyon nagy állományokat– max 32768 alkönyvtármax 32768 alkönyvtár– 10000-15000 állomány (soros láncolás miatt)10000-15000 állomány (soros láncolás miatt)

Page 15: Naplózó állomány-rendszerek

ReiserFSReiserFS

• B* fára épül B* fára épül – a B+ fa bővített változata– a B+ fa bővített változata• minden objektum egy fábanminden objektum egy fában• különleges indexelési technikák különleges indexelési technikák

szükségesekszükségesek• nem használ extent-eketnem használ extent-eket• jól kezeli a kis méretű állományokat jól kezeli a kis méretű állományokat <<1k1k• jól kezeli a nagy könyvtárakat (több jól kezeli a nagy könyvtárakat (több

százezer állomány)százezer állomány)

Page 16: Naplózó állomány-rendszerek

JFS JFS

• SzerkezeteSzerkezete– logikai kötetek, partíciók (logical logikai kötetek, partíciók (logical

volumes)volumes)– aggregátumok és állományhalmazok aggregátumok és állományhalmazok

(aggregates and filesets)(aggregates and filesets)– állományok, könyvtárak, inodeok, állományok, könyvtárak, inodeok,

címzési struktúrákcímzési struktúrák– napló (log)napló (log)

Page 17: Naplózó állomány-rendszerek

JFS - SzerkezetJFS - Szerkezet

• Partíció (partition)Partíció (partition)– rögzített blokk méret: 512, 1024, 2048, rögzített blokk méret: 512, 1024, 2048,

40964096– blokkok számablokkok száma– absztrakt cím-zóna: 0 - blokkok száma-1absztrakt cím-zóna: 0 - blokkok száma-1

• Aggregátum (aggregate)Aggregátum (aggregate)– partíció kiosztható részét írja lepartíció kiosztható részét írja le– partíciónként egy aggregátumpartíciónként egy aggregátum

Page 18: Naplózó állomány-rendszerek

JFS - Aggregátum JFS - Aggregátum szerkezeteszerkezete• 32KB fenntartott terület32KB fenntartott terület• rögzített aggregátum blokk méret (>= rögzített aggregátum blokk méret (>=

partíció blokk méret)partíció blokk méret)• elsődleges és másodlagos szuperblokkokelsődleges és másodlagos szuperblokkok• inode tábla, másodlagos inode táblainode tábla, másodlagos inode tábla• inode térkép, másodlagos inode térképinode 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-nakmunkaterület az fsck-nak• in-line napló – aggregátum meta-adat in-line napló – aggregátum meta-adat

változásainak naplózásáraváltozásainak naplózására

Page 19: Naplózó állomány-rendszerek

JFS - Allokációs csoportok (Allocation JFS - Allokációs csoportok (Allocation group)group)

• az aggregátumot nagyobb darabokra osztjákaz aggregátumot nagyobb darabokra osztják• egymással kapcsolatban levő adatok egymással kapcsolatban levő adatok

csoportosítása (lokalitás)csoportosítása (lokalitás)• kapcsolatban nem álló adatok szétszórásakapcsolatban nem álló adatok szétszórása• sorszámsorszám

– aggregátumon belülaggregátumon belül– 0-tól0-tól

• méretméret– minél több folytonos tárkiosztásminél több folytonos tárkiosztás– min. 8192 aggregátum blokk (mindig 2 hatványa)min. 8192 aggregátum blokk (mindig 2 hatványa)– szuperblokkban tároljákszuperblokkban tárolják

• legtöbb 128 csoportlegtöbb 128 csoport– műveletek gyorsak ha módosításokat kell végrehajtaniműveletek gyorsak ha módosításokat kell végrehajtani

Page 20: Naplózó állomány-rendszerek

JFS - ÁllományhalmazokJFS - Állományhalmazok (fileset)(fileset)• állományok és könyvtárak halmaza, állományok és könyvtárak halmaza,

melyek egy függetlenül beilleszthető melyek egy függetlenül beilleszthető (mount) részfát alkotnak(mount) részfát alkotnak

• szerkezeteszerkezete– inode tábla – az állományhalmazt leíró inode tábla – az állományhalmazt leíró

adatszerkezetekkeladatszerkezetekkel– inode kiosztási térképinode kiosztási térkép

• szuper inodeszuper inode– aggregátum inode táblájábanaggregátum inode táblájában– az állományhalmaz és az állományhalmaz az állományhalmaz és az állományhalmaz

kiosztási térképének leírását tartalmazzakiosztási térképének leírását tartalmazza

Page 21: Naplózó állomány-rendszerek

JFS - JFS - ExtentExtent

• egymást követő aggregátum blokkokegymást követő aggregátum blokkok• egységként osztják kiegységként osztják ki• blokkok egy aggregátumba tartoznakblokkok egy aggregátumba tartoznak• több allokációs csoportot is lefedhettöbb allokációs csoportot is lefedhet• címecíme

– első blokk címe – aggregátum blokkok (0-tól indexelve)első blokk címe – aggregátum blokkok (0-tól indexelve)

• méretemérete– 1 – 21 – 22424-1 aggregátum blokk-1 aggregátum blokk– maximum (nem befolyásolja az állomány méretét): maximum (nem befolyásolja az állomány méretét):

• 512 byte ag. blokkal: 8GB512 byte ag. blokkal: 8GB• 4096 byte ag. blokkal: 64GB4096 byte ag. blokkal: 64GB

Page 22: Naplózó állomány-rendszerek

JFS - Inode JFS - Inode

• méretemérete a háttértárolón 512 bytea háttértárolón 512 byte• minden inodenak van egyminden inodenak van egy egyedi számaegyedi száma• négy adathalmazt tartalmaznégy adathalmazt tartalmaz

– objektum adatainak POSIX leírásaobjektum adatainak POSIX leírása– O.R. függő adatok, B+ fa gyökere, VFS támogatásához O.R. függő adatok, B+ fa gyökere, VFS támogatásához

szükséges adatokszükséges adatok– B+ fa extent kiosztásai vagy egyenesen a felhasználói B+ fa extent kiosztásai vagy egyenesen a felhasználói

adatokat (pl. kis méretű állományok esetén)adatokat (pl. kis méretű állományok esetén)– más jellemzők, további extent kiosztási információ vagy más jellemzők, további extent kiosztási információ vagy

további felhasználói adatoktovábbi felhasználói adatok

• JFS dinamikusan osztja ki az inode-okatJFS dinamikusan osztja ki az inode-okat– inode extenteket oszt ki (általában 32 inode)inode extenteket oszt ki (általában 32 inode)– nincs összefüggés az inode száma és a fizikai címe nincs összefüggés az inode száma és a fizikai címe

közöttközött

Page 23: Naplózó állomány-rendszerek

JFS - B+ fákJFS - B+ fák

• minden JFS objektumot egy inode ír leminden JFS objektumot egy inode ír le• a kiosztott extent-eket B+ fában tároljáka kiosztott extent-eket B+ fában tárolják

– gyors keresés módosítások eseténgyors keresés módosítások esetén– optimalizálva van lineáris bejárásra isoptimalizálva van lineáris bejárásra is

• elemek szerkezeteelemek szerkezete– unsigned flag:8unsigned flag:8 unsigned rsvrd:16 unsigned rsvrd:16 – unsigned off1:8 unsigned off1:8 uint32 off2 uint32 off2 (kezdőblokk (kezdőblokk

eltolása)eltolása)– unsigned len:24 unsigned len:24 – unsigned addr1:8 unsigned addr1:8 uint32 addr2uint32 addr2 (extent címe) (extent címe)

• JFS meta-adatai is állományokban tárolódnakJFS meta-adatai is állományokban tárolódnak (kivéve (kivéve szuperblokk) – könnyen kiterjeszthető szerkezet szuperblokk) – könnyen kiterjeszthető szerkezet

Page 24: Naplózó állomány-rendszerek

JFS - További JFS - További adatszerkezetekadatszerkezetek• blokk kiosztási térképblokk kiosztási térkép (block allocation map) (block allocation map)• inode kiosztási térképinode kiosztási térkép (inode allocation map) (inode allocation map)• inode kiosztási csoportinode kiosztási csoport (inode allocation group) (inode allocation group)• kiosztási csoport szabad inode listájakiosztási csoport szabad inode listája

(allocation group free inode list)(allocation group free inode list)• kiosztási csoport szabad extentlistájakiosztási csoport szabad extentlistája

(allocation group free extent list)(allocation group free extent list)• inode kiosztási csoport szabad inode listájainode kiosztási csoport szabad inode listája

(inode allocation group free list)(inode allocation group free list)• hozzáférés ellenőrzés listahozzáférés ellenőrzés lista (access control list) (access control list)

Page 25: Naplózó állomány-rendszerek

JFS – NaplózásJFS – Naplózás

• csak meta-adatokat naplóznakcsak meta-adatokat naplóznak

• naplózó állomány-rendszernek terveztéknaplózó állomány-rendszernek tervezték

• naplózásnaplózás– naplóállománynaplóállomány– tranzakció kezelő (tranzakció kezelő (transaction managertransaction manager))

• logredologredo– segédprogramsegédprogram– induláskor a naplót visszafelé olvasva javítja a induláskor a naplót visszafelé olvasva javítja a

hibákathibákat

Page 26: Naplózó állomány-rendszerek

JFS - Napló felépítéseJFS - Napló felépítése

• minden művelet minden művelet tranzakcióbatranzakcióba kerül kerül• mielőtt a műveleteket végrehajtaná, a mielőtt a műveleteket végrehajtaná, a

tranzakciót beírja a naplóbatranzakciót beírja a naplóba• a műveleteket csak a napló írásának a műveleteket csak a napló írásának

befejezése után kezdi elbefejezése után kezdi el• siker esetén commitsiker esetén commit• pufferelést használpufferelést használ

– szinkronizálási műveletekszinkronizálási műveletek– szinkronizáláskor kiírja a puffert a szinkronizáláskor kiírja a puffert a

háttértárolóraháttértárolóra

Page 27: Naplózó állomány-rendszerek

JFS - Állományrendszer JFS - Állományrendszer javításajavítása• napló eseményeinek újrajátszásanapló eseményeinek újrajátszása

– a bejegyzett műveletek végrehajtásaa bejegyzett műveletek végrehajtása– utolsó szinkronizálásig megy visszautolsó szinkronizálásig megy vissza– befejezett tranzakciókat újra végrehajtja befejezett tranzakciókat újra végrehajtja

(commit)(commit)– befejezetlen tranzakciókat visszapörgetibefejezetlen tranzakciókat visszapörgeti

• helyreállítás sikertelenhelyreállítás sikertelen – teljes ellenőrzésteljes ellenőrzés– használt virtuális memória az állományok, használt virtuális memória az állományok,

könyvtárak számával arányos, nem a méretévelkönyvtárak számával arányos, nem a méretével– 1.000.000 állomány esetén kb. 32MB1.000.000 állomány esetén kb. 32MB– blokkok kiosztásának ellenőrzésére nem virtuális blokkok kiosztásának ellenőrzésére nem virtuális

memóriát, hanem az állományrendszeren belül e memóriát, hanem az állományrendszeren belül e célra fenntartott területeket használjacélra fenntartott területeket használja

Page 28: Naplózó állomány-rendszerek

Naplózott műveletekNaplózott műveletek

• állomány létrehozásállomány létrehozás

• linklink

• könyvtár létrehozáskönyvtár létrehozás

• állomány törléseállomány törlése

• átnevezésátnevezés

• könyvtár törlésekönyvtár törlése

• szimbolikus linkszimbolikus link

• állomány lerövidítéseállomány lerövidítése

Page 29: Naplózó állomány-rendszerek

ÖsszehasonlításÖsszehasonlítás

JellemzőJellemző Ext3Ext3 ReiserFReiserFSS

XFSXFS JFSJFS

max blokk méretmax blokk méret 4 Kb4 Kb 4 Kb4 Kb 4Kb4Kb 4 Kb4 Kb

max állomány-max állomány-rendszer méretrendszer méret

16384 Gb16384 Gb 17592 17592 GbGb

18 Pb 18 Pb (10(101515))

32 Pb32 Pb

max állomány méretmax állomány méret 2048 Gb2048 Gb 1 Eb 1 Eb (10(101818))

9000 Pb9000 Pb 4 Pb4 Pb

állomány-rendszer állomány-rendszer bővítésebővítése

patchpatch igenigen igenigen igenigen

dinamikus dinamikus tárfoglalás inode-tárfoglalás inode-oknakoknak

nemnem igenigen igenigen igenigen

adat naplózásadat naplózás igenigen nemnem nemnem nemnem

napló külső tárolónnapló külső tárolón igenigen igenigen igenigen igenigen

Page 30: Naplózó állomány-rendszerek

32 bites architektúrán32 bites architektúrán

JellemzőJellemző Ext3Ext3 ReiserFReiserFSS

XFSXFS JFSJFS

alkönyvtár / alkönyvtár / könyvtárkönyvtár

32 KB32 KB 65 KB65 KB 4 GB4 GB 65 KB65 KB

max állomány-max állomány-rendszer méretrendszer méret

2 TB2 TB 1616 TB TB 1616 TB TB 1616 TB TB

max állomány méretmax állomány méret 1616 TB TB 1616 TB TB 1616 TB TB 1616 TB TB

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/