One of the benefits of Btrfs besides offering competitive performance against other Linux file-systems and SSD optimizations is its support for sub-volumes and writable snapshots. While Btrfs is still in development and is not yet used as a default file-system by any Linux distribution, Red Hat has been looking to capitalize upon the capabilities of Btrfs by introducing support for system rollbacks into Fedora. The Btrfs-based system rollback support has been a feature for Fedora 13 so with the release of the Fedora 13 Beta earlier this week we decided to further investigate this feature.
In order to benefit from this, you must, of course, be using a Btrfs root file-system. This can be setup by either converting an existing EXT3/EXT4 root partition over to Btrfs or by performing a new Fedora installation and using Btrfs -- we opted for the latter method. Btrfs is only available from the Fedora DVD versions and not the Live DVD/USB version that is limited to using EXT4. The DVD-based installer needs to be started with the "btrfs" boot argument added to the GRUB boot-loader; otherwise Red Hat's Anaconda installer will not offer Btrfs file-system support. Note that this boot parameter is now "btrfs" and is not "icantbelieveitsnotbtr" like in earlier Fedora releases.
Even when passing the btrfs boot parameter you still need to manually modify the partitions to use Btrfs over the EXT4 default. As Btrfs is currently only capable of taking a copy-on-write snapshots of the entire file-system and not select directories, it would be highly recommended that a separate /home partition be created that is using EXT4 or another file-system. If the home data resides on the same partition as your root file-system, when performing any system rollbacks, your home data too will be rolled to the earlier state. Of course, you can always switch back to using the newer snapshot, but for ease of use, it is recommended having a separate /home partition.
With Fedora 13 the system rollback support is not provided "out of the box" when engaging a Btrfs installation. After the install is complete, you must then go and install yum-plugin-fs-snapshot. This yum package management plug-in will automatically create a file-system snapshot when installing/upgrading/removing RPM packages before the yum transaction takes place. Btrfs is the only Linux file-system that supports this snapshot-ing functionality, but this new yum plug-in is also capable of taking LVM snapshots at the block level, permitting the active Linux kernel supports this functionality.