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…
x
Reference in New Issue
Block a user