<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, May 22, 2017 at 10:25 AM, Mark Constable <span dir="ltr"><<a href="mailto:markc@renta.net" target="_blank">markc@renta.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-">On 5/22/17 12:28 PM, Fajar A. Nugraha wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Yes but I also want the current disk usage to be available inside<br>
the container so that, for instance, df returns realistic results.<br>
</blockquote>
<br>
Have you tried lxd with zfs?<br>
</blockquote>
<br></span>
Yes, zfs (pool per container) is what I am currently using here...<br>
<br>
<a href="https://raw.githubusercontent.com/netserva/sh/master/bin/setup-lxd" rel="noreferrer" target="_blank">https://raw.githubusercontent.<wbr>com/netserva/sh/master/bin/set<wbr>up-lxd</a><span class="gmail-"><br>
<br></span></blockquote><div><br></div><div><br></div><div>Ah, so you create a new storage profile, with its own pool, for each plan?<br><br>from your script:</div><div><div>lxc storage create "zfs$_HOST$VSIZE" zfs size=$VSIZE<br></div></div><div><br></div><div>That would create a zfs pool backed by loopback file on /var/lib/lxd/disks/ . NOT a good setup, performance-wise.</div><div><br></div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Did you mean zfs dataset?<br>
</blockquote>
<br></span>
Is that the same thing as a "volume" (as seen by lxd) ?<br>
<br></blockquote><div><br></div><div>zfs dataset is the equivalent of btrfs subvolume</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Using a default zfs pool, and having separate DATASET (or to be more<br>
accurate, filesystem) per container, is the default setup. Which<br>
would provide correct disk usage statistic (e.g. for "df" and such).<br>
</blockquote>
<br></span>
I did try something with "volumes" but I got the impression it did not<br>
seem to provide correct "df"</blockquote><div><br></div><div>subvolume with btrfs does not provide correct df.</div><div>zfs dataset provide correct df.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> results but I was floundering around just<br>
trying to get anything to work (with df) at the time.<span class="gmail-"><br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
And it's perfectly normal to have several hundred or thousand dataset<br>
(which would include snapshots as well) on a single pool.<br>
</blockquote>
<br></span>
And I'd imagine copying and moving containers would make more sense.<span class="gmail-"><br>
<br></span></blockquote><div><br></div><div>Correct.</div><div>Simply create ONE storage pool, the default (part of lxd init). If you want to create multiple profile, attach that same pool to the profile. Then for each container, lxd will automatically create a dataset for that container. And when there's only one pool, container creation (from image), snapshot, and copy would be instaneous.</div><div><br></div><div>If you want better performance, create the pool manually using block device (preferably disk/partition, but an LV should also work), and pass the name of the pool to lxd init.</div><div><br></div><div>-- </div><div>Fajar</div></div></div></div>