<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"MS Gothic";
panose-1:2 11 6 9 7 2 5 8 2 4;}
@font-face
{font-family:"MS Gothic";
panose-1:2 11 6 9 7 2 5 8 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:"\@MS Gothic";
panose-1:2 11 6 9 7 2 5 8 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
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;}
span.EmailStyle17
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></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]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Hi All,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Thank you everyone for your responses.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">We have created an etherpad[1] with suggested solution and concerns. I request Nova and Ironic developers to provide their input on the etherpad.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">[1]
</span><a href="https://etherpad.openstack.org/p/ironic-nova-reset-configuration">https://etherpad.openstack.org/p/ironic-nova-reset-configuration</a><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><a name="_MailEndCompose"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></a></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Madhuri<o:p></o:p></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Alex Xu [mailto:soulxu@gmail.com]
<br>
<b>Sent:</b> Thursday, June 13, 2019 11:25 AM<br>
<b>To:</b> Mark Goddard <mark@stackhpc.com>; openstack-discuss <openstack-discuss@lists.openstack.org><br>
<b>Subject:</b> Re: [Nova][Ironic] Reset Configurations in Baremetals Post Provisioning<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">Mark Goddard <<a href="mailto:mark@stackhpc.com">mark@stackhpc.com</a>>
<span style="font-family:"Calibri",sans-serif">于</span>2019<span style="font-family:"Calibri",sans-serif">年</span>6<span style="font-family:"Calibri",sans-serif">月</span>12<span style="font-family:"Calibri",sans-serif">日周三</span>
<span style="font-family:"Calibri",sans-serif">下午</span>2:45<span style="font-family:"Calibri",sans-serif">写道:</span><o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Wed, 12 Jun 2019, 06:23 Alex Xu, <<a href="mailto:soulxu@gmail.com" target="_blank">soulxu@gmail.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">Mark Goddard <<a href="mailto:mark@stackhpc.com" target="_blank">mark@stackhpc.com</a>>
<span style="font-family:"Calibri",sans-serif">于</span>2019<span style="font-family:"Calibri",sans-serif">年</span>6<span style="font-family:"Calibri",sans-serif">月</span>12<span style="font-family:"Calibri",sans-serif">日周三</span>
<span style="font-family:"Calibri",sans-serif">上午</span>1:39<span style="font-family:"Calibri",sans-serif">写道:</span><o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal">On Mon, 10 Jun 2019 at 06:18, Alex Xu <<a href="mailto:soulxu@gmail.com" target="_blank">soulxu@gmail.com</a>> wrote:<br>
><br>
><br>
><br>
> Eric Fried <<a href="mailto:openstack@fried.cc">openstack@fried.cc</a>> <span style="font-family:"Calibri",sans-serif">
于</span>2019<span style="font-family:"Calibri",sans-serif">年</span>6<span style="font-family:"Calibri",sans-serif">月</span>7<span style="font-family:"Calibri",sans-serif">日周五</span>
<span style="font-family:"Calibri",sans-serif">上午</span>1:59<span style="font-family:"Calibri",sans-serif">写道:</span><br>
>><br>
>> > Looking at the specs, it seems it's mostly talking about changing VMs resources without rebooting. However that's not the actual intent of the Ironic use case I explained in the email.<br>
>> > Yes, it requires a reboot to reflect the BIOS changes. This reboot can be either be done by Nova IronicDriver or Ironic deploy step can also do it.<br>
>> > So I am not sure if the spec actually satisfies the use case.<br>
>> > I hope to get more response from the team to get more clarity.<br>
>><br>
>> Waitwait. The VM needs to be rebooted for the BIOS change to take<br>
>> effect? So (non-live) resize would actually satisfy your use case just<br>
>> fine. But the problem is that the ironic driver doesn't support resize<br>
>> at all?<br>
>><br>
>> Without digging too hard, that seems like it would be a fairly<br>
>> straightforward thing to add. It would be limited to only "same host"<br>
>> and initially you could only change this one attribute (anything else<br>
>> would have to fail).<br>
>><br>
>> Nova people, thoughts?<br>
>><br>
><br>
> Contribute another idea.<br>
><br>
> So just as Jay said in this thread. Those CUSTOM_HYPERTHREADING_ON and CUSTOM_HYPERTHREADING_OFF are configuration. Those<br>
> configuration isn't used for scheduling. Actually, Traits is designed for scheduling.<br>
><br>
> So yes, there should be only one trait. CUSTOM_HYPERTHREADING, this trait is used for indicating the host support HT. About whether enable it in the instance is configuration info.<br>
><br>
> That is also pain for change the configuration in the flavor. The flavor is the spec of instance's virtual resource, not the configuration.<br>
><br>
> So another way is we should store the configuration into another place. Like the server's metadata.<br>
><br>
> So for the HT case. We only fill the CUSTOM_HYPERTHREADING trait in the flavor, and fill a server metadata 'hyperthreading_config=on' in server metadata. The nova will find out a BM node support HT. And ironic based on the server metadata 'hyperthreading_config=on'
to enable the HT.<br>
><br>
> When change the configuration of HT to off, the user can update the server's metadata. Currently, the nova will send a rpc call to the compute node and calling a virt driver interface when the server metadata is updated. In the ironic virt driver, it can
trigger a hyper-threading configuration deploy step to turn the HT off, and do a reboot of the instance. (The reboot is a step inside deploy-step, not part of ironic virt driver flow)<br>
><br>
> But yes, this changes some design to the original deploy-steps and deploy-templates. And we fill something into the server's metadata which I'm not sure nova people like it.<br>
><br>
> Anyway, just put my idea at here.<br>
<br>
We did consider using metadata. The problem is that it is<br>
user-defined, so there is no way for an operator to restrict what can<br>
be done by a user. Flavors are operator-defined and so allow for<br>
selection from a 'menu' of types and configurations.<o:p></o:p></p>
</blockquote>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">The end user can change the BIOS config by the ipmi inside the guest OS, and do a reboot. It is already out of control for the operator.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">(Correct me if ironic doesn't allow the end user change the config inside the guest OS)<o:p></o:p></p>
</div>
</div>
</div>
</blockquote>
</div>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">It depends. Normally you can't configure BIOS via IPMI, but need to use a vendor interface such as racadm or on hardware that supports it, Redfish. Access to the management controller can and should be locked down though. It's also usually
possible to reconfigure via serial console, if this is exposed to users.<o:p></o:p></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">It sounds that breaking the operator control partially.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">(Sorry for drop the mallist thread again...I will paste a note to the wall "click the "Reply All"...")<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">So Flavor should be thing to strict the resource( or resource's capable) which can be requested by the end user. For example, flavor will say I need a BM node has hyper-thread capable. But enable or disable can be controlled by the end
user.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal"><br>
What might be nice is if we could use a flavor extra spec like this:<br>
<br>
deploy-config:hyperthreading=enabled<br>
<br>
The nova ironic virt driver could pass this to ironic, like it does with traits.<br>
<br>
Then in the ironic deploy template, have fields like this:<br>
<br>
name: Hyperthreading enabled<br>
config-type: hyperthreading<br>
config-value: enabled<br>
steps: <deploy steps><br>
<br>
Ironic would then match on the config-type and config-value to find a<br>
suitable deploy template.<br>
<br>
As an extension, the deploy template could define a trait (or list of<br>
traits) that must be supported by a node in order for the template to<br>
be applied. Perhaps this would even be a standard relationship between<br>
config-type and traits?<br>
<br>
Haven't thought this through completely, I'm sure it has holes.<br>
<br>
><br>
>> efried<br>
>> .<br>
>><o:p></o:p></p>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</body>
</html>