[ ... ] >>> Snapshots work fine with nodatacow, each block gets CoW'ed >>> once when it's first written to, and then goes back to being >>> NOCOW. >>> The only caveat is that you probably want to defrag either >>> once everything has been rewritten, or right after the >>> snapshot.
>> I thought defrag would unshare the reflinks? > Which is exactly why you might want to do it. It will get rid > of the overhead of the single CoW operation, and it will make > sure there is minimal fragmentation. > IOW, when mixing NOCOW and snapshots, you either have to use > extra space, or you deal with performance issues. Aside from > that though, it works just fine and has no special issues as > compared to snapshots without NOCOW. The above illustrates my guess as to why RHEL 7.4 dropped Btrfs support, which is: * RHEL is sold to managers who want to minimize the cost of upgrades and sysadm skills. * Every time a customer creates a ticket, RH profits fall. * RH had adopted 'ext3' because it was an in-place upgrade from 'ext2' and "just worked", 'ext4' because it was an in-place upgrade from 'ext3' and was supposed to "just work", and then was looking at Btrfs as an in-place upgrade from 'ext4', and presumably also a replacement for MD RAID, that would "just work". * 'ext4' (and XFS before that) already created a few years ago trouble because of the 'O_PONIES' controversy. * Not only Btrfs still has "challenges" as to multi-device functionality, and in-place upgrades from 'ext4' have "challenges" too, it has many "special cases" that need skill and discretion to handle, because it tries to cover so many different cases, and the first thing many a RH customer would do is to create a ticket to ask what to do, or how to fix a choice already made. Try to imagine the impact on the RH ticketing system of a switch from 'ext4' to Btrfs, with explanations like the above, about NOCOW, defrag, snapshots, balance, reflinks, and the exact order in which they have to be performed for best results. -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html