Developer(s) | Facebook, Fujitsu, Fusion-IO, Intel, Linux Foundation, Netgear, Oracle Corporation, Red Hat, STRATO AG, and SUSE |
---|---|
Full name | Btrfs |
Introduced | Linux kernel 2.6.29, March 2009 |
Structures | |
Directory contents | B-tree |
File allocation | Extents |
Limits | |
Max. volume size | 16 EiB |
Max. file size | 16 EiB |
Max. number of files | 264 |
Max. filename length | 255 ASCII characters (fewer for multibyte character encodings such as Unicode) |
Allowed characters in filenames | All except '/' and NUL ('\0' ) |
Features | |
Dates recorded | Creation (otime), modification (mtime), attribute modification (ctime), and access (atime) |
Date resolution | Nanosecond |
Attributes | POSIX and extended attributes |
File system permissions | POSIX and ACL |
Transparent compression | Yes (zlib, LZO and LZ4 (planned)) |
Transparent encryption | Planned |
Data deduplication | In development |
Copy-on-write | Yes |
Other | |
Supported operating systems | Linux, ReactOS |
Website |
Btrfs (B-tree file system, pronounced as "butter F S", "better F S", "b-tree F S", "butterface", or simply by spelling it out) is a file system based on the copy-on-write (COW) principle, initially designed at Oracle Corporation for use in Linux. The development of Btrfs began in 2007, and by August 2014, the file system's on-disk format has been marked as stable.
Btrfs is intended to address the lack of pooling, snapshots, checksums, and integral multi-device spanning in Linux file systems. Chris Mason, the principal Btrfs author, has stated that its goal was "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."
The core data structure of Btrfs—the copy-on-write B-tree—was originally proposed by IBM researcher Ohad Rodeh at a presentation at USENIX 2007. Chris Mason, an engineer working on ReiserFS for SUSE at the time, joined Oracle later that year and began work on a new file system based on these B-trees.
In 2008, the principal developer of the ext3 and ext4 file systems, Theodore Ts'o, stated that although ext4 has improved features, it is not a major advance; it uses old technology and is a stop-gap. Ts'o said that Btrfs is the better direction because "it offers improvements in scalability, reliability, and ease of management". Btrfs also has "a number of the same design ideas that reiser3/4 had".
Btrfs 1.0, with finalized on-disk format, was originally slated for a late-2008 release, and was finally accepted into the Linux kernel mainline in 2009. Several Linux distributions began offering Btrfs as an experimental choice of root file system during installation.