<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from text --><style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<div>
<div id="x_compose-container" itemscope="" itemtype="https://schema.org/EmailMessage" style="direction:ltr">
<span itemprop="creator" itemscope="" itemtype="https://schema.org/Organization"><span itemprop="name"></span></span>
<div>
<div style="direction:ltr">Hello David,</div>
<div><br>
</div>
<div style="direction:ltr">Yes I can specify most of the details in the lvcreate, however it is sad that I have to. There are multiple abstraction layers in lvm and I cannot set up a volume group which uses a allocation policy to distribute the volumes over
 all PV and stripe by default. And it would be even harder when striping to a subset of volumes.</div>
<div><br>
</div>
<div style="direction:ltr">I have to make changes to the client code (in my case Nova's lvm driver) to get a better result. And if I would want to distribute the start segment over physical volumes I would have to add code to actually enumerate them and pick
 one at random. I had hoped to avoid this. (The next step would be to write DM tables myself...)</div>
<div><br>
</div>
<div style="direction:ltr">In the Nova case the modules are very dynamically created and destroyed, so hand tuning is not an option here.</div>
<div><br>
</div>
<div class="x_acompli_signature">Gruss<br>
Bernd<br>
-- <br>
<a dir="ltr" href="http://bernd.eckenfels.net">http://bernd.eckenfels.net</a></div>
</div>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="x_divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> David Teigland <teigland@redhat.com><br>
<b>Sent:</b> Wednesday, May 10, 2017 6:58:40 PM<br>
<b>To:</b> Bernd<br>
<b>Cc:</b> linux-lvm@redhat.com<br>
<b>Subject:</b> Re: [linux-lvm] lvm/openstack: stripe all volumes and distribute them round robin on PVs</font>
<div> </div>
</div>
</div>
<font size="2"><span style="font-size:10pt;">
<div class="PlainText">On Wed, May 10, 2017 at 01:13:37PM +0200, Bernd wrote:<br>
> Hello,<br>
> <br>
> when using local lvm2 logical volumes for OpenStack Nova ephemeral pool<br>
> then the created logical volumes are linear (not striped) and what is worse<br>
> than that, all volumes are allocated on the same first physical volume<br>
> (until it is filled up).<br>
> <br>
> I made a ServerFault question about that:<br>
> <br>
> <a href="https://serverfault.com/questions/849088/automatically-distribute-lvm-stripes-for-specific-lvm2-vg-on-linux/849255#849255">
https://serverfault.com/questions/849088/automatically-distribute-lvm-stripes-for-specific-lvm2-vg-on-linux/849255#849255</a><br>
> <br>
> It was suggested that raid_stripe_all_devices should help (to turn on<br>
> striping by default), but it did not. So I went ahead and patched the<br>
> lvm.py of nova to turn the striping on. However I still wonder if there is<br>
> a lvm option (allocation policy for that).<br>
> <br>
> Besides that, it looks like it is still creating the first stripe on the<br>
> first device. It would make more sense to have it (even in the linear case)<br>
> to round robin the LVs. Because first of all it might be the most busy part<br>
> of the volume and secondly it helps for keeping room for expanding volumes.<br>
> <br>
> Is there anything planned in this direction?<br>
<br>
If you're concerned with placement of LVs on PVs, I'd probably skip<br>
striping and add some logic specifying different PVs directly:<br>
<br>
lvcreate -n name -L size VG PV ...<br>
<br>
means the LV will be created using only the specified PVs.<br>
<br>
</div>
</span></font>
</body>
</html>