Privacy Policy Cookie Policy Terms and Conditions Naplózó fájlrendszer - Wikipédia

Naplózó fájlrendszer

A Wikipédiából, a szabad lexikonból.

Ezt a szócikket át kellene olvasni, ellenőrizni a szövegét, tartalmát. További részleteket a cikk vitalapján találhatsz.

Egy naplózó fájlrendszer egy olyan fájlrendszer amely naplózza a változásokat egy speciális naplóba, (journal) (ami általában egy ciklikus napló, egy direkt erre fentartott területen) mielőtt beírná azokat a valódi fájlrendszerbe.

[szerkesztés] Alapok

Egy fájlrendszer tekinthető egy nagyon nagyméretű adat struktúrának; aminek aktualizálása, a katalógusok és adattartalmak megváltoztatása általában több, egymástól független fizikai írással lehetséges. Az egymástól független írások miatt verseny állapot alakulhat ki, amely megszakítása (például feszültségkimaradás miatti rendszerleállás) érvénytelen köztes állapotba hozhatja az adatstruktúrát.

Például, a Unix fájlrendszerében a fájl törlés két lépésben hajtódik végre:

  1. A bejegyzést eltávolítja a könyvtárból
  2. A fájl i-bögét úgy állítja, hogy az eddig használt terület a szabad területként legyen nyilvántartva

Ha a leállás előtt csak az első lépés fejeződik be, akkor lesz egy árva i-bög, és sehová sem tartozó adatterület. Ha a második lépés fejeződik be az első előtt, akkor viszont a nem átállított i-bög miatt esetleg egy másik fájl adatát írja felül, vagy olvas olyan adatot, ami nem a fájlhoz tartozik.

Egy ilyen helyzet után egy lehetséges mód a visszaállításra a teljes adat struktúra módszeres végigvizsgálata, és - ha felismerhető és javítható - a hibás állapot, akkor javítással az inkonzisztencia megszüntetése. Ezt a gyakorlatot követi a Unix-like operációs rendszereknél a fsck program. Az eljárás egy nagy fájlrendszer esetében nagyon lassú, és még lassabb is lehet, ha hálózati tárolókról van szó, ahol adott az I/O sávszélesség.

Másik mód a helyes állapot visszaállítására, ha a fájlrendszer egy nyilvántartást vezet a szándékozott változásokról, időben előre haladva. A visszaállításnal csak újra kell olvasni a nyilvántartást, és addig kell végrehajtni a naplózott változtatásokat, ämíg a fájlrendszer újra konzisztens nem lesz. Ilyenkor a változásokról (elemi szinten, láthatatlanul) elmondható a következők valamelyike:

  • Eredetileg sikeresen végrehajtódott.
  • A visszaállítás alatt teljesen végrehajtódott.
  • Nem kell végrehajtani.

Néhány fájlrendszer megengedi, hogy a nyilvántartása bővülhessen, darabolódjon vagy újra allokálódjon, mint egy szabályos fájl; de a legtöbb esetben egy fix, folyamatos területre rögzítik a változásokat, egy láthatatlan, speciális fájlba, így biztosítva, hogy ne változhasson a mérete, ha az egységet csatlakoztatják.

Egy fizikai napló egy bitről bitre azonos másolata annak a blokknak, ami később lesz felírva. Az ext3 például ilyet használ. Egy logikai napló egy olyan napló, amiben a metaadat változások vannk feljegezve, egy nagyon tömör formátum szerint. Ezzel növelhető a teljesítmény, jelentősen csökkenthető a napló olvasandó/irandó adatmennyisége, például egy metaadat intenzív művelet (egy nagy katalógus ág törlése) esetében is. Az XFS logikai naplózást használ.

A log-struktúrált fájlrendszerekben önmaga, a fájlrendszer a napló. 2005-ig ugyan nem volt olyan általánosan használt fájlrendszer, amely log-struktúrált lett volna, bár a WAFL és a Reiser4 néhány technológiát a log-struktúrált fájlrendszerektől kölcsönöztek.

Az adatbázisok a naplózó fájlrendszerek technikák közül a legszigorúbbakat használják, hogy minden körülmények között megőrizhessék az adat integritásukat.

[szerkesztés] Csak metaadat naplózás

A naplózás hatása erősen érezhető a fájlrendszer teljesítményén, mivel minden adat (legalább) két írást igényel. A csak metaadat naplózás egy kompromisszum a teljesítmény és a megbízhatóság között, mert így csak a fájl metaadat változásait kell naplózni (amelyek általában kisebbek, és ezért kevesebb teljesítmény vesznek el). Ez a megoldás biztosítja, hogy a visszaállítás gyorsabb lehet egy rendsserkiesést követő újra csatlakoztatásnál, viszont fenáll a lehetősége az adatok sérülésének, mivel a nem naplózott fájl adatok és a naplózott metaadatok közötti szinkronitás megszűnhet.

Például, a Unix fájlrendszerében egy fájl bővítés (append) tipikusan három lépést igényel:

  1. Meg kell növelni a fájl hosszát a hozzá tartozó i-bögben.
  2. Le kell foglalni a bővítéshez szükséges területet a rendelkezésre álló szabad területből.
  3. A bővítéshez tartozó adatokat át kell írni a fájl - új - területére.

Csak metaadat naplózás esetében, egy rendszerkiesés után nem lehet tudni, hogy a 3. lépés megtörtént-e, mivel azt nem naplózták. Ha a 3. lépés nem történt meg, de az 1-es és 2-es lépést a rendszerkiesés után újra végrehajtották, akkor a fájl mérete megnövekszik egy ki nem használt területtel, aminek a tartalma bármi is lehet.

A gyorsítótárba (cache) írást a legtöbb operációs rendszer használja az átbocsátóképessége növelésére. A gyorsítótárból a tényleges írás általában valamilyen elevátor rendezés vagy hasonló eljárás szerint történik. A nem megfelelő sorrend szerinti írás kockázatának elkerülésére a fájl adatainak írását olyan sorrendbe kell rendezni, hogy azok írása a hozzájuk tartozó metaadatok írása előtt megtörténjen. Ennek megvalósítása nagyon trükkös lehet esetenként, mivel az írás vezérléséhez koordináció szükséges az operációs rendszer kernelje, a fájlrendszer és a gyorsítótár között.

A Soft updates egy lehetséges megoldás a naplózás "szétosztására", de biztosítnai kell, hogy az összes diszkre írás sorrendje olyan legyen, hogy a fájl sohase kerülhessen inkonzisztens állapotba, illetve inkonzisztencia csak akkor léphessen fel, ha a tároló téveszt. A visszaállítás nagyon egyszerűen megoldható, mivel egy háttérben futó alkalmazás végigmegy a fájlrendszeren, és az "árva" adatot (ami nem tartozik sehová) egyből a szemétgyűjtőbe (felszabadítható, nem használt adat- vagy tároló terület) teheti.

[szerkesztés] Lásd még

  • Fájlrendszerek összehasonlítása
  • bővített fájl jellemzők
THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu