Chunkfs will only work if cross-chunk references can be kept rare. Heavy fragmentation of chunk free space resulting in many continuation inodes will waste space and increase file system check and repair time. We expect to use a common tactic for controlling file system fragmentation: reserve a certain percentage of free space, avoiding worst case fragmentation and performance degradation at the cost of relatively cheap and plentiful disk space. Another mitigating factor is that the chunk structure not only allows on-line file system check, but would greatly simplify on-line defragmentation.
While most consistency checks can be done on each chunk individually, we must still check inter-chunk consistency. For example, if we check chunk A and follow a continuation inode's back pointer to the original inode in chunk B, and then check chunk B and discover that the original inode was orphaned, we will then have to free the continuation inode and associated blocks in chunk A.
The hierarchical structure of UNIX file systems complicates the goal of truly independent chunk failures, since a component in the pathname of a file in chunk A may be located in chunk B. If chunk B is corrupted, the file A is disconnected and unavailable. This can be mitigated by directory duplication, caching parent name hints in inodes, and by mechanisms to mount chunks independently or otherwise get access to all files in a chunk.
Valerie Henson 2006-10-18