xfs
[Top] [All Lists]

Re: [RFC] allow enabling reflinks at runtime

To: Christoph Hellwig <hch@xxxxxx>
Subject: Re: [RFC] allow enabling reflinks at runtime
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Fri, 10 Jun 2016 09:33:44 +1000
Cc: darrick.wong@xxxxxxxxxx, xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <20160608071130.GB24663@xxxxxx>
References: <1464877150-20457-1-git-send-email-hch@xxxxxx> <20160602225415.GP12670@dastard> <20160608071130.GB24663@xxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
On Wed, Jun 08, 2016 at 09:11:30AM +0200, Christoph Hellwig wrote:
> On Fri, Jun 03, 2016 at 08:54:15AM +1000, Dave Chinner wrote:
> > On Thu, Jun 02, 2016 at 04:19:07PM +0200, Christoph Hellwig wrote:
> > > I've had some vocal user requests to allow enabling reflinks at run time,
> > > which happens to be a mostly trivial feature.  The only caveat is that we
> > > need a large enough log size to support the reflink requirements, but for
> > > typical large file systems that's not an issue.
> > 
> > Hmmm - how does this interact with all the rmap code? I was not
> > planning on enabling reflink without rmap and vice versa simply
> > because it makes the validation and testing matrix vastly more
> > complex.
> 
> Uh.  So far I've only been testing pure reflink code, mostly because
> rmap really doesn't buy much for the use case I'm working on.
> Enabling rmap post-mkfs is defintively a different ballpark, and probably
> not worth it even if it would be doable.

Wasn't expecting rmap to ever be dynamically enabled ;)

So ignoring the testing side of things, and looking more at the
implementation of the enabling, I'm not sure I really like the idea
of doing this via a mount option. Because we've got to make
significant additions to the on disk format in each AG, this seems
more like a "growfs style" operation than anything. i.e. lock out
allocation, add all the structures to the AG headers and allocate
all the blocks needed, re-initialise the per-ag structures with all
the necessary info, then switch on the feature bit and commit the
change.

It's probably a little more intricate than doing it at mount time,
but it gets around the fact that users have to add a mount option
and bounce the filesystem to turn on reflinks.
I can see this being much easier than a mount option in some
situations, (e.g. for the root filesystem), and I don't think it's
much harder to test than the mount option (e.g. the way growfs is
tested under stress by xfs/104)...

Your thoughts, Christoph?

Cheers,

Dave.
-- 
Dave Chinner
david@xxxxxxxxxxxxx

<Prev in Thread] Current Thread [Next in Thread>