The contents of this wiki are no longer actively maintained. The most current documentation is available at http://ceph.com/docs.

Btrfs

From Ceph wiki

Revision as of 23:56, 9 April 2010 by Gregf (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Btrfs is a new Linux file system that is based on a snapshottable, copy-on-write BTree data structure. It includes a variety of advanced features, including writeable snapshots, data and metadata checksums, metadata replication, basic integrated multi-device support (raid0, raid1, raid10).

Internally, Btrfs bears some resemblance to Ebofs, the userland object file system developed for and was used in Ceph. However, Btrfs includes some critical features Ebofs does not (namely, copy-on-write semantics for file data; plus dropping the requirement that all metadata be stored in-memory), and is well maintained and tested. To avoid reinventing the wheel, Ceph uses btrfs on individual storage nodes (OSDs) to store object data, and we focus on adding any additional functionality needed to btrfs where it will hopefully benefit non-Ceph users as well. Currently it is recommended that OSDs use btrfs for the underlying storage, but it is not mandatory.

Installing

As of 2.6.29, btrfs is now in the mainline Linux kernel. Using a recent kernel is the easiest route.

Alternatively, you can also build btrfs for an older kernel. Please see

http://btrfs.wiki.kernel.org/index.php/Btrfs_source_repositories

You probably want the btrfs-unstable-standalone tree, which should build on kernels as old as 2.6.18 or so. (Note that at the time of this writing the backports are a bit behind; YMMV.)

You also need the userland tools (mkfs.btrfs, btrfsck, etc.) in the btrfs-progs-unstable tree.

Retrieved from "http://ceph.com/wiki/Btrfs"
Personal tools