The advanced Butter/Better/B-tree Filesystem, Btrfs, is still labeled as experimental in the Btrfs Wiki and on Oracle’s Btrfs page, though the Oracle page looks outdated. Btrfs is an advanced copy-on-write filesystem with a lot of great capabilities: snapshotting and rollbacks, checksumming of data and metadata, RAID, volumes and subvolumes, online defragmentation, compression, and online filesystem check and repair. Snapshots are always interesting to me; they’re not backups, but a fast way to restore a system to a previous state. With Btrfs users can manage their own snapshots in their home directories. Btrfs supports filesystems up to 16 EiB in size, and files up to 16 EiB as well. (Which may be almost enough to store all the cute kitten photos on the Internet.)
Most distros include Btrfs, and Btrfs has been included in mainline Linux kernels since the 2.6.29 kernel. To use it just install the user-space tools. So what’s the story, is it ready for prime time or not?
Btrfs is Ready
Matthias Eckermann, senior product manager at SUSE Enterprise Linux, says that Btrfs is ready for production systems, and as of SUSE Linux Enterprise 11 SP2 Btrfs is officially supported, along with Ext3, ReiserFS, XFS and OCFS2 (Oracle cluster filesystem for Linux).
The idea behind supporting multiple filesystems is to enable customers to choose different filesystems for different workloads. The installation default is good old tried-and-true Ext3. In the release notes SUSE recommends XFS for data, and Btrfs for root filesystems.
SUSE is a major Btrfs contributor, and as Mr. Eckermann explains their development strategy is three-fold: First, stability. Then functionality, and then performance. Patches are rigorously tested, and only those that meet SUSE standards are accepted. SLES uses the 3.0.10 kernel, with backports and patches.
SUSE does not support all Btrfs functionality yet. For example, multi-volume handling and RAID, and compression are not yet supported, though they will be. fsck.btrfs
in on the future support roadmap. The scrub
command is supported, and you can use it to perform online filesystem check and repair. It runs continually as a background process, and you can also run it manually.
SUSE’s nice Btrfs snapshot management tool is called Snapper, and SUSE even provides pre-built Snapper binaries for other distros like CentOS, Debian, Ubuntu, Fedora, and Red Hat.
A notable omission is Ext4; read-only functionality is supported for migrating to a different filesystem. Full read-write support is available with the ext4-writeable KMP
kernel module from the SLES11-Extras repository, but it is not supported.
You can migrate from Ext2/3/4 to Btrfs, and you can also migrate back from Btrfs, with one exception: any new data added to Btrfs after conversion will not survive conversion back to Ext2/3/4.
OpenSUSE Has Btrfs
OpenSUSE, the community SUSE edition, gets Btrfs as well, and is more aggressive in pushing out new Btrfs patches. OpenSUSE is free of cost, and SLES has a free 60-day download, so you can test both without spending any money. So is Btrfs ready for production systems? SUSE Linux says yes.
Image credits:
Geeko Samurai courtesy Novell
Green and blue SUSE geckos courtesy Wikimedia Commons, GNU Lesser General Public License