[linux-l] journaling fs - ext3 oder reiser ?

Steffen Dettmer steffen at dett.de
Mo Feb 25 11:02:42 CET 2002


* Henrik Hempelmann wrote on Mon, Feb 25, 2002 at 11:31 +0100:
> Steffen Dettmer wrote:
> 
> >* Soeren Sonnenburg wrote on Mon, Feb 25, 2002 at 10:49 +0100:
> >
> >>ext3 mach full-data journaling, reiserfs nur meta-data journaling,
> >>sprich schaltest du den rechner inmitten eines speicherungsvorgangs aus,
> >>hast du bei ext3 das alte file und bei reiserfs ist alte auch futsch.
> >>
> >
> >Sicher dat? Wenn das so ist, hätte man sich die Entwicklung doch
> >komplett klemmen können, denn journals sollen ja gerade solche
> >Probleme verhindern? Eigentlich sollte doch eine Transaktion
> >etwas atomares sein, also ganz oder gar nicht durchgehen, das
> >wäre ja dann bei reiser überhuapt nicht der Fall. 
> >
> Primaeres Ziel ist es, die Filesystemstrukturen im Griff zu haben und
> konsistent zu halten. Datenverluste kannst Du immer haben, auch mit ext3,
> wenn Du im laufenden Betrieb den Stecker ziehst.

Ja, eine Transaktion kann flöten gehen, dann hab ich also den
Stand, als ob die Transaktion nie durchgeführt worden wäre, also
den "alten" Stand. Damit hab ich dann zwar sowas ähnliches wie
Datenverluste (obwohl nicht wirklich, denn die Transaktion war ja
nie wirklich "druch" in diesem Fall), aber ich verliere dann
hoffentlich ja nicht das File; im Falle von logfiles oder so wäre
das ja wirklich ärgerlich, oder wenn's ein CVS file wäre (aber
ich glaube, die werden temporär erzeugt und dann umbenannt).

> Transaktionen muss die Applikation regeln 

Warum? Ich finde es prima, wenn sich Datenbanken oder eben
Filesysteme um diesen Kram kümmern. Sonst hab ich ja mammut-Shell
scripts, und eigentlich kann ich aus dem Userland das gar nicht
richtig regeln, weil ich nie rauskriege, welchen Stand das
physikalische Filesystem hat; ich lese schließlich nur buffers,
die ggf. noch nicht synchronisiert sind. Ich weiß nicht, ob
"sync" überhaupt _garantiert_, daß wirklich alles geschrieben
wurde (bei allen filesystemen, über NFS usw.).

> und wenn Du die Verwaltungsinformationen erst nach dem
> Schreiben der Daten ins Journal schreibst, kannst Du auch so
> die Aenderungen 'atomar' halten.

Na ja, es muß irgentwie vorher markiert werden, was gleich
geändert wird, und wo die "alten" Blöcke liegen, und wenn beim
booten so ein Eintrag gefunden wird, muß der rückgängig gemacht
werden, also alle alten Blöcke wieder herstellen, weil man ja
nicht weiß, wie weit die Transaktion kam, also komplett weg mit
dieser Transaktion. Oder bin ich irgentwie auf einem Holzweg?!

oki,

Steffen

-- 
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.



Mehr Informationen über die Mailingliste linux-l