On Mon, Aug 23, 2021 at 02:57:01PM +1000, Chris Dunlop wrote: > Hi, > > On Thu, Jan 25, 2018 at 04:51:44PM +1100, Dave Chinner wrote: > > The video from my talk at LCA 2018 yesterday about the XFS subvolume and > > snapshot support I'm working on has been uploaded and can be found > > here: > > > > https://www.youtube.com/watch?v=wG8FUvSGROw > > Just out of curiosity... is anything still happening in this area, and if > so, is there anywhere we can look to get a feel for the current state of > affairs? It's at the back of the queue at the moment. There's not enough time and resources available to do everything we want to do - just look at the review backlog we already have... That said, this was largely an experiment to see how easily we could retrofit subvolumes to XFS, and whether there was a compelling reason for adding them. While there are some management benefits to integrating reflink based subvolumes into XFS, the performance and scalability just isn't there compared to production usage of things like dm-snapshot. O(1) snapshot time makes a huge difference to system performance, but reflink-based snapshots are O(N), not O(1). Hence snapshots run at about 100k extents/sec so a subvolume with a few million extents will take 10s of seconds to run a snapshot. During this time, the subvolume is completely frozen and you can't read from or write to it.... And that's really the unsolvable problem with a reflink based snapshot mechanism. Unless there is some other versioning mechanism in the filesystem metadata, we have to mark all the extents in the subvolume as shared so the next write will COW them correctly. XFS does not have that "some other mechanism" like btrfs (COW metadata) or bcachefs (snapshot epoch in btree keys), so it will never be able to solve this problem effectively. That's not to say we'll never add subvolumes and snapshots to XFS, but because it isn't compellingly better than existing mechanisms for snapshotting XFS filesystems it really isn't a priority. As such, if you want a performant, scalable, robust snapshotting subvolume capable filesystem, bcachefs is the direction you should be looking. All of the benefits of integrated subvolume snapshots, yet none of the fundamental architectural deficiencies and design flaws that limit the practical usability of btrfs for many important workloads. Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx