BtrfsSupport

Summary

BTRFS is the latest new and sexy Linux filesystem. Lots of bits of userspace need updates to handle it.

We will be adding support for this in two phases.

Release Note

This section should include a paragraph describing the end-user impact of this change. It is meant to be included in the release notes of the first release in which it is implemented. (Not all of these will actually be included in the release notes, at the release manager's discretion; but writing them is a useful exercise.)

It is mandatory.

Rationale

We'd like to make it possible for people to at least try BTRFS and still be able to boot their system, although given that Lucid will be an LTS release we are not overly keen on presenting it to users. A future release will support it properly for installation.

Scope

Anything that might break default operation with ext4, or other stable filesystems, is out of the question.

If we manage to work fast enough to add installer support for Lucid, it will not be presented by default, as it is not clear that the filesystem is stable enough yet (the btrfs wiki still says "Btrfs is under heavy development, and is not suitable for any uses other than benchmarking and review. The Btrfs disk format is not yet finalized, but it will only be changed if a critical bug is found and no workarounds are possible."). btrfs supports smooth upgrades from ext3 and ext4 (and also reverting back!), so that will be the installation path for adventurous users.

Design

The kernel and blkid already support btrfs.

Lucid

Move fsck.btrfs from /usr/bin to /sbin; all filesystem utilities that might be needed to mount /usr belong here.

Update Fedora patch for GRUB Legacy to GRUB 2, and merge. (There is a nascent test suite for GRUB 2 which may be useful, although it has not yet been merged.)

Add basic btrfs support to parted. This largely just needs probing support.

Add btrfs to supported filesystem lists in casper.

Lucid+1 (items may be done earlier if safe)

Add a udeb for btrfs-tools, containing at least mkfs.btrfs, fsck.btrfs, and btrfsctl.

Add a partman-btrfs package following the usual patterns for such things. Note that there is an SSD mode for non-rotational disks.

Consider multi-disk support in some depth; this needs to be quite a distinct mode in the partitioner, akin to LVM/RAID modes. This will likely need further design work, although it isn't strictly necessary for initial deployment.

Quantal

  • Increase automated testing & power user testing:

    • setup a precise->quantal btrfs based upgrade test in the QA lab

    • setup quantal btrfs install tests
    • engage kernel/qa testing on btrfs ongoing testing
    • publicize btrfs usage
  • Improve Documentation:
    • document caveats, benchmarks, missing features, errors
    • look at grub2 write to boot area
    • merge latest btrfs tools

Test/Demo Plan

Installing, dist-upgrading, and rebooting exercises rather a lot of the filesystem, and this alone should be a good test that things are working.

http://git.kernel.org/?p=fs/xfs/xfstests-dev.git;a=summary may prove to be useful.

Thoughts on future work

Defragmentation: open/rewrite all files (ioctl to do it for you)

Potential interesting uses for live CDs

  • seed devices and -o compress
  • mirror the live filesystem onto the target disk, resize, done!


CategorySpec

FoundationsTeam/BtrfsSupport (last edited 2012-05-18 12:52:21 by xnox)