Software Defined Power

I’ve got an idea for a new project. I’ve been working on the details over the last few weeks. As networking and server control in the datacenter are evolving into cloud and software-defined solutions, we need to pay attention to power control and evolve that as well. I’d like to initiate a solution for software-defined power controls.

Software defined power would consist of things like:

* Controlling the voltage of a port
* Controlling the branch circuits or lines feeding a port
* Auto detection of hardware connected to port, with software, not proprietary hardware
* Providing an open API standard that PDUs speak for configuration and data collection

PDUs already tend to have a lot of interesting software-defined features like port groups, load shedding, limits and alerts. These are usually only controllable through a proprietary web UI on the PDU or via a separate DC management software product. As such, there will never be advancement in the area because there can be no integration of tooling with third parties. There’s not much incentive for PDU vendors to provide this, because they want to sell their own solutions, but it hampers innovation for the end user.

Right now, if I have a 208v PDU and I want it to have a 120v port, I have to order a new PDU. It shouldn’t have to be that way. If I find a circuit is running hot and need to balance the lines, I have to go physically swap plugs. That shouldn’t be necessary. If I want to know which system is plugged into which outlet, I have to go trace cables and label the PDU in software. We shouldn’t have to. We should be able to fetch statistics and configure PDUs via an easy to use API, not SNMP.

To this end, I’m designing a reference board that will enable some of these features. I’m not sure what to do with it yet, perhaps if it works well and there’s interest I can go to kickstarter with it so that others can have copies of it to play with. I’ll figure out a name later.

Leave a Reply

Your email address will not be published. Required fields are marked *