From: Brian Foster <bfoster@redhat.com>
To: Gionatan Danti <g.danti@assyoma.it>
Cc: linux-xfs@vger.kernel.org
Subject: Re: Shutdown filesystem when a thin pool become full
Date: Tue, 20 Jun 2017 13:02:10 -0400 [thread overview]
Message-ID: <20170620170208.GC3348@bfoster.bfoster> (raw)
In-Reply-To: <d30c96bafa9d476e1a381a0aaa1bc285@assyoma.it>
On Tue, Jun 20, 2017 at 05:55:26PM +0200, Gionatan Danti wrote:
> Il 20-06-2017 17:28 Brian Foster ha scritto:
> >
> > FWIW, I played with something like this a while ago. See the following
> > (and its predecessor for a more detailed cover letter):
> >
> > http://oss.sgi.com/pipermail/xfs/2016-April/048166.html
> >
> > You lose some allocation efficiency with this approach because XFS
> > relies on a worst case allocation reservation in dm-thin, but IIRC that
> > only really manifested when the volume was near ENOSPC. If one finds
> > that tradeoff acceptable, I think it's otherwise possible to forward
> > ENOSPC from the the block device earlier than is done currently.
> >
> > Brian
>
> Very informative thread, thanks for linking. From here [1]:
>
> "That just doesn't help us avoid the overprovisioned situation where we
> have data in pagecache and nowhere to write it back to (w/o setting the
> volume read-only). The only way I'm aware of to handle that is to
> account for the space at write time."
>
> I fully understand that: after all, writes sitting in pagecaches are not,
> well, yet written. I can also imagine what profound ramifications would have
> to correctly cover any failed data writeout corner case. What would be a
> great first step, however, is that at the *first* failed data writeout due
> to full thin pool, a ENOSPC (or similar) to be returned to the filesystem.
> Catching this situation, the filesystem can reject any further buffered
> writes until manual intervention.
>
> Well, my main concern is to avoid sunstained writes to a filled pool, surely
> your patch target a whole bigger (and better!) solution.
>
ISTM you might as well write something in userspace that receives a
notification from device-mapper and shuts down or remounts the fs if the
volume has gone inactive or hit a watermark. I don't think we'd bury
anything in XFS that cuts off and then resumes operations based on
underlying device errors like that. That sounds like a very crude
approach with a narrow use case.
That said, I don't think I'd be opposed to something in XFS that
(optionally) shutdown the fs in response to a similar dm notification
provided we know with certainty that the underlying device is inactive
(and that it can be accomplished relatively cleanly).
Brian
> [1] http://oss.sgi.com/pipermail/xfs/2016-April/048378.html
>
> >
> > > >
> > > > I am not really a device-mapper developer and I don't know much about
> > > > its code
> > > > in depth. But, I know it will issue warnings when there isn't more space
> > > > left,
> > > > and you can configure a watermark too, to warn the admin when the space
> > > > used
> > > > reaches that watermark.
> > > >
> > > > By now, I believe the best solution is to have a reasonable watermark
> > > > set on the
> > > > thin device, and the Admin take the appropriate action whenever this
> > > > watermark
> > > > is achieved.
> > >
> > > Yeah, lvmthin *will* return appropriate warnings during pool filling.
> > > However, this require active monitoring which, albeit a great idea
> > > and "the
> > > right thing to do (tm)", it adds complexity and can itself fail. In
> > > recent
> > > enought (experimental) versions, lvmthin can be instructed to execute
> > > specific actions when data allocation is higher than some threshold,
> > > which
> > > somewhat addresses my concerns at the block layer.
> > >
> > > Thank you for your patience and sharing, Carlos.
> > >
> > > --
> > > Danti Gionatan
> > > Supporto Tecnico
> > > Assyoma S.r.l. - www.assyoma.it
> > > email: g.danti@assyoma.it - info@assyoma.it
> > > GPG public key ID: FF5F32A8
> > > --
> > > To unsubscribe from this list: send the line "unsubscribe linux-xfs"
> > > in
> > > the body of a message to majordomo@vger.kernel.org
> > > More majordomo info at http://vger.kernel.org/majordomo-info.html
>
> --
> Danti Gionatan
> Supporto Tecnico
> Assyoma S.r.l. - www.assyoma.it
> email: g.danti@assyoma.it - info@assyoma.it
> GPG public key ID: FF5F32A8
> --
> To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2017-06-20 17:02 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-22 14:25 Shutdown filesystem when a thin pool become full Gionatan Danti
2017-05-22 23:09 ` Carlos Maiolino
2017-05-23 10:56 ` Gionatan Danti
2017-05-23 11:01 ` Gionatan Danti
2017-05-23 12:27 ` Carlos Maiolino
2017-05-23 20:05 ` Gionatan Danti
2017-05-23 21:33 ` Eric Sandeen
2017-05-24 17:52 ` Gionatan Danti
2017-06-13 9:09 ` Gionatan Danti
2017-06-15 11:51 ` Gionatan Danti
2017-06-15 13:14 ` Carlos Maiolino
2017-06-15 14:10 ` Carlos Maiolino
2017-06-15 15:04 ` Gionatan Danti
2017-06-20 10:19 ` Gionatan Danti
2017-06-20 11:05 ` Carlos Maiolino
2017-06-20 15:03 ` Gionatan Danti
2017-06-20 15:28 ` Brian Foster
2017-06-20 15:34 ` Luis R. Rodriguez
2017-06-20 17:01 ` Brian Foster
2017-06-20 15:55 ` Gionatan Danti
2017-06-20 17:02 ` Brian Foster [this message]
2017-06-20 18:43 ` Gionatan Danti
2017-06-21 9:44 ` Carlos Maiolino
2017-06-21 10:39 ` Gionatan Danti
2017-06-21 9:53 ` Brian Foster
2017-05-23 12:11 ` Carlos Maiolino
2017-05-23 13:24 ` Eric Sandeen
2017-05-23 20:23 ` Gionatan Danti
2017-05-24 7:38 ` Carlos Maiolino
2017-05-24 17:50 ` Gionatan Danti
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170620170208.GC3348@bfoster.bfoster \
--to=bfoster@redhat.com \
--cc=g.danti@assyoma.it \
--cc=linux-xfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).