etcd in openbmc

Andrew Geissler geissonator at gmail.com
Wed Apr 26 00:26:54 AEST 2023


Greetings,

We've started to prototype the use of etcd[1] as a mechanism to support a
system where multiple BMC's will be a part of a single composed system. etcd
is a strongly consistent, distributed key-value store that provides a reliable
way to store data that needs to be accessed by a distributed system or cluster
of machines. The initial use case is to ensure phosphor-settingsd and
bios-settings-mgr values are consistent across all BMC's in the composed system.
With a bit of hand waving, the idea is that we have a compile option within
these repos to build in an etcd plugin that will utilize the etcd-cpp-apiv3[2] 
(c++ wrapper library around etcd) to read/write their values into etcd when
enabled.

Our primary use case here is that our BIOS/Host firmware can come down to any
BMC to read/write BIOS values and the OpenBMC firmware guarantees the data is
consistent across all BMC's. Also, we ensure all BMC's within the composed
system are utilizing the same phosphor-settings values.

Jayanth and I have started the process of getting the etcd recipes into
meta-openembedded and have some initial WIP patches up at
https://gerrit.openbmc.org/c/openbmc/openbmc/+/62509

Thoughts/Comments appreciated.

[1]: https://etcd.io/
[2]: https://github.com/etcd-cpp-apiv3/etcd-cpp-apiv3


More information about the openbmc mailing list