Multiple BMCs in a system: IPMB? Redfish? MCTP?

Andrew Jeffery andrew at aj.id.au
Fri May 8 14:11:38 AEST 2020



On Fri, 8 May 2020, at 05:14, Nancy Yuen wrote:
> 
> 
> On Mon, May 4, 2020 at 3:31 AM Andrew Jeffery <andrew at aj.id.au> wrote:
> > 
> > 
> >  On Thu, 30 Apr 2020, at 17:08, Deepak Kodihalli wrote:
> >  > On 30/04/20 4:21 am, Nancy Yuen wrote:
> >  > > I've talked with some people a while back (long while back) about 
> >  > > multiple BMCs in a system. Either for redundancy or managing separate 
> >  > > parts of a system. I'm wondering what other people are thinking in 
> >  > > this area if at all.
> >  > > 
> >  > > We are considering similar designs and I'm looking into options for 
> >  > > BMC-BMC communications. Some BMCs may not be externally 
> >  > > accessible. Here are some options that we've looked at:
> >  > > 
> >  > > 1. i2c/IPMB
> >  > > 2. usbnet/Redfish
> >  > > 3. i2c/MCTP/PLDM or something else?
> >  > > 4. internal network via switch chip/Redfish or MCTP
> >  > > 
> >  > > I'd like to reduce our use of IPMI so I want to avoid (1).
> >  > > 
> >  > > ----------
> >  > > Nancy
> >  > 
> >  > Hi Nancy,
> >  > 
> >  > I think it depends on whether the BMCs need to talk to each other for 
> >  > platform management, or if they manage their own hosts and we need one 
> >  > of the BMCs to broadcast out of band requests and aggregate responses.
> >  > 
> >  > For the former I think PLDM over MCTP could be a good fit. This is more 
> >  > of an "inband" use-case in my opinion so I'm not sure if Redfish is well 
> >  > suited. For the latter, a Redfish based aggregation is a good option.
> > 
> >  I think this looks like the right approach. Certainly some thought would be
> >  required in designing the MCTP networks given the (intentionally) limited
> >  number of endpoint IDs.
> > 
> >  Andrew
> 
> Hi Andrew, Deepak,
> 
> Sorry for the delayed response!
> 
> For the purposes of this discussion I have BMCs managing their own 
> host: BMC3<--->BMC2<--->BMC1/controller<--> external. I wrote BMC1 but 
> there maybe some other controller there that isn't strictly a BMC. BMC2 
> would be "passing through" information between BMC1 and BMC3. But I 
> don't necessarily want BMC2 to do any form of aggregation from 
> information from BMC3. For BMC1/Controller and BMC 2 we are thinking 
> Redfish. 

So to restate, you're looking to bridge data from BMC1/controller to BMC3
via BMC2?

MCTP caters to this but it probably depends on what transport medium
you were thinking of using. Redfish for BMC1-to-BMC2 suggests networking,
which starts to go outside the use-cases for which MCTP is intended.

Others might be able to comment on whether Redfish is a good fit for a data
bridge.

Andrew


More information about the openbmc mailing list