Thread (11 messages) 11 messages, 5 authors, 2021-08-23

Re: [RFD] XFS: Subvolumes and snapshots....

From: Dave Chinner <david@fromorbit.com>
Date: 2021-08-23 23:12:41

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:
quoted
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@fromorbit.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help