Skip to content

Powerchain support #8

Open
Open
@aquette

Description

@aquette

The idea behind the PowerChain is simple:
There are many links in a powerchain, that supplies power to a device (server, appliance, ...):

  • power supply unit,
  • UPS,
  • PDU.
  • STS (static transfer switch),
  • bypass module,
  • genset,
  • ...

Monitoring only UPS is not sufficient to guaranty a smart power protection.
Having a consolidated view on the whole also allows real HA, Green Grid and SmartGrid features.

ServerOneiricInfraPower-exampleRack png

An example PowerChain for the CLC would be:

PSU1 ==> PDU1:outlet1 ==> UPS1 ==> Main Power
PSU2 ==> PDU2:outlet1 ==> UPS2 ==> Main Power

Other details:

Tasks list:

  • Create a new power supply unit (PSU) driver,

  • Create a new NUT data, 'device.parent', defined in ups.conf and exposed by all NUT drivers.
    This will store the parent reference in NUT canonical form:

    device[:outlet][@hostname[:port]]

    Example:
    ups.conf
    [psu1]
    driver = nut-psu
    port = psu1
    parent = pdu1:outlet1@localhost
    [pdu1]
    driver = snmp-ups
    port =
    parent = ups1@localhost
    [ups1]
    driver = usbhid-ups
    port = auto
    parent = main

    $ upsc psu1 device.parent
    pdu1:outlet1@localhost

  • Implement power-chain support in upsc ('-P' option to get a tree list, when using '-l' and '-L')
    Note: only the first version, with coma separators.

    $ upsc -P localhost
    psu1 -> pdu1:outlet1 -> ups1

    $ upsc -Pl localhost
    ups1
    |-> pdu1:outlet1
    |-> pdu1

  • Implement a *tree store for upsd, to fix the lack of the current one (powerchain_t, in server/powerchain.ch

  • Implement power-chain support in upsmon

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions