<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
Hi all,
<div><br>
</div>
<div>Responses inline.</div>
<div><br>
<div>
<div>On Dec 16, 2014, at 10:57 PM, <<a href="mailto:ruby.krishnaswamy@orange.com">ruby.krishnaswamy@orange.com</a>> <<a href="mailto:ruby.krishnaswamy@orange.com">ruby.krishnaswamy@orange.com</a>> wrote:</div>
<br class="Apple-interchange-newline">
<blockquote type="cite">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:36.0pt;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
span.EmailStyle17
{mso-style-type:personal-reply;
font-family:"Arial","sans-serif";
color:black;
font-weight:normal;
font-style:normal;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:546570714;
mso-list-type:hybrid;
mso-list-template-ids:1265507364 -1926709748 67895299 67895301 67895297 67895299 67895301 67895297 67895299 67895301;}
@list l0:level1
{mso-level-start-at:4;
mso-level-number-format:bullet;
mso-level-text:-;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:53.25pt;
text-indent:-18.0pt;
font-family:"Arial","sans-serif";
mso-fareast-font-family:Calibri;}
@list l0:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:89.25pt;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l0:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:125.25pt;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l0:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:161.25pt;
text-indent:-18.0pt;
font-family:Symbol;}
@list l0:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:197.25pt;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l0:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:233.25pt;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l0:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:269.25pt;
text-indent:-18.0pt;
font-family:Symbol;}
@list l0:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:305.25pt;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l0:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:341.25pt;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l1
{mso-list-id:905146871;
mso-list-type:hybrid;
mso-list-template-ids:-1470047962 -1000336618 67895299 67895301 67895297 67895299 67895301 67895297 67895299 67895301;}
@list l1:level1
{mso-level-start-at:2;
mso-level-number-format:bullet;
mso-level-text:\F0F0;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:53.25pt;
text-indent:-18.0pt;
font-family:Wingdings;
mso-fareast-font-family:Calibri;
mso-bidi-font-family:"Times New Roman";}
@list l1:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:89.25pt;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l1:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:125.25pt;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l1:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:161.25pt;
text-indent:-18.0pt;
font-family:Symbol;}
@list l1:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:197.25pt;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l1:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:233.25pt;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l1:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:269.25pt;
text-indent:-18.0pt;
font-family:Symbol;}
@list l1:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:305.25pt;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l1:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:341.25pt;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l2
{mso-list-id:1136878557;
mso-list-type:hybrid;
mso-list-template-ids:2103221908 67895313 67895321 67895323 67895311 67895321 67895323 67895311 67895321 67895323;}
@list l2:level1
{mso-level-text:"%1\)";
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l2:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l2:level3
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l2:level4
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l2:level5
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l2:level6
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l2:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l2:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l2:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div lang="FR" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;">Hi Tim & All<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;"> </span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;">@Tim: I did not reply to openstack-dev. Do you think we could have an openstack list specific for “congress” to which anybody may subscribe?<o:p></o:p></span></p>
<p class="MsoNormal"></p>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>Sending to openstack-dev is the right thing, as long as we put [Congress] in the subject. Everyone I know sets up filters on openstack-dev so they only get the mail they care about. I think you’re the only one in the group who isn’t subscribed to that
list.</div>
<br>
<blockquote type="cite">
<div lang="FR" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;"> </span></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt;mso-list:l2 level1 lfo1"><!--[if !supportLists]--><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;"><span style="mso-list:Ignore">1)<span style="font:7.0pt "Times New Roman"">
</span></span></span><!--[endif]--><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;">Enforcement:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;"> By this we mean “how will the actions computed by the policy engine be executed by the concerned OpenStack functional module”.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;">
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;"> </span></p>
<p class="MsoNormal" style="text-indent:18.0pt"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;"> In this case, it is better to first work this out for a “simpler” case, e.g. your running example concerning the network/groups.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;"> Note: some actions concern only some data base (e.g. insert the user within some group).<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;"> <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;"> </span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-bottom:12.0pt;text-indent:-18.0pt;mso-list:l2 level1 lfo1">
<!--[if !supportLists]--><span lang="EN-US"><span style="mso-list:Ignore">2)<span style="font:7.0pt "Times New Roman"">
</span></span></span><!--[endif]--><span lang="EN-US">From Prabhakar’s mail<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-bottom:12.0pt"><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial","sans-serif"">“Enforcement. That is with a large number of constraints in place for placement and</span><span lang="EN-US">
<br>
</span><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial","sans-serif"">scheduling, how does the policy engine communicate and enforce the placement
</span><span lang="EN-US"><br>
</span><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial","sans-serif"">constraints to nova scheduler.</span><span lang="EN-US">
</span>“<o:p></o:p></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: Arial, sans-serif;">
</span><span style="font-size: 10pt; font-family: Arial, sans-serif;"> <span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;"> Nova scheduler (current): It assigns VMs to servers based on the policy set by the administrator (through filters and host aggregates).
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;">
<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:106.2pt;text-indent:35.4pt"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;"> The administrator also configures a scheduling heuristic (implemented as a driver), for example “round-robin” driver.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;"> Then the computed assignment is sent back to the requestor (API server) that interacts with nova-compute to provision
the VM. <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;"> The current nova-scheduler has another function: It updates the allocation status of each compute node on the DB
(through another indirection called nova-conductor)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;"> </span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;"> So it is correct to re-interpret your statement as follows:<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:53.25pt;text-indent:-18.0pt;mso-list:l0 level1 lfo3">
<!--[if !supportLists]--><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;"><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman"">
</span></span></span><!--[endif]--><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;">What is the entity with which the policy engine interacts for either proactive or reactive placement management?<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:53.25pt;text-indent:-18.0pt;mso-list:l0 level1 lfo3">
<!--[if !supportLists]--><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;"><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman"">
</span></span></span><!--[endif]--><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;">How will the output from the policy engine (for example the placement matrix) be communicated back?<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:89.25pt;text-indent:-18.0pt;mso-list:l0 level2 lfo3">
<!--[if !supportLists]--><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New';"><span style="mso-list:Ignore">o<span style="font:7.0pt "Times New Roman"">
</span></span></span><!--[endif]--><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;">Proactive: this gives the mapping of VM to host<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:89.25pt;text-indent:-18.0pt;mso-list:l0 level2 lfo3">
<!--[if !supportLists]--><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New';"><span style="mso-list:Ignore">o<span style="font:7.0pt "Times New Roman"">
</span></span></span><!--[endif]--><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;">Reactive: this gives the new mapping of running VMs to hosts<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:53.25pt;text-indent:-18.0pt;mso-list:l0 level1 lfo3">
<!--[if !supportLists]--><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;"><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman"">
</span></span></span><!--[endif]--><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;">How starting from the placement matrix, the correct migration plan will be executed? (for reactive case)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;"> </span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;"> </span></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt;mso-list:l2 level1 lfo1"><!--[if !supportLists]--><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;"><span style="mso-list:Ignore">3)<span style="font:7.0pt "Times New Roman"">
</span></span></span><!--[endif]--><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;">Currently openstack does not have “automated management of reactive placement”: Hence if the policy engine is used for reactive placement, then there
is a need for another “orchestrator” that can interpret the new proposed placement configuration (mapping of VM to servers) and execute the reconfiguration workflow.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;"> </span></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt;mso-list:l2 level1 lfo1"><!--[if !supportLists]--><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;"><span style="mso-list:Ignore">4)<span style="font:7.0pt "Times New Roman"">
</span></span></span><!--[endif]--><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;">So with a policy-based “placement engine” that is integrated with external solvers, then this engine will replace nova-scheduler?<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;">Could we converge on this?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;"> </span></p>
<div><br>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>The notes from Yathiraj say that there is already a policy-based Nova scheduler we can use. I suggest we look into that. It could potentially simplify our problem to the point where we need only figure out how to convert a fragment of the Congress policy
language into their policy language. But those of you who are experts in placement will know better.</div>
<div><br>
</div>
<div> <span style="font-family: Calibri, sans-serif; font-size: 14px;"> </span><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_stackforge_nova-2Dsolver-2Dscheduler&d=AAMGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=B6BWd4kFfgOzAREgThxkmTZKy7dDXE2-eBAmL0PBK7s&m=gSzCqpS6tRMB8r5xNbeWoNcpobYiFYvOFpo3QBmvm0M&s=mdMcHh7nMTJv8PmY0i8NpQXP9_gpUpI3gxEec6zyt7A&e=" style="font-family: Calibri, sans-serif; font-size: 14px;">https://github.com/stackforge/nova-solver-scheduler</a><span style="font-family: Calibri, sans-serif; font-size: 14px;"> </span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: 14px;"><br>
</span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: 14px;">Tim</span></div>
<br>
<blockquote type="cite">
<div lang="FR" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;">
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;">Regards<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: Arial, sans-serif;">Ruby<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: Arial, sans-serif;"> </span></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">De :</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Tim Hinrichs [<a href="mailto:thinrichs@vmware.com">mailto:thinrichs@vmware.com</a>]
<br>
<b>Envoyé :</b> mardi 16 décembre 2014 19:25<br>
<b>À :</b> Prabhakar Kudva<br>
<b>Cc :</b> KRISHNASWAMY Ruby IMT/OLPS; Ramki Krishnan (<a href="mailto:ramk@Brocade.com">ramk@Brocade.com</a>); Gokul B Kandiraju; openstack-dev<br>
<b>Objet :</b> [Congress] Re: Placement and Scheduling via Policy<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[Adding openstack-dev to this thread. For those of you just joining… We started kicking around ideas for how we might integrate a special-purpose VM placement engine into Congress.]
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Kudva: responses inline.<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Dec 16, 2014, at 6:25 AM, Prabhakar Kudva <<a href="mailto:kudva@us.ibm.com">kudva@us.ibm.com</a>> wrote:<o:p></o:p></p>
</div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">Hi,
</span><br>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">I am very interested in this.</span>
<br>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">So, it looks like there are two parts to this:</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">1. Policy analysis when there are a significant mix of logical and builtin predicates (i.e.,</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">runtime should identify a solution space when there are arithmetic operators). This will</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">require linear programming/ILP type solvers. There might be a need to have a function</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">in runtime.py that specifically deals with this (Tim?)</span>
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I think it’s right that we expect there to be a mix of builtins and standard predicates. But what we’re considering here is having the linear solver be treated as if it were a domain-specific policy engine. So that solver wouldn’t be
embedded into the runtime.py necessarily. Rather, we’d delegate part of the policy to that domain-specific policy engine.<o:p></o:p></p>
</div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">2. Enforcement. That is with a large number of constraints in place for placement and</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">scheduling, how does the policy engine communicate and enforce the placement
</span><br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">constraints to nova scheduler.</span>
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I would imagine that we could delegate either enforcement or monitoring or both. Eventually we want enforcement here, but monitoring could be useful too.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">And yes you’re asking the right questions. I was trying to break the problem down into pieces in my bullet (1) below. But I think there is significant overlap in the questions we need to answer whether we’re delegating monitoring or enforcement.<o:p></o:p></p>
</div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">Both of these require some form of mathematical analysis.</span>
<br>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">Would be happy and interested to discuss more on these lines.</span>
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Maybe take a look at how I tried to breakdown the problem into separate questions in bullet (1) below and see if that makes sense.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Tim<o:p></o:p></p>
</div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">Prabhakar</span>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<span style="font-size:7.5pt;font-family:"Arial","sans-serif";color:#5F5F5F">From: </span><span style="font-size:7.5pt;font-family:"Arial","sans-serif"">Tim Hinrichs <<a href="mailto:thinrichs@vmware.com">thinrichs@vmware.com</a>></span>
<br>
<span style="font-size:7.5pt;font-family:"Arial","sans-serif";color:#5F5F5F">To: </span><span style="font-size:7.5pt;font-family:"Arial","sans-serif"">"<a href="mailto:ruby.krishnaswamy@orange.com">ruby.krishnaswamy@orange.com</a>" <<a href="mailto:ruby.krishnaswamy@orange.com">ruby.krishnaswamy@orange.com</a>></span>
<br>
<span style="font-size:7.5pt;font-family:"Arial","sans-serif";color:#5F5F5F">Cc: </span><span style="font-size:7.5pt;font-family:"Arial","sans-serif"">"Ramki Krishnan (<a href="mailto:ramk@Brocade.com">ramk@Brocade.com</a>)" <<a href="mailto:ramk@Brocade.com">ramk@Brocade.com</a>>,
Gokul B Kandiraju/Watson/IBM@IBMUS, Prabhakar Kudva/Watson/IBM@IBMUS</span> <br>
<span style="font-size:7.5pt;font-family:"Arial","sans-serif";color:#5F5F5F">Date: </span><span style="font-size:7.5pt;font-family:"Arial","sans-serif"">12/15/2014 12:09 PM</span>
<br>
<span style="font-size:7.5pt;font-family:"Arial","sans-serif";color:#5F5F5F">Subject: </span><span style="font-size:7.5pt;font-family:"Arial","sans-serif"">Re: Placement and Scheduling via Policy</span>
<o:p></o:p></p>
<div class="MsoNormal" align="center" style="text-align:center">
<hr size="2" width="100%" noshade="" style="color:#A0A0A0" align="center">
</div>
<p class="MsoNormal"><br>
<br>
<br>
[Adding Prabhakar and Gokul, in case they are interested.] <br>
<br>
1) Ruby, thinking about the solver as taking 1 matrix of [vm, server] and returning another matrix helps me understand what we’re talking about—thanks. I think you’re right that once we move from placement to optimization problems in general we’ll need to
figure out how to deal with actions. But if it’s a placement-specific policy engine, then we can build VM-migration into it.
<br>
<br>
It seems to me that the only part left is figuring out how to take an arbitrary policy, carve off the placement-relevant portion, and create the inputs the solver needs to generate that new matrix. Some thoughts...
<br>
<br>
- My gut tells me that the placement-solver should basically say “I enforce policies having to do with the schema nova:location.” This way the Congress policy engine knows to give it policies relevant to nova:location (placement). If we do that, I believe
we can carve off the right sub theory. <br>
<br>
- That leaves taking a Datalog policy where we know nova:location is important and converting it to the input language required by a linear solver. We need to remember that the Datalog rules may reference tables from other services like Neutron, Ceilometer,
etc. I think the key will be figuring out what class of policies we can actually do that for reliably. Cool—a concrete question.
<br>
<br>
<br>
2) We can definitely wait until January on this. I’ll be out of touch starting Friday too; it seems we all get back early January, which seems like the right time to resume our discussions. We have some concrete questions to answer, which was what I was hoping
to accomplish before we all went on holiday. <br>
<br>
Happy Holidays! <br>
Tim <br>
<br>
<br>
On Dec 15, 2014, at 5:53 AM, <<a href="mailto:ruby.krishnaswamy@orange.com">ruby.krishnaswamy@orange.com</a>> <<a href="mailto:ruby.krishnaswamy@orange.com">ruby.krishnaswamy@orange.com</a>> wrote:
<br>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">Hi Tim</span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">“Questions:</span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">1) Is there any more data the solver needs? Seems like it needs something about CPU-load for each VM.</span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">2) Which solver should we be using? What does the linear program that we feed it look like? How do we translate the results of the linear solver into a collection of ‘migrate_VM’ API calls?”</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> Question (2) seems to me the first to address, in particular:</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> “how to prepare the input (variables, constraints, goal) and invoke the solver” </span>
<br>
<span style="font-size:10.0pt;font-family:Wingdings">ð </span><span style="font-size:10.0pt"> </span><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">We need rules that represent constraints to give the solver (e.g. a technical constraint that
a VM should not be assigned to more than one server or that more than maximum resource (cpu / mem …) of a server cannot be assigned.</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> “how to translate the results of the linear solver into a collection of API calls”:</span>
<br>
<span style="font-size:10.0pt;font-family:Wingdings">ð </span><span style="font-size:10.0pt"> </span><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">The output from the “solver” will give the new placement plan (respecting the constraints in
input)?</span> <br>
<span style="font-size:10.0pt;font-family:"Courier New"">o </span><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">E.g. a table of [vm, server, true/false]</span>
<br>
<span style="font-size:10.0pt;font-family:Wingdings">ð </span><span style="font-size:10.0pt"> </span><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">Then this depends on how “action” is going to be implemented in Congress (whether an external
solver is used or not)</span> <br>
<span style="font-size:10.0pt;font-family:"Courier New"">o </span><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">Is the action presented as the “final” DB rows that the system must produce as a result of the actions?</span>
<br>
<span style="font-size:10.0pt;font-family:"Courier New"">o </span><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">E.g. if current vm table is [vm3, host4] and the recomputed row says [vm3, host6], then the action is to move vm3 to host6?</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> “how will the solver be invoked”?</span>
<br>
<span style="font-size:10.0pt;font-family:Wingdings">ð </span><span style="font-size:10.0pt"> </span><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">When will the optimization call be invoked?</span>
<br>
<span style="font-size:10.0pt;font-family:Wingdings">ð </span><span style="font-size:10.0pt"> </span><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">Is it “batched”, e.g. periodically invoke Congress to compute new assignments?</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span><br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> Which solver to use:
</span><br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__www.coin-2Dor.org_projects_&d=AAMFAw&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=B6BWd4kFfgOzAREgThxkmTZKy7dDXE2-eBAmL0PBK7s&m=3lvgeryw4T-aWafrSZZG96NcydtHt6HnT_6vKookx6U&s=01_9grcy8VGwbKRXcqhFRex3N0XIoCBzOimWFwXYI58&e="><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">http://www.coin-or.org/projects/</span></a><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">
and </span><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__www.coin-2Dor.org_projects_PuLP.xml&d=AAMFAw&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=B6BWd4kFfgOzAREgThxkmTZKy7dDXE2-eBAmL0PBK7s&m=3lvgeryw4T-aWafrSZZG96NcydtHt6HnT_6vKookx6U&s=RRiv5ZWCQwWguBZIsIXzCA4_otY4Gr7aeFmFMRB4ZZQ&e="><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">http://www.coin-or.org/projects/PuLP.xml</span></a>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> I think it may be useful to pass through an interface (e.g. LP modeler to generate LP files in standard formats accepted by prevalent solvers)</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> The mathematical program:</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> We can (Orange) contribute to writing down in an informal way the program for this precise use case, if this can wait until January.</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> Perhaps the objective is to may be “minimize the number of servers whose usage is less than 50%”, since the original policy “Not more than 1 server of type1 to have a load under 50%” need
not necessarily have a solution.</span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span><br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> This may help to derive the “mappings” from Congress (rules to program equations, intermediary tables to program variables)?</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">For “migration” use case: it may be useful to add some constraint representing cost of migration, such that the solver computes the new assignment plan such that the maximum migration cost is not
exceeded. To start with, perhaps number of migrations?</span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">I will be away from the end of the week until 5<sup>th</sup> January. I will also discuss with colleagues to see how we can formalize contribution (congress+nfv poc).</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">Rgds</span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">Ruby</span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">De :</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Tim Hinrichs [</span><a href="mailto:thinrichs@vmware.com"><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">mailto:thinrichs@vmware.com</span></a><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">]
<b><br>
Envoyé :</b> vendredi 12 décembre 2014 19:41<b><br>
À :</b> KRISHNASWAMY Ruby IMT/OLPS<b><br>
Cc :</b> Ramki Krishnan (</span><a href="mailto:ramk@Brocade.com"><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">ramk@Brocade.com</span></a><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">)<b><br>
Objet :</b> Re: Placement and Scheduling via Policy</span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">There’s a ton of good stuff here!
</span><br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">So if we took Ramki’s initial use case and combined it with Ruby’s HA constraint, we’d have something like the following policy.
</span><br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">// anti-affinity</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">error (server, VM1, VM2) :-</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> same_ha_group(VM1, VM2),</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> nova:location(VM1, server),</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> nova:location(VM2, server)</span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">// server-utilization
</span><br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">error(server) :-</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">type1_server(server),</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">ceilometer:average_utilization(server, “cpu-util”, avg),</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">avg < 50</span> <br>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">As a start, this seems plenty complex to me. anti-affinity is great b/c it DOES NOT require a sophisticated solver; server-utilization is great because it DOES require a linear solver.</span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">Data the solver needs:</span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">- Ceilometer: cpu-utilization for all the servers</span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">- Nova: data as to where each VM is located</span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">- Policy: high-availability groups</span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">Questions:</span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">1) Is there any more data the solver needs? Seems like it needs something about CPU-load for each VM.</span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">2) Which solver should we be using? What does the linear program that we feed it look like? How do we translate the results of the linear solver into a collection of ‘migrate_VM’ API calls?</span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">Maybe another few emails and then we set up a phone call.</span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">Tim</span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">On Dec 11, 2014, at 1:33 AM, <</span><a href="mailto:ruby.krishnaswamy@orange.com"><span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">ruby.krishnaswamy@orange.com</span></a><span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">>
<</span><a href="mailto:ruby.krishnaswamy@orange.com"><span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">ruby.krishnaswamy@orange.com</span></a><span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">> wrote:</span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""><br>
</span><br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">Hello</span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">A) First a small extension to the use case that Ramki proposes
</span><br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> - Add high availability constraint.</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> - Assuming server-a and server-b are of same size and same failure model.</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> [Later: Assumption of identical failure rates can be loosened.</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> Instead of considering only servers as failure domains, can introduce other failure domains
</span><span style="font-size:10.0pt;font-family:Wingdings">è</span><span style="font-size:10.0pt;font-family:"Arial","sans-serif""> not just an anti-affinity policy but a calculation from 99,99.. requirement to VM placements, e.g.
</span><br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> ]</span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> - For an exemplary maximum usage scenario, 53 physical servers could be under peak utilization (100%), 1 server (server-a) could be under partial utilization (50%) with 2 instances of type large.3
and 1 instance of type large.2, and 1 server (server-b) could be under partial utilization (37.5%) with 3 instances of type large.2.</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> Call VM.one.large2 as the large2 VM in server-a</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> Call VM.two.large2 as one of the large2 VM in server-b</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> - VM.one.large2 and VM.two.large2
</span><br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> - When one of the large.3 instances mapped to server-a is deleted from physical server type 1, Policy 1 will be violated, since the overall utilization of server-a falls to 37,5%.</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> - Various new placements(s) are described below</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> VM.two.large2 must not be moved. Moving VM.two.large2 breaks non-affinity constraint.</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> error (server, VM1, VM2) :-</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> node (VM1, server1),</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> node (VM2, server2),</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> same_ha_group(VM1, VM2),</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> equal(server1, server2);</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span><br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> 1) New placement 1: Move 2 instances of large.2 to server-a. Overall</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> utilization of server-a - 50%. Overall utilization of server-b -</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> 12.5%.</span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> 2) New placement 2: Move 1 instance of large.3 to server-b. Overall</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> utilization of server-a - 0%. Overall utilization of server-b -</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> 62.5%.</span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> 3) New placement 3: Move 3 instances of large.2 to server-a. Overall</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> utilization of server-a - 62.5%. Overall utilization of server-b -</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> 0%.</span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> New placements 2 and 3 could be considered optimal, since they</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> achieve maximal bin packing and open up the door for turning off</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> server-a or server-b and maximizing energy efficiency.</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> But new placement 3 breaks client policy.</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">BTW: what happens if a given situation does not allow the policy violation to be removed? </span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">B) Ramki’s original use case can itself be extended:</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> Adding additional constraints to the previous use case due to cases such as:</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">- Server heterogeneity
</span><br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">- CPU “pinning”
</span><br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">- “VM groups” (and allocation
</span><br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">- Application interference
</span><br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">- Refining on the statement “i</span><span style="font-size:10.0pt;font-family:"Courier New"">nstantaneous energy consumption can be approximately measured using an overall utilization metric,
which is a combination of CPU utilization, memory usage, I/O usage, and network usage”</span>
<br>
<span style="font-size:10.0pt;font-family:"Courier New""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">Let me know if this will interest you. Some (e.g. application interference) will need some time. E.G; benchmarking / profiling to class VMs etc.</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">C) New placement plan execution</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">- In Ramki’s original use case, violation is detected at events such as VM delete.</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">While certainly this by itself is sufficiently complex, we may need to consider other triggering cases (periodic or when multiple VMs are deleted/added)</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">- In this case, it may not be sufficient to compute the new placement plan that brings the system to a configuration that does not break policy, but also add other goals</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">D) Let me know if a use case such as placing “video conferencing servers” (geographically distributed clients) would suit you (multi site scenario)</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span><br>
<span style="font-size:10.0pt;font-family:Wingdings">ð </span><span style="font-size:10.0pt"> </span><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">Or is it too premature?</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">Ruby</span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">De :</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Tim Hinrichs [</span><a href="mailto:thinrichs@vmware.com"><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">mailto:thinrichs@vmware.com</span></a><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">]
<b><br>
Envoyé :</b> mercredi 10 décembre 2014 19:44<b><br>
À :</b> KRISHNASWAMY Ruby IMT/OLPS<b><br>
Cc :</b> Ramki Krishnan (</span><a href="mailto:ramk@Brocade.com"><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">ramk@Brocade.com</span></a><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">)<b><br>
Objet :</b> Re: Placement and Scheduling via Policy</span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">Hi Ruby, </span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">Whatever information you think is important for the use case is good. Section 3 from one of the docs Ramki sent you covers his use case.</span>
<br>
<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__datatracker.ietf.org_doc_draft-2Dkrishnan-2Dnfvrg-2Dpolicy-2Dbased-2Drm-2Dnfviaas_-3Finclude-5Ftext-3D1&d=AAMFAw&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=B6BWd4kFfgOzAREgThxkmTZKy7dDXE2-eBAmL0PBK7s&m=R82SMwEX_3O32-8F5eqMQ8Y6wuHt9WhjmMg6rr-4gWs&s=nE7Xheq0TcCDN98mFIOG_VvMsmfBeIDNDVVFV1HpJx0&e="><span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">https://datatracker.ietf.org/doc/draft-krishnan-nfvrg-policy-based-rm-nfviaas/?include_text=1</span></a>
<br>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">From my point of view, the keys things for the use case are…</span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">- The placement policy (i.e. the conditions under which VMs require migration).</span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">- A description of how we want to compute what specific migrations should be performed (a sketch of (i) the information that we need about current placements, policy violations, etc., (2) what
systems/algorithms/etc. can utilize that input to figure out what migrations to perform.</span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">I think we want to focus on the end-user/customer experience (write a policy, and watch the VMs move around to obey that policy in response to environment changes) and then work out the details
of how to implement that experience. That’s why I didn’t include things like delays, asynchronous/synchronous, architecture, applications, etc. in my 2 bullets above.</span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">Tim</span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">On Dec 10, 2014, at 8:55 AM, <</span><a href="mailto:ruby.krishnaswamy@orange.com"><span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">ruby.krishnaswamy@orange.com</span></a><span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">>
<</span><a href="mailto:ruby.krishnaswamy@orange.com"><span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">ruby.krishnaswamy@orange.com</span></a><span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">> wrote:</span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""><br>
<br>
</span><br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">Hi Ramki, Tim</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">By a “format” for describing use cases, I meant to ask what sets of information to provide, for example,
</span><br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">- what granularity in description of use case?</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">- a specific placement policy (and perhaps citing reasons for needing such policy)?</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">- Specific applications</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">- Requirements on the placement manager itself (delay, …)?</span>
<br>
<span style="font-size:10.0pt;font-family:"Courier New"">o </span><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">Architecture as well</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">- Specific services from the placement manager (using Congress), such as,</span>
<br>
<span style="font-size:10.0pt;font-family:"Courier New"">o </span><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">Violation detection (load, security, …)</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">- Adapting (e.g. context-aware) of policies used</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">In any case I will read the documents that Ramki has sent to not resend similar things.</span>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">Regards</span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">Ruby</span> <br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span> <br>
<b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">De :</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Ramki Krishnan [</span><a href="mailto:ramk@Brocade.com"><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">mailto:ramk@Brocade.com</span></a><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">]
<b><br>
Envoyé :</b> mercredi 10 décembre 2014 16:59<b><br>
À :</b> Tim Hinrichs; KRISHNASWAMY Ruby IMT/OLPS<b><br>
Cc :</b> Norival Figueira; Pierre Ettori; Alex Yip; </span><a href="mailto:dilikris@in.ibm.com"><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">dilikris@in.ibm.com</span></a><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""><br>
Objet :</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> RE: Placement and Scheduling via Policy</span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif""> </span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif";color:#004080">Hi Tim,</span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif";color:#004080"> </span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif";color:#004080">This sounds like a plan. It would be great if you could add the links below to the Congress wiki. I am all for discussing this in the openstack-dev mailing list and at this point
this discussion is completely open.</span> <br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif";color:#004080"> </span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif";color:#004080">IRTF NFVRG Research Group:
</span><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__trac.tools.ietf.org_group_irtf_trac_wiki_nfvrg&d=AAMFAw&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=B6BWd4kFfgOzAREgThxkmTZKy7dDXE2-eBAmL0PBK7s&m=R82SMwEX_3O32-8F5eqMQ8Y6wuHt9WhjmMg6rr-4gWs&s=X---GnOf7YwhOGKMWYa8Mh52VtmO-2imfuZdKLEY39M&e="><span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">https://trac.tools.ietf.org/group/irtf/trac/wiki/nfvrg</span></a>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif";color:#004080"> </span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif";color:#004080">IRTF NFVRG draft on NFVIaaS placement/scheduling (includes system analysis for the PoC we are thinking):
</span><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__datatracker.ietf.org_doc_draft-2Dkrishnan-2Dnfvrg-2Dpolicy-2Dbased-2Drm-2Dnfviaas_-3Finclude-5Ftext-3D1&d=AAMFAw&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=B6BWd4kFfgOzAREgThxkmTZKy7dDXE2-eBAmL0PBK7s&m=R82SMwEX_3O32-8F5eqMQ8Y6wuHt9WhjmMg6rr-4gWs&s=nE7Xheq0TcCDN98mFIOG_VvMsmfBeIDNDVVFV1HpJx0&e="><span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">https://datatracker.ietf.org/doc/draft-krishnan-nfvrg-policy-based-rm-nfviaas/?include_text=1</span></a>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif";color:#004080"> </span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif";color:#004080">IRTF NFVRG draft on Policy Architecture and Framework (looking forward to your comments and thoughts):
</span><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__datatracker.ietf.org_doc_draft-2Dnorival-2Dnfvrg-2Dnfv-2Dpolicy-2Darch_-3Finclude-5Ftext-3D1&d=AAMFAw&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=B6BWd4kFfgOzAREgThxkmTZKy7dDXE2-eBAmL0PBK7s&m=R82SMwEX_3O32-8F5eqMQ8Y6wuHt9WhjmMg6rr-4gWs&s=lBet00H8iO1igDZNEMUGaryHWutkg8abBbL5VG8pjyk&e="><span style="font-size:10.0pt;font-family:"Calibri","sans-serif"">https://datatracker.ietf.org/doc/draft-norival-nfvrg-nfv-policy-arch/?include_text=1</span></a>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif";color:#004080"> </span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif";color:#004080">Hi Ruby,</span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif";color:#004080"> </span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif";color:#004080">Looking forward to your use cases.</span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif";color:#004080"> </span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif";color:#004080">Thanks,</span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif";color:#004080">Ramki</span>
<br>
<span style="font-size:10.0pt;font-family:"Calibri","sans-serif";color:#004080"> </span>
<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
<pre>_________________________________________________________________________________________________________________________
Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.
This message and its attachments may contain confidential or privileged information that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and delete this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified.
Thank you.
</pre>
</div>
</blockquote>
</div>
<br>
</div>
</body>
</html>