Re: [ANNOUNCE] Btrfs: a copy on write, snapshotting FS

Chris Mason
2007-06-13T12:04:17Z

On Wed, Jun 13, 2007 at 01:45:28AM -0400, Albert Cahalan wrote:
> Neat! It's great to see somebody else waking up to the idea that
> storage media is NOT to be trusted.
>
> Judging by the design paper, it looks like your structs have some
> alignment problems.

Actual defs are all packed, but I may still shuffle around the structs
to optimize alignment. The keys are fixed, although I may make the u32
in the middle smaller.

>
> The usual wishlist:
>
> * inode-to-pathnames mapping

This one I'll code, it will help with inode link count verification. I
want to be able to detect at run time that an inode with a link count of
zero is still actually in a directory. So there will be back pointers
from the inode to the directory.

Also, the incremental backup code will be able to walk the btree to find
inodes that have changed, and the backpointers will help make a list of
file names that need to be rsync'd or whatever.

> * a subvolume that is a single file (disk image, database, etc.)

subvolumes can be made that have a single file in them, but they have to
be directories right now. Doing otherwise would complicate mounts and
other management tools (inside the btree, it doesn't really matter).

> * directory indexes to better support Wine and Samba
> * secure delete via destruction of per-file or per-block random crypto keys

I'd rather keep secure delete as a userland problem (or a layered FS
problem). When you take backups and other copies of the file into
account, it's a bigger problem than btrfs wants to tackle right now.

> * fast (seekless) access to normal-sized SE Linux data

acls and xattrs will adjacent to the inode in the tree. Most of the
time it'll be seekless.

> * atomic creation of copy-on-write directory trees

Do you mean something more fine grained than the current snapshotting
system?

> * immutable bits like UFS has

I'll do the ext2 chattr calls.

> * hole punch ability

Hole punching isn't harder or easier in btrfs than most other
filesystems that support holes. It's largely a VM issue.

> * insert/delete ability (add/remove a chunk in the middle of a file)

The disk format makes this O(extent records past the chunk). It's
possible to code but it would not be optimized.

-chris