3.1.1. Support for the btrfs File System
Btrfs is a copy-on-write (CoW) general purpose file system. Based on
the CoW functionality, btrfs provides snapshoting. Beyond that data
and metadata checksums improve the reliability of the file system.
btrfs is highly scalable, but also supports online shrinking to adopt
to real-life environments. On appropriate storage devices btrfs also
supports the TRIM command.
Support
With SUSE Linux Enterprise 11 SP2, the btrfs file system joins ext3,
reiserfs, xfs and ocfs2 as commercially supported file systems. Each
file system offers disctinct advantages. While the installation
default is ext3, we recommend xfs when maximizing data performance is
desired, and btrfs as a root file system when snapshotting and
rollback capabilities are required. Btrfs is supported as a root file
system (i.e. the file system for the operating system) across all
architectures of SUSE Linux Enterprise 11 SP2. Customers are advised
to use the YaST partitioner (or AutoYaST) to build their systems:
YaST will prepare the btrfs file system for use with subvolumes and
snapshots. Snapshots will be automatically enabled for the root file
system using SUSE’s snapper infrastructure. For more information
about snapper, its integration into ZYpp and YaST, and the YaST
snapper module, see the SUSE Linux Enterprise documentation.
Migration from “ext” File Systems to btrfs
Migration from existing “ext” file systems (ext2, ext3, ext4) is
supported “offline” and “in place”. Calling “btrfs-convert [device]”
will convert the file system. This is an offline process, which needs
at least 15% free space on the device, but is applied in place. Roll
back: calling “btrfs-convert -r [device]” will roll back. Caveat:
when rolling back, all data will be lost that has been added after
the conversion into btrfs; in other words: the roll back is complete,
not partial.
RAID
Btrfs is supported on top of MD (multiple devices) and DM (device
mapper) configurations. Please use the YaST partitioner to achieve a
proper setup. Multivolume/RAID with btrfs is not supported yet and
will be enabled with a future maintenance update.
Future Plans
We are planning to announce support for btrfs' built-in multi
volume handling and RAID in a later version of SUSE Linux Enterprise.
Starting with SUSE Linux Enterprise 12, we are planning to
implement bootloader support for /boot on btrfs.
Transparent compression is implemented and mature. We are
planning to support this functionality in the YaST partitioner in a
future release.
We are commited to actively work on the btrfs file system with
the community, and we keep customers and partners informed about
progress and experience in terms of scalability and performance. This
may also apply to cloud and cloud storage infrastructures.
Online Check and Repair Functionality
Check and repair functionality (“scrub”) is available as part of the
btrfs command line tools. “Scrub” is aimed to verify data and
metadata assuming the tree structures are fine. “Scrub” can (and
should) be run periodically on a mounted file system: it runs as a
background process during normal operation.
The tool “fsck.btrfs” tool will soon be available in the SUSE Linux
Enterprise update repositories.
Capacity Planning
If you are planning to use btrfs with its snapshot capability, it is
advisable to reserve twice as much disk space than the standard
storage proposal. This is automatically done by the YaST2 partitioner
for the root file system.
Hard Link Limitation
In order to provide a more robust file system, btrfs incorporates
back references for all file names, eliminating the classic
“lost+found” directory added during recovery. A temporary limitation
of this approach affects the number of hard links in a single
directory that link to the same file. The limitation is dynamic based
on the length of the file names used. A realistic average is
approximately 150 hard links. When using 255 character file names,
the limit is 14 links. We intend to raise the limitation to a more
usable limit of 65535 links in a future maintenance update.
For more information about btrfs, see the SUSE Linux Enterprise 11
documentation.[/color]