[DISCUSSION] Drive-level power control support in phosphor-state-manager
Eric Yang
eric.yang.wiwynn at gmail.com
Thu Apr 9 18:50:13 AEST 2026
Hi all,
I've been looking into how OpenBMC currently handles component-level
power control for storage drives, and would appreciate some input on
possible directions.
On storage servers or compute servers with NVMe/SSD drive bays, there
is a practical need to monitor drive power state and perform controlled
power cycling or reset of individual drives.
The State.Drive interface added in change 43155 [1] defines
RequestedDriveTransition and CurrentDriveState, but I could not find
any upstream consumer for the transition/state properties. Please
correct me if I'm missing an existing implementation.
If a platform wanted to support drive power control through
phosphor-state-manager today, the options would be:
- Map drives as additional chassis/host instances, which carries
incorrect semantics and breaks the Redfish model.
- Write a platform-specific daemon outside of the state-manager
framework.
phosphor-state-manager already has a well-established per-instance
daemon pattern with systemd target orchestration. Following this
pattern for drives seems like a natural fit.
I'd appreciate any thoughts on the following:
- Is there interest in drive power control as a first-class feature
in phosphor-state-manager?
- Should it follow the existing host/chassis daemon pattern, or
should it be designed as a more generic component state manager
that could cover other device types in the future?
- Drive instances may benefit from string identifiers (e.g. nvme0)
instead of numeric IDs to align with Redfish DriveId. Any concerns
with this approach?
- Should a drive's power state optionally be tied to a specific
host's power state (e.g. power off drives when the associated
host shuts down), or should drive power be fully independent?
[1] https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/43155
Best Regards,
Eric Yang
More information about the openbmc
mailing list