Btrfs
Developer(s) | Oracle Corporation |
---|---|
Full name | Btrfs |
Introduced | Stable: Yet to be released Unstable: v0.19, June 2009 with Linux |
Structures | |
Directory contents | B-tree |
File allocation | extents |
Limits | |
Max volume size | 16 EB |
Max file size | 16 EB |
Max no. of files | 264 |
Max filename length | 255 bytes |
Allowed filename characters | All bytes except NUL ('\0') and '/' |
Features | |
Attributes | POSIX |
File system permissions | POSIX, ACL |
Transparent compression | Yes |
Transparent encryption | No |
Other | |
Supported operating systems | Linux |
Btrfs (B-tree FS or "Butter FS"[1][2]) is a copy-on-write file system for Linux announced by Oracle in 2007 and published under the GNU General Public License (GPL).[3] It originated as a response to the ZFS filesystem and is expected to be free of many of the limitations that other Linux filesystems currently have.[4]
Btrfs is under heavy development and the current release is only intended for testing. Btrfs v0.19 was released in June 2009.[5] Plans existed for releasing Btrfs v1.0 (with finalized on-disk format) in late 2008,[6] but this date has since passed and a new timeline for final release has not yet emerged as of August 2009[update].
Chris Mason, Director of Linux Kernel Engineering at Oracle and the founder of Btrfs, said that, "The main goal is to let Linux scale for the storage that will be available. Scaling is not just about addressing the storage but also means being able to administer and to manage it with a clean interface that lets people see what's being used and makes it more reliable."[7] Btrfs was merged into the 2.6.29-rc1 prerelease of the mainline Linux kernel, but remains marked as experimental and not ready for production use. The developers advise users to not use it for anything but testing as the on-disk format is not finalized.[8]
Features
Btrfs claims a "focus on fault tolerance, repair and easy administration.".[9] As of 2009,[update] it is still in heavy development and lacks many basic features. Theodore Ts'o, developer of ext3 and ext4 filesystems, said that Btrfs "has a number of the same design ideas that reiser3/4 had".[10] Btrfs includes, or has plans for:[11]
- 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 and snapshots of snapshots
- Subvolumes (separate internal filesystem roots)
- Object-level mirroring and striping
- Checksums on data and metadata (for strong integrity assurance; currently CRC-32C, alternatives are planned[12])
- Compression (zlib; enabled by the mount option
-o compress
) - Copy-on-write logging for all data and metadata
- Strong integration with device mapper for multiple device support, with several built-in RAID algorithms
- Online filesystem check and very fast offline filesystem check
- Efficient incremental backup and file-system mirroring
- Upgrading of filesystems from ext3 to Btrfs, and conversion back to the point of upgrading[13]
- Solid-state drive (SSD) optimized mode (activated through the mount option
-o ssd
; no wear levelling but it will avoid writing on one spot, using multiple superblocks[14]) - Online defragmentation
- Seed device support[15]
Although Btrfs has no native feature that would make it a distributed or networked filesystem by itself, Oracle has started implementing CRFS (Coherent Remote File System), a network filesystem protocol specifically designed and optimized for networked storage on Btrfs.
See also
- List of file systems
- Comparison of file systems
- ext4, Tux3
- ZFS
- NILFS — a checksumming Linux filesystem, also supporting snapshots
References
- ^ Valerie Henson. Chunkfs: Fast file system check and repair. Melbourne, Australia. Event occurs at 18m 49s. Retrieved 2008-02-05.
It's called Butter FS or B-tree FS, but all the cool kids say Butter FS
{{cite AV media}}
: Unknown parameter|date2=
ignored (help) - ^ "CRFS and POHMELFS [LWN.net]". Lwn.net. Retrieved 2009-06-15.
- ^ Chris Mason (2007-06-12). "Btrfs: a copy on write, snapshotting FS". Linux Kernel Mailing List. Retrieved 2007-07-11.
- ^ Valerie Aurora (2009-07-22). "A short history of btrfs".
- ^ "btrfs Wiki". Btrfs.wiki.kernel.org. Retrieved 2009-06-15.
- ^ "Development timeline - btrfs Wiki". Btrfs.wiki.kernel.org. 2008-12-11. Retrieved 2009-06-15.
- ^ Sean Michael Kerner (2008-10-30). "A Better File System For Linux". InternetNews.com. Retrieved 2008-10-30.
- ^ Jonathan Corbet (2009-01-09). "Btrfs merged for 2.6.29". LWN.net. Retrieved 2009-01-10.
- ^ Chris Mason (2008-03-12). "Btrfs wiki Main Page". Retrieved 2008-08-09.
- ^ Theodore Ts'o (2008-08-01). "Re: reiser4 for 2.6.27-rc1". Retrieved 2009-01-22.
- ^ Feature list from Jonathan Corbet (2007-06-19). "btrfs and NILFS". Retrieved 2008-08-09. and Chris Mason (2007-06-12). "Btrfs: a copy on write, snapshotting FS". Linux Kernel Mailing List. Retrieved 2008-08-09.
- ^ "Wiki FAQ: What checksum function does Btrfs use?". Btrfs.wiki.kernel.org. Retrieved 2009-06-15.
- ^ "Conversion from Ext3 - btrfs Wiki". Btrfs.wiki.kernel.org. 2009-01-25. Retrieved 2009-06-15.
- ^ "Btrfs and Solid State Disks (SSD)". Oss.oracle.com. 2008-02-11. Retrieved 2009-06-15.
- ^ Chris Mason (2009-01-12). "Changelog". Retrieved 2009-01-14.
External links
- Btrfs homepage
- Initial Btrfs announcement on June 2007
- Coherent Remote File System, built upon btrfs.
- Valerie Aurora (July 22, 2009). "A short history of btrfs". lwn.net.