journaling fs na linux

Mikulas Patocka mikulas na artax.karlin.mff.cuni.cz
Pátek Leden 28 11:46:24 CET 2000


>> Journalovani a synchronni zapis jsou dve zcela odlisne veci. Pokud
>> budes data zapisovat synchronne, tak budes muset porad delat uplny
>> fsck po padu.
>>
>> Journalovani naproti tomu funguje tak, ze se data zapisou prvne do
>> zurnalu a pak az na disk. Pokud system spadne behem zapisu do journalu,
>> pozna se, ze journal je neuplny, a zahodi se. Pokud system spadne behem
>> zapisu na disk, tak se pri dalsim bootu vezme journal a vsechny
>> data z nej se prekopirujou na prislusna mista na disku, cimz se
>> zajisti integrita a neni treba provadet fsck.
>>
>> Journalovani vubec nemusi byt synchronni (a taky neni), takze to pri
>> bezne praci clovek ani nepozna. Pozna se to pri kopirovani velkych
>> souboru, coz je na ext3 2x pomalejsi.
>
>Muj osobni vyklad pojmu journalovani je, ze journalovani mi nezajisti ze
>obsah souboru je konzistentni, ale zajisti ze vsechny zmeny filesystemu
>*jsou* konzistentni takze nemusim po padu kontrolovat konzistenci celeho fs.
>Takto funguje napr. NTFS. Pokud existuje jine journalovani, ktere zajistuje
>tez konzistenci *obsahu* souboru na disku, t.j. to co jsem pochopil z tveho
>predchoziho mejlu, tak si to nedovedu predstavit bez podpory API typu:
>begin_transaction, changed, commit/reject. Nejsem Linuxak ale pochybuju ze
>tam takove funkce jsou. Jak je to tedy mysleno?

Funkce na transakce tam nejsou, konzistence souboru neni zajistena.
Problem je v tom, ze autori Ext3 jsou lini a nechce se jim rozlisovat
mezi buffery, co obsahuji metadata (a maji se tedy journalovat) a
buffery, co obsahuji data, tak do toho journalu proste cpou vsechno.

Mikulas


Další informace o konferenci Linux