<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, May 3, 2016 at 5:45 AM, Zdenek Kabelac <span dir="ltr"><<a href="mailto:zkabelac@redhat.com" target="_blank">zkabelac@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 2.5.2016 16:32, Mark Mielke wrote:</span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
    If you seek for a filesystem with over-provisioning - look at btrfs, zfs<br>
    and other variants...<br>
<br>
I have to say that I am disappointed with this view, particularly if this is a<br>
view held by Red Hat. To me this represents a misunderstanding of the purpose<br>
</span></blockquote>
<br>
So first - this is  AMAZING deduction you've just shown.<br>
<br>
You've cut sentence out of the middle of a thread and used as kind of evidence<br>
that Red Hat is suggesting usage of ZFS, Btrfs  - sorry man - read this thread again...<br></blockquote><div><br></div><div>My intent wasn't to cut a sentence in the middle. I responded to the each sentence in its place. I think it really comes down to this:</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
This seems to be a crux of this debate between you and the other people. You<br>
think the block storage should be as transparent as possible, as if the<br>
storage was not thin. Others, including me, think that this theory is<br>
impractical, as it leads to edge cases where the file system could choose to<br>
</blockquote>
<br></span>
It's purely practical and it's the 'crucial' difference between<br>
<br>
i.e. thin+XFS/ext4     and   BTRFS.<span class="HOEnZb"><font color="#888888"><br>
</font></span></blockquote></div><br><br>I think I captured the crux of this pretty well. If anybody suggests that there could be value to exposing any information related to the nature of the "thinly provisioned block devices", you suggest that the only route forwards here is BTRFS and ZFS. You are saying directly and indirectly, that anybody who disagrees with you should switch to what you feel are the only solutions that are in this space, and that LVM should never be in this space.</div><div class="gmail_extra"><br></div><div class="gmail_extra">I think I understand your perspective. However, I don't agree with it. I don't agree that the best solution is one that fails at the last instant with ENOSPC and/or for the file system to become read-only. I think there is a whole lot of grey possibilities between the polar extremes of "BTRFS/ZFS" vs "thin+XFS/ext4 with last instant failure".</div><div class="gmail_extra"><br></div><div class="gmail_extra">What started me on this list was the CYA mandatory warning about over provisioning that I think is inappropriate, and causing us tooling problems. But seeing the debate unfold, and having seen some related failures in the Docker LVM thin pool case where the system may completely lock up, I have a conclusion that this type of failure represents a fundamental difference in opinion around what thin volumes are for, and what place they have. As I see them as highly valuable for various reasons including Docker image layers (something Red Hat appears to agree with, having targeted LVM thinp instead of the union file systems), and the snapshot use cases I presented prior, I think there must be a way to avoid the worst scenarios, if the right people consider all the options, and don't write off options prematurely due to preconceived notions about what is and what is not appropriate in terms of communication of information between system layers.</div><div class="gmail_extra"><br></div><div class="gmail_extra">There are many types of information that *are* passed from the block device layer to the file system layer. I don't see why awareness of thin volumes, should not be one of them.</div><div class="gmail_extra"><br></div><div class="gmail_extra">For example, and I'm not pretending this is the best idea that should be implemented, but just to see where the discussion might lead:</div><div class="gmail_extra"><br></div><div class="gmail_extra">The Linux kernel needs to deal with problems such as memory being swapped out due to memory pressures. In various cases, it is dangerous to swap memory out. The memory can be protected from being swapped out where required using various technique such as pinning pages. This takes up extra RAM, but ensures that the memory can be safely accessed and written as required. If the file system has particular areas of importance that need to be writable to prevent file system failure, perhaps the file system should have a way of communicating this to the volume layer. The naive approach here might be to preallocate these critical blocks before proceeding with any updates to these blocks, such that the failure situations can all be "safe" situations, where ENOSPC can be returned without a danger of the file system locking up or going read-only.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Or, maybe I am out of my depth, and this is crazy talk... :-)</div><div class="gmail_extra"><br></div><div class="gmail_extra">(Personally, I'm not really needing a "df" to approximate available storage... I just don't want the system to fail badly in the "out of disk space" scenario... I can't speak for others, though... I do *not* want BTRFS/ZFS... I just want a sanely behaving LVM + XFS...)</div><div class="gmail_extra"><br></div><div class="gmail_extra"><div><br></div>-- <br><div class="gmail_signature">Mark Mielke <<a href="mailto:mark.mielke@gmail.com" target="_blank">mark.mielke@gmail.com</a>><br><br></div>
</div></div>