tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Lost file-system story



On Sat, Dec 10, 2011 at 1:14 PM, Edgar Fuß <ef%math.uni-bonn.de@localhost> 
wrote:
> My impression is that you are asking for the impossible.
>
> The underlying misconception (which I know very well for suffering from it 
> myself) is that a filesystem aims at keeping the on-disc metadata consistent 
> and that tools like fsck are intended to rapair any inconsistencies happening 
> nontheless.
>
> This, I learned, is not true.
>
> The point of syncronous metadata writes, soft dependency metadata write 
> re-ordering, logging/journaling/WAPBL and whatnot is _not_ to keep the 
> on-disc metadata consistent. The sole point is to, under all adverse 
> conditions, leave that metadata in a state that can be _put back_ into a 
> consistent state (peferrably reflecting an in-memory state not too far back 
> from the time of the crash) by fsck, on-mount journal replay or whatever.
> That difference becomes perfectly clear with journalling. After an unclean 
> shutdown, the on-disc metadata need not be consistent. But the journal 
> enables putting it back into a consistent state quite easily.
> So fsck is not aimed at and does not claim to be able to recover from random 
> inconsistencies in the on-disc metadata. It is aimed at repairing those 
> inconsistencies that can occur because a crash _given the metadata was 
> written syncronously_.
> FreeBSD's background fsck, by the way, is aimed at reparing only those 
> inconsistencies that can occur given the metadata was written with softep's 
> re-ordering.
>
> Of course, keeping the on-disc metadata in a ``repairable'' state incurs a 
> performance penalty.
>
> So you seem to be asking for the File System Holy Grail: a file system that 
> is as fast as asyncronous metadata writes, yet able to survive any possible 
> kind of unclean shutdown. Such a thing, to my knowledge, doesn't exist.

I'm sorry, I don't wish to be rude, but you, too, seem not to have
read what I've written carefully. Or, perhaps the fault is mine, that
I simply haven't made myself sufficiently clear. I've talked at length
about the behavior of Linux ext2 and that it was more than acceptable,
both from a standpoint of performance and reliability. I am not
looking for something "able to survive any possible kind of unclean
shutdown". I'm looking for a reasonably low joint probability of a
crash occurring *and* losing an async-mounted filesystem as a result.
I simply want an async implementation where the benefit (performance)
is not out-weighed by the risk (lost filesystems) and I cited Linux
ext2 is an example of that. If that's not clear to you, then I'm
afraid I can't do better.


Home | Main Index | Thread Index | Old Index