Intel-BMC / psu-manager

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DISCONTINUATION OF PROJECT

This project will no longer be maintained by Intel.
Intel has ceased development and contributions including, but not limited to, maintenance, bug fixes, new releases, or updates, to this project.
Intel no longer accepts patches to this project.
If you have an ongoing need to use this project, are interested in independently developing it, or would like to maintain patches for the open source software community, please create your own fork of this project.

PSU Manager

This component is intended to support cold redundancy feature for PSUs. Enabling cold redundancy will achieve better power delivery efficiency and increase life of power supply components.

Overview

When the power subsystem is in cold redundant mode, only required PSUs are enabled to support the best power delivery efficiency, other PSUs are kept in cold standby state. Cold redundancy feature has rank configuration for PSUs to allow BMC to periodically rotate PSUs to increase life of power supply components.

Mode of Operations

Automatic Cycling Redundancy Ranking :

  • Rank configuration is cycled periodically to allow for equal loading across power supply lifetime.
  • The BMC firmware provides a configurable cycling capability.
  • If rotation is enabled, then BMC will periodically rotate the rank assignments in order to distribute the workload over the lifetime of the system power supplies.

Static Redundancy Ranking

  • If rotation feature is disabled, then either a user-specified or BMC static rank ordering will be used.
  • A user-specified rank order will persist until modified or disabled by the user. The BMC will make a best-effort to follow the user-specified rank order depending on the power supply status.

Rank Configuration

BMC reconfiguration of the cold redundancy rankings of the power supplies shall be triggered by the following events:

  • Power supply inserted or removed from the system.
  • AC power restored in Power supply. If a user-specified rank order is chosen, then the BMC will revert to BMC static rank ordering if there is a change in the power supply population.

Configuration of Cold Redundancy Behavior Through IPMI

The BMC provides an OEM IPMI command that allows management software to control the behavior of the cold redundancy feature as follows:

  • Ability to turn off/on the cold redundancy feature.
  • Ability to turn off/on the automatic rank cycling.
  • Ability to set a specified rank order.
  • Ability to configure the cycling period for automatic rank cycling.

Capabilities

xyz.openbmc_project.PSURedundancy service will expose xyz.openbmc_project.Control.PowerSupplyRedundancy interface & its properties.

Limitations

If system is under maximum load and exceeds the limit of one PSU, then both PSUs will be in active state.

Events

When there are two PSU on the system, remove one PSU. Then below cold redundancy events will be logged in Redfish.

{ "@odata.context": "/redfish/v1/$metadata#LogEntry.LogEntry", "@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog/Entries/ 205610", "@odata.type": "#LogEntry.v1_4_0.LogEntry", "Created": "1970-01-03T09:06:50+00:00", "EntryType": "Event", "Id": "205610", "Message": "Power Unit Redundancy lost.", "MessageArgs": [], "MessageId": "OpenBMC.0.1.PowerUnitRedundancyLost", "Name": "System Event Log Entry", "Severity": "Warning" }

{ "@odata.context": "/redfish/v1/$metadata#LogEntry.LogEntry", "@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog/Entries/ 205610_1", "@odata.type": "#LogEntry.v1_4_0.LogEntry", "Created": "1970-01-03T09:06:50+00:00", "EntryType": "Event", "Id": "205610_1", "Message": "Power Unit Nonredundant but has sufficient resource.", "MessageArgs": [], "MessageId": "OpenBMC.0.1.PowerUnitNonRedundantSufficient", "Name": "System Event Log Entry", "Severity": "Warning" }

Plug back the PSU, and the below cold redundancy events will be logged in Redfish.

{ "@odata.context": "/redfish/v1/$metadata#LogEntry.LogEntry", "@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog/Entries/ 205621", "@odata.type": "#LogEntry.v1_4_0.LogEntry", "Created": "1970-01-03T09:07:01+00:00", "EntryType": "Event", "Id": "205621", "Message": "Power Unit Redundancy regained.", "MessageArgs": [], "MessageId": "OpenBMC.0.1.PowerUnitRedundancyRegained", "Name": "System Event Log Entry", "Severity": "OK" }

About

License:Apache License 2.0


Languages

Language:C++ 96.6%Language:CMake 3.4%