As of version 5.0 of the Linux kernel, Btrfs implements the following features:
Mostly self-healing in some configurations due to the nature of copy-on-write
Online defragmentation and an autodefrag mount option
Online volume growth and shrinking
Online block device addition and removal
Online balancing (movement of objects between block devices to balance load)
Offline filesystem check
Online data scrubbing for finding errors and automatically fixing them for files with redundant copies
RAID 0, RAID 1, and RAID 10
Subvolumes (one or more separately mountable filesystem roots within each disk partition)
Transparent compression via zlib, LZO and (since 4.14) ZSTD, configurable per file or volume
Atomic writable (via copy-on-write) or read-only Snapshots of subvolumes
File cloning (copy-on-write on individual files) via cp --reflink <source file> <destination file>[39]
Checksums on data and metadata (CRC-32C)
In-place conversion from ext3/4 to Btrfs (with rollback). This feature regressed around btrfs-progs version 4.0, rewritten from scratch in 4.6.
Union mounting of read-only storage, known as file system seeding (read-only storage used as a copy-on-write backing for a writable Btrfs)
Block discard (reclaims space on some virtualized setups and improves wear leveling on SSDs with TRIM)
Send/receive (saving diffs between snapshots to a binary stream)
Incremental backup
Out-of-band data deduplication (requires userspace tools)
Ability to handle swap files and swap partitions
Comments and Reviews
Was nice as long as it lasted without errors...
...but finally: parent transid verify failed
https://wiki.tnonline.net/w/Btrfs/Parent_Transid_Verify_Failed
Well, yes, write cache was ON (and 10% file loss), so I'd give it another shot but if that fails... I'll be back here with 0 stars.
Still, this FS has it merits, for example checksum, compression, snapshots and other things.
I'd wish that FINALLY one FS would take proper care of bitrot (no, there is none, yet) but it would be about time with drives being 22TB and more...