<div dir="ltr">Hi Sundar,<div><br></div><div>Have you considered writing your own custom filter for hosts as described in [1] ?</div><div><br></div><div>Thanks,</div><div>Sourabh</div><div><br></div><div>[1] <a href="http://docs.openstack.org/developer/nova/devref/filter_scheduler.html">http://docs.openstack.org/developer/nova/devref/filter_scheduler.html</a></div><div><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Aug 31, 2015 at 9:58 AM, Sundar Nadathur <span dir="ltr"><<a href="mailto:snadathu@altera.com" target="_blank">snadathu@altera.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">





<div lang="EN-US" link="blue" vlink="purple">
<div>
<p class="MsoNormal"><span style="color:rgb(31,73,125)">Hi all,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:rgb(31,73,125)">    I’d appreciate if the experts can point me in one direction or another. If there are existing mechanisms, we don’t want to reinvent the wheel. If there aren’t, I’d be interested in exploring clean ways to
 extend and enhance nova scheduling. <u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="color:rgb(31,73,125)">Thank you very much.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:rgb(31,73,125)"><u></u> <u></u></span></p>
<div>
<p class="MsoNormal"><span style="color:rgb(31,73,125)">Cheers,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:rgb(31,73,125)">Sundar<u></u><u></u></span></p>
</div>
<p class="MsoNormal"><span style="color:rgb(31,73,125)"><u></u> <u></u></span></p>
<div>
<div style="border-style:solid none none;border-top-color:rgb(181,196,223);border-top-width:1pt;padding:3pt 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10pt;font-family:Tahoma,sans-serif">From:</span></b><span style="font-size:10pt;font-family:Tahoma,sans-serif"> Sundar Nadathur
<br>
<b>Sent:</b> Monday, August 24, 2015 10:48 PM<br>
<b>To:</b> '<a href="mailto:openstack-dev@lists.openstack.org" target="_blank">openstack-dev@lists.openstack.org</a>'<br>
<b>Subject:</b> [Nova] Placing VMs based on multiple criteria<u></u><u></u></span></p>
</div>
</div><div><div class="h5">
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Hi,<u></u><u></u></p>
<p class="MsoNormal">   Please advise me whether the following scenario requires changes to nova scheduler or can be handled with existing scheduling mechanisms.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I have a type of PCIe device (not necessarily a NIC or HBA). The device can be configured with a set of user-defined resources – say A, B, C. Each resource can be shared between a limited number of VMs -- say A can be shared among 4 VMs,
 B among 8, etc. A VM image may request the need for a specific list of features, say A and B. Then I want to place the VM on a host according to these criteria:<u></u><u></u></p>
<p><u></u><span>1.<span style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7pt;line-height:normal;font-family:'Times New Roman'">      
</span></span><u></u>If there are hosts with a PCIe device that already has A and B configured, and has a free instance each of A and B, the VM  must be placed on one of those hosts.<u></u><u></u></p>
<p><u></u><span>2.<span style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7pt;line-height:normal;font-family:'Times New Roman'">      
</span></span><u></u>Otherwise, find a host with this PCIe device that can be configured with one instance each of A and B.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">It is not clear that this can be handled through 3<sup>rd</sup> party metadata. Suppose we create host aggregates with properties like “resource=A” and “resource=B”, and also associate properties like “resource=A” with VM images. (A and
 B are UUIDs representing user-defined resources.) <span style="color:rgb(31,73,125)">Perhaps
</span>Nova scheduler can match the properties to select host aggregates that have all properties that the VM requires. However:<u></u><u></u></p>
<p><u></u><span>a.<span style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7pt;line-height:normal;font-family:'Times New Roman'">      
</span></span><u></u>This would not be dynamic (i.e. track the free instances of each resource), and<u></u><u></u></p>
<p><u></u><span>b.<span style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7pt;line-height:normal;font-family:'Times New Roman'">     
</span></span><u></u>This addresses only #1 above.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Is there any way I can leverage existing scheduler mechanisms to  solve this VM placement problem? If not, do you have thoughts/comments on what changes are needed?<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Thanks, and apologies in advance if I am not clear. Please feel free to ask questions.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Cheers,<u></u><u></u></p>
<p class="MsoNormal">Sundar<span style="color:rgb(31,73,125)"><u></u><u></u></span></p>
</div></div></div><div><div class="h5">
<br>
<hr>
<font face="Arial" color="Black" size="2"><br>
Confidentiality Notice.<br>
This message may contain information that is confidential or otherwise protected from disclosure. If you are not the intended recipient, you are hereby notified that any use, disclosure, dissemination, distribution, or copying of this message, or any attachments,
 is strictly prohibited. If you have received this message in error, please advise the sender by reply e-mail, and delete the message and any attachments. Thank you.<br>
</font>
</div></div></div>

<br>__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br></div></div></div>