Add pooled resources management
This spec proposes changes to the the functionality of managing pooled resources through valence. Change-Id: I2f76ec332dba5fbcfc658a4f94e34aa945404e44
This commit is contained in:
parent
2eefa8dc59
commit
fcfbee0273
168
specs/pike/approved/pooled-resources-management.rst
Normal file
168
specs/pike/approved/pooled-resources-management.rst
Normal file
@ -0,0 +1,168 @@
|
||||
..
|
||||
|
||||
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
|
||||
|
||||
.. code:: rest
|
||||
|
||||
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
|
||||
==========
|
||||
|
||||
* 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
|
Loading…
Reference in New Issue
Block a user