|| ||Amit Gud <email@example.com>|
|| ||firstname.lastname@example.org, email@example.com|
|| ||[RFC][PATCH] ChunkFS: fs fission for faster fsck|
|| ||Mon, 23 Apr 2007 06:21:34 -0500 (CDT)|
|| ||firstname.lastname@example.org, email@example.com, firstname.lastname@example.org,
email@example.com, firstname.lastname@example.org, email@example.com,
This is an initial implementation of ChunkFS technique, briefly discussed
at: http://lwn.net/Articles/190222 and
This implementation is done within ext2 driver. Every chunk is an
independent ext2 file system. The knowledge about chunks is kept within
ext2 and 'continuation inodes', which are used to allow files and
directories span across multiple chunks, are managed within ext2.
At mount time, super blocks for all the chunks are created and linked with
the global super_blocks list maintained by VFS. This allows independent
behavior or individual chunks and also helps writebacks to happen
Apart from this, chunkfs code in ext2 effectively only provides knowledge of:
- what inode's which block number to look for, for a given file's logical
- in which chunk to allocate next inode / block
- number of inodes to scan when a directory is being read
To maintain the ext2's inode number uniqueness property, 8 msb bits of
inode number are used to indicate the chunk number in which it resides.
As said, this is a preliminary implementation and lots of changes are
expected before this code is even sanely usable. Some known issues and
obvious optimizations are listed in the TODO file in the chunkfs patch.
- one big patch
- applies to 2.6.18
Attached - ext2-chunkfs-diff.patch.gz
- since the code is a spin-off of ext2, this patch explains better what
has changed from the ext2.
- mkfs, and fsck for chunkfs.
- config file used; tested mostly on UML with loopback file systems.
NOTE: No xattrs and xips yet, CONFIG_EXT2_FS_XATTR and CONFIG_EXT2_FS_XIP
should be "no" for clean compile.
Please comment, suggest, criticize. Patches most welcome.
May the source be with you.