<div dir="ltr">On Mon, Nov 18, 2013 at 10:35 AM, Ladislav Smola <span dir="ltr"><<a href="mailto:lsmola@redhat.com" target="_blank">lsmola@redhat.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <div>Hello. I have a couple of additional
      questions.<br>
      <br>
      1. What about IPMI data that we want to get by polling. E.g.
      temperatures, etc. Will the Ironic be polling these kind of <br>
          data and send them directly to collector(or agent)? Not sure
      if this belongs to Ironic. It would have to support some<br>
          pluggable architecture for vendor specific pollsters like
      Ceilometer.<br>
      <br></div></div></blockquote><div><br></div><div>If there is a fixed set of information (eg, temp, fan speed, etc) that ceilometer will want, let's make a list of that and add a driver interface within Ironic to abstract the collection of that information from physical nodes. Then, each driver will be able to implement it as necessary for that vendor. Eg., an iLO driver may poll its nodes differently than a generic IPMI driver, but the resulting data exported to Ceilometer should have the same structure.<br>

</div><div><br></div><div>I don't think we should, at least right now, support pluggable pollsters on the Ceilometer->Ironic side. Let's start with a small set of data that Ironic exposes, make it pluggable internally for different types of hardware, and iterate if necessary.</div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000"><div>
      2. I've seen in the etherpad that the SNMP agent(pollster) will be
      also part of the Ironic(running next to conductor). Is it true? <br>
          Or that will be placed in Ceilometer central agent?<br></div></div></blockquote><div><br></div><div>An SNMP agent doesn't fit within the scope of Ironic, as far as I see, so this would need to be implemented by Ceilometer. </div>

<div><br></div><div>As far as where the SNMP agent would need to run, it should be on the same host(s) as ironic-conductor so that it has access to the management network (the physically-separate network for hardware management, IPMI, etc). We should keep the number of applications with direct access to that network to a minimum, however, so a thin agent that collects and forwards the SNMP data to the central agent would be preferable, in my opinion.</div>

<div><br></div><div><br></div><div>Regards,</div><div>Devananda</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">

<div>
          <br>
      <br>
      Thanks for response.<span class="HOEnZb"><font color="#888888"><br>
      Ladislav</font></span><div><div class="h5"><br>
      <br>
      <br>
      On 11/18/2013 06:25 PM, Devananda van der Veen wrote:<br>
    </div></div></div><div><div class="h5">
    <blockquote type="cite">
      <div dir="ltr">Hi Lianhao Lu,
        <div><br>
        </div>
        <div>I briefly summarized my recollection of that session in
          this blueprint:</div>
        <div><br>
        </div>
        <div><a href="https://blueprints.launchpad.net/ironic/+spec/add-ceilometer-agent" target="_blank">https://blueprints.launchpad.net/ironic/+spec/add-ceilometer-agent</a><br>
        </div>
        <div><br>
        </div>
        <div>I've responded to your questions inline as well.</div>
        <div><br>
        </div>
        <div class="gmail_extra"><br>
          <div class="gmail_quote">On Sun, Nov 17, 2013 at 10:24 PM, Lu,
            Lianhao <span dir="ltr"><<a href="mailto:lianhao.lu@intel.com" target="_blank">lianhao.lu@intel.com</a>></span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi
              stackers,<br>
              <br>
              During the summit session Expose hardware sensor (IPMI)
              data <a href="https://etherpad.openstack.org/p/icehouse-summit-ceilometer-hardware-sensors" target="_blank">https://etherpad.openstack.org/p/icehouse-summit-ceilometer-hardware-sensors</a>,
              it was proposed to deploy a ceilometer agent next to the
              ironic conductor to the get the ipmi data. Here I'd like
              to ask some questions to figure out what's the current
              missing pieces in ironic and ceilometer for that proposal.<br>
              <br>
              1. Just double check, ironic won't provide API to get IPMI
              data, right?<br>
            </blockquote>
            <div><br>
            </div>
            <div>Correct. This was generally felt to be unnecessary.</div>
            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <br>
              2. If deploying a ceilometer agent next to the ironic
              conductor, how does the agent talk to the conductor?
              Through rpc?<br>
            </blockquote>
            <div><br>
            </div>
            <div>My understanding is that ironic-conductor will emit
              messages to the ceilimeter agent, and the communication is
              one-way. These could be triggered by a periodic task, or
              by some other event within Ironic, such as a change in the
              power state of a node. </div>
            <div> </div>
            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <br>
              3. Does the current ironic conductor have rpc_method to
              support getting generic ipmi data, i.e. let the rpc_method
              caller specifying arbitrary netfn/command to get any type
              of ipmi data?<br>
            </blockquote>
            <div><br>
            </div>
            <div>
              No, and as far as I understand, it doesn't need one.</div>
            <div> </div>
            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <br>
              4. I believe the ironic conductor uses some kind of
              node_id to associate the bmc with its credentials, right?
              If so, how can the ceilometer agent get those node_ids to
              ask the ironic conductor to poll the ipmi data? And how
              can the ceilometer agent extract meaningful information
              from that node_id to set those fields in the ceilometer
              Sample(e.g. recource_id, project_id, user_id, etc.) to
              identify which physical node the ipmi data is coming from?<br>
            </blockquote>
            <div><br>
            </div>
            <div>This question perhaps requires a longer answer.</div>
            <div><br>
            </div>
            <div>Ironic references physical machines (nodes) internally
              with an integer node_id and externally with a standard
              uuid. When a Nova instance is created, it will be
              associated to a node, that node will have a reference to
              the nova instance_uuid which is exposed in our API, and
              can be passed to Ceilometer's agent. I believe that nova
              instance_uuid will enable ceilometer to detect the
              project, user, etc.</div>
            <div><br>
            </div>
            <div>Should Ironic emit messages regarding nodes which are
              not provisioned? Physical machines that don't have a
              tenant instance on them are not associated to any project,
              user, tenant, quota, etc, so I suspect that we shouldn't
              notify about them. It would be like tracking the unused
              disks in a SAN.</div>
            <div><br>
            </div>
            <div>Regards,</div>
            <div>Devananda</div>
            <div><br>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
  </div></div></div>

</blockquote></div><br></div></div>