From: Mike Snitzer <snitzer@redhat.com>
To: Drew Hastings <dhastings@crucialwebhost.com>
Cc: dm-devel@redhat.com
Subject: Re: Is thin provisioning still experimental?
Date: Tue, 7 Aug 2018 17:11:21 -0400 [thread overview]
Message-ID: <20180807211120.GA29735@redhat.com> (raw)
In-Reply-To: <CAN-y+E+9J5w8fx-UYcT9+2SxqFL8nzkn3BYE6cWpW=yP9KdDtA@mail.gmail.com>
[Please don't top-post.. it really compromises the ability to provide
proper context for inlined replies, etc]
On Fri, Aug 03 2018 at 11:13pm -0400,
Drew Hastings <dhastings@crucialwebhost.com> wrote:
> Thank you for that insight, I appreciate it.
> Can you elaborate on your concern related to running out of space?
>
> Assuming the metadata device always has space, is it unsafe to let the the
> data device for the thin pool run out of space if queue_if_no_space is
> set? Would it not be safe on the block IO level?
You definitely want to avoid running out of metadata space. That is one
area where we seem to have some lingering issues (that we're actively
working to find).
But running out of data space isn't a huge problem, especially if you'd
like to queue the IO indefinitely because you're closely administering
the space on your host with the hypervisor that will consume the thinp
devices.
You can configure a timeout for the queuing (after timeout expires the
thin-pool will transition to error_if_no_space mode). It defaults to 60
seconds. But you can also disable the timeout be setting it to 0.
> > No idea what, if any, filesystem you intend to run but XFS has the
> ability to discontinue retries for certain error conditions. I highly
> recommend you enable that for ENOSPC, otherwise you _will_ see the kernel
> block indefinitely in XFS if thinp runs out of space underneath XFS.
>
> My use case involves doing block level IO for virtual machines with KVM...
> so there's virtualization in between the thin device and whatever the VM
> is doing. In that scenario, I would expect the IO requests to just hang
> until the thin pool is provided more space for the data device and queued
> IO from the VM would just wait for that. Maybe what you're describing with
> XFS wouldn't be an issue on that setup, since XFS would be running within
> the VM.
Yes, you can have it hang indefinitely (waiting for thin-pool resize) by
setting the 'no_space_timeout' module paramter for dm-thin-pool to 0,
e.g.:
modprobe dm-thin-pool no_space_timeout=0
or
echo 0 > /sys/module/dm_thin_pool/parameters/no_space_timeout
That just puts more importance on the admin (I assume you) feeding the
thin-pool extra free space as needed.
lvm2 has some pretty robust support for resizing both the thin-pool's
data and metadata devices. Please have a look at the 'lvmthin' manpage
that is provided with a more recent lvm2 package.
Thanks,
Mike
prev parent reply other threads:[~2018-08-07 21:11 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-23 5:06 Is thin provisioning still experimental? Drew Hastings
2018-07-23 14:00 ` Mike Snitzer
2018-07-23 14:07 ` Mike Snitzer
2018-08-04 3:13 ` Drew Hastings
2018-08-07 21:11 ` Mike Snitzer [this message]
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=20180807211120.GA29735@redhat.com \
--to=snitzer@redhat.com \
--cc=dhastings@crucialwebhost.com \
--cc=dm-devel@redhat.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.