<div dir="ltr"><div>Thank you for that insight, I appreciate it.</div><div><br></div>Can you elaborate on your concern related to running out of space?<br><br>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? <span style="font-size:small;text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">W</span>ould it not be safe on the block IO level?<br><br>> <span style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">No idea </span><span style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">what, if any, filesystem you intend to run but XFS has the ability to </span><span style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">discontinue retries for certain error conditions.  I highly recommend </span><span style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">you enable that for ENOSPC, otherwise you _will_ see the kernel block </span><span style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">indefinitely in XFS if thinp runs out of space underneath XFS.<br><br>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.</span></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jul 23, 2018 at 7:07 AM, Mike Snitzer <span dir="ltr"><<a href="mailto:snitzer@redhat.com" target="_blank">snitzer@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Mon, Jul 23 2018 at 10:00am -0400,<br>
Mike Snitzer <<a href="mailto:snitzer@redhat.com">snitzer@redhat.com</a>> wrote:<br>
<br>
> On Mon, Jul 23 2018 at  1:06am -0400,<br>
> Drew Hastings <<a href="mailto:dhastings@crucialwebhost.com">dhastings@crucialwebhost.com</a>> wrote:<br>
> <br>
> >    I love all of the work you guys do @dm-devel . Thanks for taking the time<br>
> >    to read this.<br>
> >    I would like to use thin provisioning targets in production, but it's hard<br>
> >    to ignore the warning in the documentation. It seems like, with an<br>
> >    understanding of how thin provisioning works, it should be safe to use.<br>
> <br>
> It is stale.  I just committed this update that'll go upstream for the<br>
> 4.19 merge window, see:<br>
> <a href="https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=dm-4.19&id=f88a3f746ff0047c92e8312646247b08264daf35" rel="noreferrer" target="_blank">https://git.kernel.org/pub/<wbr>scm/linux/kernel/git/device-<wbr>mapper/linux-dm.git/commit/?h=<wbr>dm-4.19&id=<wbr>f88a3f746ff0047c92e8312646247b<wbr>08264daf35</a><br>
> <br>
> >    If the metadata and data device for the thin pool have enough space and<br>
> >    are both error free, the kernel has plenty of free RAM, block sizes are<br>
> >    set large enough to never run into performance issues (64 MiB), all of the<br>
> >    underlying hardware is redundant on high performance NVME (no worries of<br>
> >    fragmentation of data volume)... is it still unsafe for production? If so,<br>
> >    can you shed some light on why that is?<br>
> <br>
> It is safe.  You do just want to make sure to not run out of space.  We<br>
> now handle that event favorably but it is best to tempt fate.<br>
<br>
</span>I meant: "... but it is best to _not_ tempt fate."<br>
</blockquote></div><br></div>