Btrfs is a new copy on write filesystem for Linux aimed at implementing advanced features while focusing on fault tolerance, repair and easy administration. Initially developed by Oracle, Btrfs is licensed under the GPL and open for contribution from anyone.
Linux has a wealth of filesystems to choose from, but we are facing a number of challenges with scaling to the large storage subsystems that are becoming common in today's data centers. Filesystems 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 disk.
Btrfs is under heavy development, and is not suitable for any uses other than benchmarking and review. The Btrfs disk format is not yet finalized.
The main Btrfs features include:
- Extent based file storage (2^64 max file size)
- Space efficient packing of small files
- Space efficient indexed directories
- Dynamic inode allocation
- Writable snapshots
- Subvolumes (separate internal filesystem roots)
- Object level mirroring and striping
- Checksums on data and metadata (multiple algorithms available)
- Integrated multiple device support, with several raid algorithms
- Online filesystem check
- Very fast offline filesystem check
- Efficient incremental backup and FS mirroring
- Online filesystem defragmentation
Currently the code is in an early implementation phase, and not all of these have yet been implemented. See the Development timeline for detailed release plans.
- v0.16 Released (Aug, 2008) Changelog
- v0.15 Released (May 29, 2008)
- v0.14 Released (April 30, 2008)
- v0.13 Released
- Getting started
- Using Btrfs with Multiple Devices
- Conversion from Ext3
- Btrfs design
- Multiple Device Support
- Code documentation
- Btrfs mailing list
- IRC on freenode.de in the channel #btrfs