valence-specs/specs/pike/approved/pooled-resources-management.rst
Anusha Ramineni fcfbee0273 Add pooled resources management
This spec proposes changes to the the functionality of managing
pooled resources through valence.

Change-Id: I2f76ec332dba5fbcfc658a4f94e34aa945404e44
2017-07-21 11:26:24 +05:30

3.8 KiB

This work is licensed under a Creative Commons Attribution 3.0 Unported License.

http://creativecommons.org/licenses/by/3.0/legalcode

Pooled resources management

This blueprint is to add framework in valence for pooled resources management.

https://blueprints.launchpad.net/openstack-valence/+spec/add-device-orchestration

Problem description

Currently, valence doesn't provide support for the dynamic management of pooled resources like storage, network and other pci devices which can be connected on demand to a composed node, giving user the ability to attach or detach the devices dynamically based on workload.

Proposed change

  • Creating podmanager functionality will be updated to add a new async operation to perform sync of all the pooled resources associated with that specific podmanager.
  • All the discovered devices would be automatically registered to DB.
  • New DB table 'devices' to be created to store the minimal device info and new uuid will be generated for their unique identification in valence.
  • Further operations on the devices can be performed through valence using uuid.
  • Periodic task would be added to keep the devices info and their status in sync with valence DB. And also, 'refresh' command also to be provided for the user to perform any immediate sync as required.
  • API's to be provided to list the pooled devices, attach/detach device to node using uuid

Alternatives

None

Data model impact

New table 'devices' will be added with following schema:

Field
uuid
podm_id
node_id
type
properties
pooled_group_id
state
extra
created_at
deleted_at

REST API impact

New API's to be added list pooled resources and attach/detach devices

GET v1/pooled API to be added with filter params to list specific devices
GET v1/pooled?type=storage
POST /v1/nodes/{node_ident}/action
{
  "attach":{
      device_id: 'a698b7c2-0ca1-481a-87cd-4717a3d9c4d6'
  }
}
POST /v1/nodes/{node_ident}/action
{
   "detach":{
       "device_id": "a698b7c2-0ca1-481a-87cd-4717a3d9c4d6"
   }
}
References::

https://github.com/openstack/valence/blob/master/api-ref/source/valence-api-v1-pooled.inc https://github.com/openstack/valence/blob/master/api-ref/source/mockup/node-post-action-attach-request.json

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

Valence GUI / Horizon impact

None

Implementation

Assignee(s)

ramineni ntpttr

Work Items

  • Add API's for pooled resources, attach/detach devices
  • Add periodic task
  • Add new DB model
  • Redfish implementation
  • CLI implementation

Dependencies

None

Testing

  • Unit Tests should be added.

Documentation Impact

  • update documentation on new supported API's

References