[ ... ]
>>> 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html