Todays storage system is scaling up from gigabytes to terabytes to petabytes all the way to exabytes. As a result, file systems need to scale in their ability to address and manage large storage, and also in their ability to detect, repair and tolerate errors in the data stored on the disk.
Announced by Chris Mason of Oracle in 2007, Btrfs (pronounced as "Butter FS") is a new generation of copy on write, snapshoting file system for Linux aims to replace the ext3 file system (the most commonly used file system in Linux nowadays) while removing a number of its limitations, particularly with respect to file size and total file system size.
The distinctive features of Btrfs include:
- Extent based file storage (264 maximum file size)
- Space-efficient packing of small files and indexed directories
- Dynamic inode allocation (no maximum number of files set at file system creation time)
- Writable snapshots
- Subvolumes (separate internal filesystem roots)
- Object-level mirroring and striping
- Checksums on data and metadata (multiple algorithms available)
- Strong integration with device mapper for multiple device support
- Online filesystem check and very fast offline filesystem check
- Efficient incremental backup and file system mirroring
Here are some of the benefits of Btrfs:
- Support for large storage, with maximum file size up to 16 EiB, maximum number of files is 264 and maximum volume size is 16 EiB.
- Ultra fast copy-on-write system which is capable of quickly creating snapshots of the state of the filesystem at any time.
- Online resizing possible to change the size of the file system while it is mounted and busy, such as shrinking the file system.
- Storage pools enabling the file system to span multiple devices.