btrfs-progs/Documentation/Introduction.rst
David Sterba 9aafb384cb btrfs-progs: docs: cross references, ioctl updates
[ci skip]

Signed-off-by: David Sterba <dsterba@suse.com>
2023-12-06 17:44:28 +01:00

48 lines
2.6 KiB
ReStructuredText

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<administration-limits>` (practical limit is 8 EiB due to Linux VFS)
* :doc:`Space-efficient packing of small files<Inline-files>`
* Space-efficient indexed directories
* :ref:`Dynamic inode allocation<administration-flexibility>`
* :doc:`Writable snapshots, read-only snapshots, subvolumes (separate internal filesystem roots)<Subvolumes>`
* :doc:`Checksums on data and metadata<Checksumming>` (crc32c, xxhash, sha256, blake2b)
* :doc:`Compression (ZLIB, LZO, ZSTD), heuristics<Compression>`
* :doc:`Integrated multiple device support<Volume-management>`:
* 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<Trim>` for reporting free blocks for
reuse and optimizations (e.g. avoiding unnecessary seek optimizations,
sending writes in clusters.
* :doc:`Background scrub<Scrub>` process for finding and repairing errors of files with redundant copies
* :doc:`Online filesystem defragmentation<Defragmentation>`
* :doc:`Offline filesystem check<btrfs-check>`
* :doc:`In-place conversion<Convert>` of existing ext2/3/4 and reiserfs filesystems
* :doc:`Seeding device.<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<Qgroups>` support
* :doc:`Send/receive of subvolume changes<Send-receive>`, efficient
incremental filesystem mirroring and backup
* :doc:`Batch, or out-of-band deduplication<Deduplication>` (happens after writes, not during)
* :doc:`Swapfile support<Swapfile>`
* :doc:`Tree-checker<Tree-checker>`, post-read and pre-write metadata verification
* :doc:`Zoned mode support<Zoned-mode>` (SMR/ZBC/ZNS friendly allocation, emulated on non-zoned devices)