Cinder volume instance locality functionality¶
https://blueprints.launchpad.net/sahara/+spec/volume-instance-locality
This specification proposes to add an opportunity to have an instance and an attached volumes on the same physical host.
Problem description¶
Currently there is no way to specify that volumes are attached to the same physical host as the instance. It would be nice to have this opportunity.
Proposed change¶
This feature could be done with Cinder InstanceLocalityFilter which allows to request creation of volumes local to instance. It would increase performance of I/O operations.
There will be several changes:
Boolean field
volume_local_to_instance
will be added to every node group template, node group and templates relation. This field will be optional andFalse
by default.If
volume_local_to_instance
is set toTrue
, Cinder volumes will be created on the same host.If
volume_local_to_instance
isTrue
, all instances of the node group should be created on hosts with free disk space >=volumes_per_node
*volumes_size
. If it cannot be done, error should be occurred.
Alternatives¶
None
Data model impact¶
volume_local_to_instance
field should be added to node_groups
,
node_group_templates
, templates_relations
.
REST API impact¶
API will be extended to support
volume_local_to_instance
option.volume_local_to_instance
is optional argument withFalse
value by default, so this change will be backward compatible.python client will be updated
Other end user impact¶
None
Deployer impact¶
None
Developer impact¶
None
Sahara-image-elements impact¶
None
Sahara-dashboard / Horizon impact¶
New field to select volume_local_to_instance
option during node group
template creation will be added.
Implementation¶
Assignee(s)¶
- Primary assignee:
apavlov-n
Work Items¶
Adding ability to create instance and volumes on the same host;
Adding ability to create instance on appropriate host;
Updating documentation;
Updating UI;
Updating python client;
Adding unit tests.
Dependencies¶
None
Testing¶
Unit tests will be added.
Documentation Impact¶
Documentation will be updated. Will be documented when this feature can be used and when it cannot. Also will be noted how to enable it on Cinder side.