Introduction ============ BTRFS is a modern copy on write (COW) filesystem for Linux aimed at implementing advanced features while also focusing on fault tolerance, repair and easy administration. Its main features and benefits are: * Snapshots which do not make a full copy of the files * Built-in volume management, support for software-based RAID 0, RAID 1, RAID 10 and others * Self-healing - checksums for data and metadata, automatic detection of silent data corruptions Feature overview: * Extent based file storage * 2\ :sup:`64` byte == 16 EiB :ref:`maximum file size` (practical limit is 8 EiB due to Linux VFS) * :doc:`Space-efficient packing of small files` * Space-efficient indexed directories * :ref:`Dynamic inode allocation` * :doc:`Writable snapshots, read-only snapshots, subvolumes (separate internal filesystem roots)` * :doc:`Checksums on data and metadata` (crc32c, xxhash, sha256, blake2b) * :doc:`Compression (ZLIB, LZO, ZSTD), heuristics` * :doc:`Integrated multiple device support`: * File Striping (like RAID0) * File Mirroring (like RAID1 up to 4 copies) * File Striping+Mirroring (like RAID10) * Single and Dual Parity implementations (like RAID5/6, experimental, not production-ready) * SSD/NVMe (flash storage) awareness, :doc:`TRIM/Discard` for reporting free blocks for reuse and optimizations (e.g. avoiding unnecessary seek optimizations, sending writes in clusters. * :doc:`Background scrub` process for finding and repairing errors of files with redundant copies * :doc:`Online filesystem defragmentation` * :doc:`Offline filesystem check` * :doc:`In-place conversion` of existing ext2/3/4 and reiserfs filesystems * :doc:`Seeding device.` Create a (readonly) filesystem that acts as a template to seed other Btrfs filesystems. The original filesystem and devices are included as a readonly starting point for the new filesystem. Using copy on write, all modifications are stored on different devices; the original is unchanged. * :doc:`Subvolume-aware quota` support * :doc:`Send/receive of subvolume changes`, efficient incremental filesystem mirroring and backup * :doc:`Batch, or out-of-band deduplication` (happens after writes, not during) * :doc:`Swapfile support` * :doc:`Tree-checker`, post-read and pre-write metadata verification * :doc:`Zoned mode support` (SMR/ZBC/ZNS friendly allocation, emulated on non-zoned devices)