Discussion:
[Ipmitool-devel] node manager extension
Pat Donlin
2014-07-01 14:06:12 UTC
Permalink
I have developed a set of extensions to ipmitool that will operate the
Intel Node Manager using numerous keywords. I modeled this after the
DCMI extensions. In practice we have found that direct access to the
Node Manager using the published external interfaces is far more useful
and reliable compared to using DCMI. Examples of usage of this
interface are:

r1lead:~ # ipmitool -H r1i0n0-bmc -U ADMIN -P ADMIN -I lanplus -t 0x2c -b 0 nm capability
power policies: 8
max_power 32767 Watts
min_power 1 Watts
min_corr 6 secs
max_corr 600 secs
min_stats 1 secs
max_stats 3600 secs
domain scope: platform
r1lead:~ # ipmitool -H r1i0n0-bmc -U ADMIN -P ADMIN -I lanplus -t 0x2c -b 0 nm statistics power
Power domain: platform
Policy/Global Admin state Globally Enabled
Policy/Global Operational state suspended
Policy/Global Measurement state in progress
Policy Activation state not triggered
Instantaneous reading: 66 Watts
Minimum during sampling period: 38 Watts
Maximum during sampling period: 145 Watts
Average reading over sample period: 65 Watts
IPMI timestamp: Tue Jul 1 13:53:52 2014
Sampling period: 00414951 Seconds.

r1lead:~ # ipmitool -H r1i0n0-bmc -U ADMIN -P ADMIN -I lanplus -t 0x2c -b 0 nm policy get domain platform policy_id 0
Power domain: platform
Policy is enabled per Domain Globally
Policy will control power.
Policy Trigger Type: No trigger, use Power Limit
Correction Aggressiveness: use T-states
Policy Exception Actions: none
Power Limit: 500 Watts
Correction Time Limit: 10000 milliseconds
Trigger Limit: 500 units
Statistics Reporting Period: 10 seconds
r1lead:~ #

I also followed the DCMI practice of submitting a partial command, and
having the command return the list of optional sub command or needed
parameters:

r1lead:~ # ipmitool -H r1i0n0-bmc -U ADMIN -P ADMIN -I lanplus -t 0x2c -b 0 nm policy get
Missing parameters: nm policy get domain <param> policy_id <id>

Also I used the -c option to simply list the values of the power
statistics command, for easier consumption by other tools.

The number of options and parameters to implement the Node Manager 3.0
external interfaces is substantial, if all of these were added to the
man page, it would increase the man page size to be a small book. I have
not yet done that work.

Questions for the community: Is this work of interest generally? Second,
as mentioned this was modeled after DCMI and hence I simply added the
code to ipmi_dcmi.c. This could of course be its own module, or it could
move to be part of the "ime" interface. But there is a larger question
as ipmitool grows in capability, which is the options and parameters are
lengthy - should ipmitool CLI be redone to follow the organization of
ipmiutil or git?

Regards,

Pat
dan farmer
2014-07-02 20:46:30 UTC
Permalink
Pat, this sounds really tremendous! A few comments/qs/etc -
Post by Pat Donlin
I have developed a set of extensions to ipmitool that will operate the
Intel Node Manager using numerous keywords....
Is this based on the 1.0, 1.5, or 2.0 specification (I'm not familiar
with the various differences between the two, so they may perfectly
compatible, just that I hope it covers 2.0.)
Post by Pat Donlin
Also I used the -c option to simply list the values of the power
statistics command, for easier consumption by other tools.
One thing I'd like to see in general are easily parsed output streams
(CSV or other delimiters, etc, but it's not clear that this is what
you meant, or just the headers, in some sense.
Post by Pat Donlin
The number of options and parameters to implement the Node Manager 3.0
external interfaces is substantial, if all of these were added to the
man page, it would increase the man page size to be a small book. I have
not yet done that work.
No matter what you do I surely hope it's well documented, either in a
standalone or integrated fashion. FreeBSD has a variety of little
tools that do various options, it might be time to at least consider
something akin to that, lest the weight of the options become untenable.

I can read the standard but there's no substitute for good docs and (esp?)
examples of real usage of a tool.
Post by Pat Donlin
Questions for the community: Is this work of interest generally? Second,
as mentioned this was modeled after DCMI and hence I simply added the
code to ipmi_dcmi.c. This could of course be its own module, or it could
move to be part of the "ime" interface. But there is a larger question
as ipmitool grows in capability, which is the options and parameters are
lengthy - should ipmitool CLI be redone to follow the organization of
ipmiutil or git?
Big interest here, at least. I think it's a near necessity to let people
understand what node manager is all about. I'd personally been holding off
because of the pain of crafting all those packets.

I'd personally advocate ipmitool-like tools that perhaps link into the
libraries to leverage the tools functionality and look-n-feel (for
instance, the packet visibility aspect of the multiple -v's is really,
really useful.)

My 2 cents -

dan
Pat Donlin
2014-07-03 19:12:09 UTC
Permalink
Thanks for the feedback Dan, a few follow ups below...
Post by dan farmer
Pat, this sounds really tremendous! A few comments/qs/etc -
Post by Pat Donlin
I have developed a set of extensions to ipmitool that will operate the
Intel Node Manager using numerous keywords....
Is this based on the 1.0, 1.5, or 2.0 specification (I'm not familiar
with the various differences between the two, so they may perfectly
compatible, just that I hope it covers 2.0.)
NM 3.0, which is a superset of 2.0 by one command. This works on 2.0 and
3.0.
Post by dan farmer
Post by Pat Donlin
Also I used the -c option to simply list the values of the power
statistics command, for easier consumption by other tools.
One thing I'd like to see in general are easily parsed output streams
(CSV or other delimiters, etc, but it's not clear that this is what
you meant, or just the headers, in some sense.
I have only implemented the -c option for the statistics option:
ipmitool -H r1lead-bmc -U ADMIN -P ADMIN -t 0x2c -b 0 -c nm statistics power
platform,Globally Enabled,suspended,in progress,not
triggered,195,192,210,195,Thu Jul 3 19:11:00 2014,3874
Post by dan farmer
Post by Pat Donlin
The number of options and parameters to implement the Node Manager 3.0
external interfaces is substantial, if all of these were added to the
man page, it would increase the man page size to be a small book. I have
not yet done that work.
No matter what you do I surely hope it's well documented, either in a
standalone or integrated fashion. FreeBSD has a variety of little
tools that do various options, it might be time to at least consider
something akin to that, lest the weight of the options become untenable.
I can read the standard but there's no substitute for good docs and (esp?)
examples of real usage of a tool.
Post by Pat Donlin
Questions for the community: Is this work of interest generally? Second,
as mentioned this was modeled after DCMI and hence I simply added the
code to ipmi_dcmi.c. This could of course be its own module, or it could
move to be part of the "ime" interface. But there is a larger question
as ipmitool grows in capability, which is the options and parameters are
lengthy - should ipmitool CLI be redone to follow the organization of
ipmiutil or git?
Big interest here, at least. I think it's a near necessity to let people
understand what node manager is all about. I'd personally been holding off
because of the pain of crafting all those packets.
I'd personally advocate ipmitool-like tools that perhaps link into the
libraries to leverage the tools functionality and look-n-feel (for
instance, the packet visibility aspect of the multiple -v's is really,
really useful.)
My 2 cents -
dan
Loading...