Fedora was the first tier-one Linux distribution shipping with support for optionally installing to a Btrfs file-system
for the past year, but in recent weeks the adoption rate of Btrfs looks like it will be quickly rising. Fedora 13 is extending the Btrfs support to offer system rollback support
by where a file-system snapshot is created via Btrfs each time a yum transaction takes place. Red Hat recently released the first public beta of Red Hat Enterprise Linux 6.0 and it includes Ananconda installation support for RHEL6 onto Btrfs, MeeGo will be using Btrfs by default
in this distribution that marries Maemo and Moblin, and Ubuntu is making Btrfs plans
where Btrfs may become the default file-system in Ubuntu 10.10
. Novell / openSUSE is also getting in bed with Btrfs.
Being worked on for openSUSE 11.3
, which is due for release in July, is snapshot/rollback support for Btrfs in a similar fashion to Red Hat's implementation with Fedora 13. A Novell customer is pushing for this capability whereby a Btrfs copy-on-write snapshot is created by libzypp / zypper before a commit happens that changes a package's state. There would then be an exposed interface to revert to an earlier snapshot should something go awry.
At this time it looks like Novell is targeting an openSUSE-specific interface for switching between these snapshots. The Fedora rollback approach is integrating the Btrfs snapshot-switching capabilities into the GNOME Disk Utility whereby the mounted snapshot will change at next reboot/remounting. There's also plans by Red Hat to integrate the snapshot switching support into the GRUB boot-loader in case a package change makes your system not able to boot. The openSUSE approach looks like it will introduce a "zypper rollback" command for handling the system rollback process.
Right now with the Fedora approach, unless you create a separate /home
partition, the user's home files and data will be rolled-back too since the snapshot is created of the entire Btrfs file-system. It looks like openSUSE is looking to possibly workaround this by just looking at the difference in files between two file-system snapshots within the /usr
directories so that the home data will not be touched on rollbacks, none of the system logs, or other system files like databases.
This system rollback/snapshot support for openSUSE is discussed on the openFATE features page
. The openSUSE / SUSE Linux Enterprise support for Btrfs is also mentioned in their most recent SUSE Linux Enterprise Technology Roadmap (slides available at Slideshare.net
). As slide 60 indicates, the Btrfs support within SUSE Linux Enterprise Service Pack 1 is deemed a technology preview.
Beyond offering support for snapshots and subvolumes similar to that of the Sun/Oracle ZFS file-system, Btrfs also offers compelling performance
against the EXT4 file-system and others (especially when using a recent kernel release), transparent zlib compression support, online defragmentation, an SSD optimized mode
, block discard support, and many other features.