The following btrfs features have been implemented:

  • RAID 5 and RAID 6 support.


    The RAID 5 and RAID 6 features are experimental and potentially not crash-safe.

  • Skinny extents introduce a new key type for metadata extent references that uses disk space more efficiently and reduces the space required per extent reference for each tree block from 51 bytes to 33 bytes. As a result, the size of the extent tree decreases by between 30% and 35%, metadata operations are faster as there are fewer copy-on-write operations, and more of the extent tree can be stored in memory. This feature is not supported by previous kernels so it is not enabled by default with UEK R4. To enable the feature, specify the -x option to mkfs.btrfs when creating a file system or to btrfstune for an existing file system.

  • Snapshot-aware defragmentation does not break the sharing of data by snapshots.

  • Offline data deduplication removes copies of repeated data in the file system. This feature is useful for VMs, which often contain similar copies of an operating systems or for backups, where the reduction in storage requirements can be substantial. You can perform deduplication by running a command such as dedup or duperemove when the file system is mounted and running. Online deduplication, which occurs automatically and transparently as processes write data, is not yet supported.

  • New BTRFS_IOC_SET_LABEL and BTRFS_IOC_SET_LABEL ioctl commands support reading and writing the file system label.

  • The commit mount option specifies the interval for periodic synchronization to permanent storage, which is 30 seconds by default. Setting too high a value increases the risk of data loss or corruption if the system crashes. A warning is displayed if you set the value greater than 300 seconds.

  • Remount now supports the acl, barrier, datasum, datacow, noautodefrag, nodiscard, noenospc_debug, noflushoncommit, and treelog options.

  • The extent tree is now more space efficient, which reduces the size of the metadata that it requires.

For more information, see https://btrfs.wiki.kernel.org/index.php/Changelog.