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_instancewill be added to every node group template, node group and templates relation. This field will be optional and- Falseby default.
- If - volume_local_to_instanceis set to- True, Cinder volumes will be created on the same host.
- If - volume_local_to_instanceis- True, 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_instanceoption.- volume_local_to_instanceis optional argument with- Falsevalue 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.
