This spec proposes ipmi double bridging support in ironic. Change-Id: I75423e5dbb5d5098f1aaca739524254cd78d144b
4.8 KiB
Enabling IPMI double bridge support
https://blueprints.launchpad.net/ironic/+spec/enabling-ipmi-double-bridge-support
This blueprint proposes ipmi double bridging support in ironic.
Problem description
Currently, ironic IPMI driver(ipmitool) does not support bridging.
Many of the recent server architecture is based on distributed management. For a chassis that has "n" number of servers, the management is delegated from the core controller to many satellite controllers, which mandates the need for bridging.
Proposed change
- When registering an baremetal node which requires bridging, the
appropriate parameters should be specified to ironic IPMI power driver
as follows:
-i ipmi_bridging=<single/dual/no>
-i ipmi_local_address=<VALUE>
-i ipmi_transit_local_address=<VALUE>
-i ipmi_transit_channel=<VALUE>
-i ipmi_transit_address=<VALUE>
-i ipmi_target_channel=<VALUE>
-i ipmi_target_address=<VALUE>
The parameters can be specified based on the hardware being registered. i.e, In order to perform an double-bridge, an user can just specify 'transit_address' and 'target_address', rest is taken care by ipmi. But some hardware will mandate to specify transit_channel and target_channel, if they are using different channels.
The parameter 'ipmi_bridging' should specify the type of bridging required(single/dual) to access the baremetal node. If the parameter is not specified, the default value will be set to "no"
Single Bridging:
ironic node-create -d pxe_ipmitool [-i ipmi_local_address=VALUE] <-i ipmi_bridging=single> <-i ipmi_target_channel=VALUE> <-i ipmi_target_address=VALUE> ...
The parameter 'ipmi_local_address' is optional. If the parameter is not specified, it is auto discovered by ipmitool
Double Bridging:
ironic node-create -d pxe_ipmitool [-i ipmi_local_address=VALUE] [-i ipmi_transit_local_address=VALUE] <-i ipmi_bridging=dual> <-i ipmi_transit_channel=VALUE> <-i ipmi_transit_address=VALUE> <-i ipmi_target_channel=VALUE> <-i ipmi_target_address=VALUE> ...
The parameters 'ipmi_local_address' and 'ipmi_transit_local_address' are optional. If the parameters are not specified, it is auto discovered by ipmitool
- Ironic IPMI driver should be modified to parse the above information and perform ipmi operations with appropriate parameters.
Alternatives
None
Data model impact
None
REST API impact
None
Driver API impact
None
Nova driver impact
None
Security impact
None
Other end user impact
None
Scalability impact
Depends on the number of parallel IPMI sessions that can be supported by the underlying BMC. When the sessions are exhausted, IPMI retry option can be used to get the handle of a session.
Performance Impact
If the underlying BMC is designed for federated management, where there might be one main controller and many sub controllers, there will not be any impact. However if only one controller exists in the BMC that manages all the nodes, then the sessions might be slower when it reaches its threshold.
Other deployer impact
When an node which mandates bridging is being registered, provide the appropriate parameters:
- -i ipmi_bridging=<single/dual/no>
- -i ipmi_local_address=<VALUE>
- -i ipmi_transit_local_address=<VALUE>
- -i ipmi_transit_channel=<VALUE>
- -i ipmi_transit_address=<VALUE>
- -i ipmi_target_channel=<VALUE>
- -i ipmi_target_address=<VALUE>
Developer impact
None
Implementation
Assignee(s)
- Primary assignee:
-
rh-s
- Other contributors:
-
bmahalakshmi
Work Items
- Include functionality to IPMI driver(ipmitool) to check if the underlying ipmitool utility supports bridging.
- Changes to IPMI driver to parse the bridging parameters.
- When a node being provisioned has bridging configuration specified, perform all ipmi operations with appropriate parameters.
Dependencies
IPMITOOL_1_8_12
Testing
Unit test cases to test IPMI driver with bridging enabled and disabled
Documentation Impact
Documentation should reflect the parameters that can be provided during registering an node to enable bridging operation.