Re: [RFC][PATCH] ChunkFS: fs fission for faster fsck

Amit Gud
2007-04-25T17:53:51Z

Andreas Dilger wrote:
>> How do you recover if fsfuzzer takes out a cnode in the chain? The
>> chunk is marked clean, but clearly corrupted and needs fixing and
>> you don't know what it was pointing at. Hence you have a pointer to
>> a trashed cnode *somewhere* that you need to find and fix, and a
>> bunch of orphaned cnodes that nobody points to *somewhere else* in
>> the filesystem that you have to find. That's a full scan fsck case,
>> isn't?
>
> Presumably, the cnodes in the other chunks contain forward and back
> references. Those need to contain at minimum inode + generation + chunk
> to avoid problem of pointing to a _different_ inode after such corruption
> caused the old inode to be deleted and a new one allocated in its place.
>
> If the cnode in each chunk is more than just a singly-linked list, the
> file as a whole could survive multiple chunk corruptions, though there
> would now be holes in the file.
>
>> It seems that any sort of damage to the underlying storage (e.g.
>> media error, I/O error or user brain explosion) results in the need
>> to do a full fsck and hence chunkfs gives you no benefit in this
>> case.
>

Yes, what originated from discussions on #linuxfs is that redundancy is
required for cnodes, in order to avoid checking the entire file system
in search of a dangling cnode reference or for "parent" of a cnode.

If corruption, due to any reason, occurs in any other part of the file
system, it would be localized for that chunk. Even if entire fsck is
needed, chances of which are rare, full fsck of chunked file system is
no worse than fsck of non-chunked file system. Passes 3, 4, and 5 of
fsck take only 10-15% of total fsck run time and almost no-I/O Pass 6
for chunkfs wouldn't add whole lot.

AG
--
May the source be with you.