|
Post by dkodihalli on Mar 25, 2021 12:48:44 GMT
Consider a platform which has a central/platform BMC which is connected to the out of band management port, and one or more satellite BMCs which are connected to the platform BMC via an interface that can run the TCP/IP stack (for eg USB). So, these BMCs could talk Redfish to each other in theory.
Is there a schema/recommendation on how the platform BMC can "aggregate" information from the satellite BMCs? For example a Redfish client might query for all sensors on the platform, and the platform BMC then must include in its response not only the sensors that it manages but also the sensors that the satellite BMC manages. How is this typically done if the BMCs are talking Redfish to each other: - Aggregation Service schema? - Is there a schema/way to aggregate a subsystem into the main system's schemas?
- Is the platform BMC supposed to implement a custom aggregation mechanism? - OR, is it atypical for the BMCs to talk Redfish to each other and should the aggregation be done via a PMCI protocol?
Thanks, Deepak
|
|
|
Post by jautor on Mar 25, 2021 14:39:25 GMT
Yes, you can absolutely aggregate "satellite BMC" information into a single service - and this is one of the primary design tenets - that you could manage multiple systems from a single service (IP address). The "how" you implement that behind the scenes was not part of the original specification - so yes, a "custom" aggregation mechanism. The desire to perform the configuration tasks for an "external" aggregator led to the AggregationService and the related schemas.
But in the case you're describing, the connections and relationships between the main BMC and the satellites are probably known and well-defined, so that process can all happen without exposing all those details to the public-facing API. If the satellite BMCs are given the "Id" values for their ComputerSystem instances, for example, then their resources can simply be added to the resource tree without name collisions. Even better, you can define a naming pattern up front so that collisions can be avoided without coordination. For example, if this is a blade chassis with "bays" for each server, the "Id" value of the Chassis resource could be "Bay<n>" (1..n) so that they all fit into a aggregated ChassisCollection without modification by the main BMC.
Hope that can get you started, but you're on the right track,
Jeff
|
|