From 61a80df4853840e146b700b1a2ae10e895d02de6 Mon Sep 17 00:00:00 2001 From: saripurigopi Date: Tue, 16 Jun 2015 16:00:38 +0530 Subject: [PATCH] Add out-of-band RAID configuration support for Cisco Hardware This blueprint adds support for RAID configuration on Cisco UCS Manager managed UCS B/C/M-series servers using out-of-band method. UcsSdk exposes interface for RAID configuration via OOB, this proposal uses this interface and adds RAID configuration support for UCS drivers. Change-Id: Iceb7033355c7b5054cdc9036a88d9e9ad79e9018 --- .../cisco-ucs-oob-raid-configuration.rst | 160 ++++++++++++++++++ .../cisco-ucs-oob-raid-configuration.rst | 1 + 2 files changed, 161 insertions(+) create mode 100644 specs/approved/cisco-ucs-oob-raid-configuration.rst create mode 120000 specs/not-implemented/cisco-ucs-oob-raid-configuration.rst diff --git a/specs/approved/cisco-ucs-oob-raid-configuration.rst b/specs/approved/cisco-ucs-oob-raid-configuration.rst new file mode 100644 index 00000000..a7f52431 --- /dev/null +++ b/specs/approved/cisco-ucs-oob-raid-configuration.rst @@ -0,0 +1,160 @@ +.. + This work is licensed under a Creative Commons Attribution 3.0 Unported + License. + + http://creativecommons.org/licenses/by/3.0/legalcode + +====================================================== +Out-of-band RAID configuration using Cisco UCS drivers +====================================================== + +https://bugs.launchpad.net/ironic/+bug/1526362 + +This blueprint proposes to implement out-of-band RAID configuration interface +for Cisco UCS drivers. This implementation supports configuration of Cisco +UCS Manager (UCSM) managed B/C/M-series servers. + +Problem description +=================== + +Currently pxe_ucs and agent_ucs drivers don't support RAID configuration on +UCSM managed servers. + +Proposed change +=============== + +It proposes implementing the RAID interface as described by the parent spec [1] +for UCS drivers. + +List of changes required: + +* ucs.raid.RAIDInterface for RAID configuration operations + + The following methods will be implemented: + + * validate + * create_configuration + * delete_configuration + + validate() method validates the required UCS parameters for OOB RAID + configuration. Also calls validate() of the super class to validate json + schema. + create_configuration and delete_configuration operations are implemented + as asynchronous RAID configuration deployment operations by UCS drivers. + UcsSdk/UCS-API asynchronously deploys the RAID configuration on the target + node. UCS driver(s) sends the RAID configuration simultaneously to the + target node when the operation is invoked, but UCS Manager would not deploy + the configuration simultaneously on the target node. UCS Manager accepts + the RAID configuration and deploys it as part of UCS Manager FSM deploy + state. Hence there will be delay between, when the operation is invoked + and when the RAID configuration is deployed. To know the deploy status, + we need to query the FSM status using UcsSdk API. These methods return + states.CLEANWAIT. + New driver periodic task will be added to fetch the UCSM FSM status of + these operations. This periodic task is enabled only if pxe_ucs, agent_ucs + drivers are enabled in the conductor. + +* RAID management changes: + + Controlling the RAID configuration is creating storage-profile ManagedObject + and associating with the Server object in UCS Manager 2.4. Earlier version + of UCSM requires to configure LocalDiskConfigPolicy and associate with + respective service-profile ManagedObject. The service-profile information is + captured as part of node driver_info properties. + UcsSdk provides RAIDHelper interface, which actually creates the required + policies specified above. UCS driver uses this interface and makes + appropriate calls to create_config and delete_config operations. + +Alternatives +------------ +Operator can change the RAID configuration manually whenever required after +putting the node to MANAGEABLE state. But this has to be done for each node. + +Data model impact +----------------- +None + +State Machine Impact +-------------------- +None + +REST API impact +--------------- +None + +Client (CLI) 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 +---------------- +None + +Implementation +============== + +Assignee(s) +----------- + +Primary assignee: +saripurigopi + +Work Items +---------- + +* Add UcsRAIDManagement inheriting from base.RAIDInterface for ucs drivers. +* Writing and unit-test cases for RAID interface of ucs drivers. +* Writing configuration documents. + +Dependencies +============ +* UcsSdk to support RAID configuration utility + +Testing +======= +Unit-tests will be implemented for RAID interface of ucs driver. + +Upgrades and Backwards Compatibility +==================================== +Adding RAID interface support for ucs drivers will not break any +compatibility with either REST API or RPC APIs. + +Documentation Impact +==================== +* Writing configuration documents. + +References +========== +.. [1] New driver interface for RAID configuration: https://review.openstack.org/173214 diff --git a/specs/not-implemented/cisco-ucs-oob-raid-configuration.rst b/specs/not-implemented/cisco-ucs-oob-raid-configuration.rst new file mode 120000 index 00000000..5842d053 --- /dev/null +++ b/specs/not-implemented/cisco-ucs-oob-raid-configuration.rst @@ -0,0 +1 @@ +../approved/cisco-ucs-oob-raid-configuration.rst \ No newline at end of file