Description
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.
An example PowerChain for the CLC would be:
PSU1 ==> PDU1:outlet1 ==> UPS1 ==> Main Power
PSU2 ==> PDU2:outlet1 ==> UPS2 ==> Main Power
Other details:
-
a parent can have multiple children (UPS, PDU, ...)
-
A child can have multiple parents (STS)
The branch "powerchain" implements this feature: https://github.com/networkupstools/nut/tree/powerchain
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