naplózó állomány-rendszerek
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 PresentationTRANSCRIPT
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
Á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
Á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
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
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)
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)
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
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
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
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
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
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
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
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)
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)
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)
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
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
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
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
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
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
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
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)
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
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
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
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
Ö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
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/