A lot of OLD claims about Btrfs being "experimental" and "unstable" are floating around. The Btrfs Status page is here. On it one will note that only the RAID56 code is unstable. The rest is either "mostly OK" or "OK".
Performance | ||
Trim (aka. discard) | OK | fstrim and mounted with -o discard (has performance implications) |
Autodefrag | OK | |
Defrag | mostly OK | extents get unshared (see below) |
Compression & deduplication | ||
Compression | mostly OK | (needs verification and source) auto-repair and compression may crash |
Out-of-band dedupe | mostly OK | performance issues |
File range cloning | mostly OK | (reflink), heavily referenced extents have a noticeable performance hit |
Reliabillity | ||
Auto-repair | OK | automatically repair from a correct spare copy if possible (dup, raid1, raid10) |
Scrub | OK | |
Scrub + RAID56 | Unstable | will verify but not repair |
nodatacow | OK | (see below) |
Device replace | mostly OK | gets stuck on devices with bad sectors |
Balance | OK | |
Block group profile | ||
Single (block group profile) | OK | |
DUP (block group profile) | OK | |
RAID0 | OK | |
RAID1 | mostly OK | Needs at least two available devices always. Can get stuck in irreversible read-only mode if only one device is present.[1] [2] |
RAID10 | mostly OK | Needs to be able to create two copies always. Can get stuck in irreversible read-only mode if only one copy can be made.[3] [4] |
RAID56 | Unstable | write hole still exists, parity not checksummed |
Mixed block groups | OK | see documentation |
Administration | ||
Filesystem resize | OK | shrink, grow |
Offline UUID change | OK | |
Subvolumes, snapshots | OK | |
Send | OK | corner cases may still exist |
Receive | OK | |
Seeding | OK | should be better documented |
Quotas, qgroups | mostly OK | |
Misc | ||
Free space tree | mostly OK | see below |
no-holes | OK | see documentation for compatibility |
skinny-metadata | OK | see documentation for compatibility |
extended-refs | OK | see documentation for compatibility |
Comment