Cinder volume instance locality functionality
This specification proposes to add an opportunity to have an instance and an
attached volumes on the same physical host.
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.
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 and
False by default.
- If volume_local_to_instance is set to True, Cinder volumes will be
created on the same host.
- If volume_local_to_instance is 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.
Data model impact
volume_local_to_instance field should be added to node_groups,
REST API impact
- API will be extended to support volume_local_to_instance option.
volume_local_to_instance is optional argument with False value by
default, so this change will be backward compatible.
- python client will be updated
Other end user impact
Sahara-dashboard / Horizon impact
New field to select volume_local_to_instance option during node group
template creation will be added.
- Primary assignee:
- 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.
Unit tests will be added.
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.