ironic-specs/specs/kilo-archive/inband-raid-configuration.rst
Jay Faulkner 8deae0ce74 Open specs for Liberty
This updates the template to ask about microversions, as well as
creating the liberty/ dir with a placeholder spec which should be
removed once we have merged an approved spec for Liberty.

Additionally, all specs from Kilo that were not implemented have
been archived. If they wish to be revived for Liberty, a separate
merge request should be issued moving them into liberty/.

Change-Id: I839b478a67af9eab3bfefbf979227e5f49b01aed
2015-04-08 16:58:26 -07:00

4.5 KiB

In-band RAID configuration using agent ramdisk

https://blueprints.launchpad.net/ironic/+spec/inband-raid-configuration

This spec proposes to implement a RAID configuration interface using Ironic Python Agent (IPA). The first driver to make use of this interface will be the agent_ilo driver.

Problem description

Currently there is no way in Ironic to do RAID configuration for servers using in-band mechanism.

Proposed change

This spec proposes to implement in-band RAID configuration using IPA. It proposes to implement the RAIDInterface as mentioned in the parent spec [1]. The implementation will be named AgentRAIDManagement. The main job of the implementation will be to invoke the corresponding RAID operation methods on agent ramdisk. Interested vendors will implement these methods in Ironic Python Agent using hardware managers.

Following are the changes required:

  • The following methods will be implemented as part of AgentRAIDManagement:
    • create_configuration - This will create the RAID configuration on the bare metal node. The following are the steps:

      • Calls zap.create_raid_configuration on the agent ramdisk passing the details of raid_info.

      Note

      This is a zap step that requires the agent to be booted on the bare metal node before this method is invoked. This is a common problem for all zap steps the use the agent and mechanism for this will be introduced as part of Zapping spec [2]. We assume here that ramdisk is booted and heartbeating before this method is invoked. Reference to the IRC chat about this in [3].

    • delete_configuration - This will delete the RAID configuration on the bare metal node. The following are the steps:

      • Calls zap.delete_raid_configuration on the agent ramdisk.
  • The results for both of the above commands will be polled on subsequent heartbeats from the ramdisk and then update_raid_info will be called once the RAID operation is done.
  • Agent ramdisk will be enhanced to add two new methods zap.create_raid_configuration and zap.delete_raid_configuration. These methods will route the call to hardware manager, so that different hardware vendors can implement their own methods of managing RAID on their hardware.

Alternatives

Some bare metal servers do not support out-of-band RAID configuration. They support only in-band raid configuration. I don't see any other alternative other than making use of a ramdisk to do this.

Data model impact

None.

REST API impact

None.

RPC API impact

None.

Driver API impact

None.

Nova driver impact

None.

Security impact

None.

Other end user impact

None.

Scalability impact

None.

Performance Impact

None.

Other deployer impact

None.

Developer impact

Other hardware vendors developing drivers for OpenStack can use Ironic Python Agent for in-band RAID configuration. They can add their own hardware manager implementing the method and get the RAID configuration done.

Implementation

Assignee(s)

rameshg87

Work Items

  • Implement AgentRAIDManagement
  • Make changes in Ironic Python Agent to add methods zap.create_raid_configuration and zap.delete_raid_configuration which route calls to respective hardware manager.

Dependencies

Testing

Unit tests will be added.

Upgrades and Backwards Compatibility

None.

Documentation Impact

None. Most of the RAID configuration details in Ironic are covered in the parent spec. If anything is required in addition, respective vendors making use of AgentRAIDManagement will need to document it.

References

[1] - New driver interface for RAID configuration https://review.openstack.org/135899 [2] - Implement Zapping States - https://review.openstack.org/140826 [3] - IRC Chat - http://eavesdrop.openstack.org/irclogs/%23openstack-ironic/%23openstack-ironic.2015-02-04.log (From 2015-02-04T17:41:09)