0269a26f13
Having an instance and an attached volume on the same physical host (i.e. data locality) can be desirable in some configurations, in order to achieve high-performance disk I/O. This patch adds an InstanceLocalityFilter filter that allow users to request creation of volumes 'local' to an existing instance, without specifying the hypervisor's hostname, and without any knowledge of the underlying back-ends. In order to work: - At least one physical host should run both nova-compute and cinder-volume services. - The Extended Server Attributes extension needs to be active in Nova (this is by default), so that the 'OS-EXT-SRV-ATTR:host' property is returned when requesting instance info. - The user making the call needs to have sufficient rights for the property to be returned by Nova. This can be achieved either by changing Nova's policy.json (the 'extended_server_attributes' option), or by setting an account with privileged rights in Cinder conf. For example: Instance 01234567-89ab-cdef is running in a hypervisor on the physical host 'my-host'. To create a 42 GB volume in a back-end hosted by 'my-host': cinder create --hint local_to_instance=01234567-89ab-cdef 42 Note: Currently it is not recommended to allow instance migrations for hypervisors where this hint will be used. In case of instance migration, a previously locally-created volume will not be automatically migrated. Also in case of instance migration during the volume's scheduling, the result is unpredictable. DocImpact: New Cinder scheduler filter Change-Id: Id428fa2132c1afed424443083645787ee3cb0399
89 lines
3.4 KiB
INI
89 lines
3.4 KiB
INI
[metadata]
|
|
name = cinder
|
|
version = 2015.1
|
|
summary = OpenStack Block Storage
|
|
description-file =
|
|
README.rst
|
|
author = OpenStack
|
|
author-email = openstack-dev@lists.openstack.org
|
|
home-page = http://www.openstack.org/
|
|
classifier =
|
|
Environment :: OpenStack
|
|
Intended Audience :: Information Technology
|
|
Intended Audience :: System Administrators
|
|
License :: OSI Approved :: Apache Software License
|
|
Operating System :: POSIX :: Linux
|
|
Programming Language :: Python
|
|
Programming Language :: Python :: 2
|
|
Programming Language :: Python :: 2.7
|
|
|
|
[global]
|
|
setup-hooks =
|
|
pbr.hooks.setup_hook
|
|
|
|
[files]
|
|
packages =
|
|
cinder
|
|
|
|
[entry_points]
|
|
cinder.scheduler.filters =
|
|
AvailabilityZoneFilter = cinder.openstack.common.scheduler.filters.availability_zone_filter:AvailabilityZoneFilter
|
|
CapabilitiesFilter = cinder.openstack.common.scheduler.filters.capabilities_filter:CapabilitiesFilter
|
|
CapacityFilter = cinder.scheduler.filters.capacity_filter:CapacityFilter
|
|
DifferentBackendFilter = cinder.scheduler.filters.affinity_filter:DifferentBackendFilter
|
|
DriverFilter = cinder.scheduler.filters.driver_filter:DriverFilter
|
|
JsonFilter = cinder.openstack.common.scheduler.filters.json_filter:JsonFilter
|
|
RetryFilter = cinder.openstack.common.scheduler.filters.ignore_attempted_hosts_filter:IgnoreAttemptedHostsFilter
|
|
SameBackendFilter = cinder.scheduler.filters.affinity_filter:SameBackendFilter
|
|
InstanceLocalityFilter = cinder.scheduler.filters.instance_locality_filter:InstanceLocalityFilter
|
|
cinder.scheduler.weights =
|
|
AllocatedCapacityWeigher = cinder.scheduler.weights.capacity:AllocatedCapacityWeigher
|
|
CapacityWeigher = cinder.scheduler.weights.capacity:CapacityWeigher
|
|
ChanceWeigher = cinder.scheduler.weights.chance:ChanceWeigher
|
|
GoodnessWeigher = cinder.scheduler.weights.goodness:GoodnessWeigher
|
|
VolumeNumberWeigher = cinder.scheduler.weights.volume_number:VolumeNumberWeigher
|
|
console_scripts =
|
|
cinder-all = cinder.cmd.all:main
|
|
cinder-api = cinder.cmd.api:main
|
|
cinder-backup = cinder.cmd.backup:main
|
|
cinder-manage = cinder.cmd.manage:main
|
|
cinder-rootwrap = oslo.rootwrap.cmd:main
|
|
cinder-rtstool = cinder.cmd.rtstool:main
|
|
cinder-scheduler = cinder.cmd.scheduler:main
|
|
cinder-volume = cinder.cmd.volume:main
|
|
cinder-volume-usage-audit = cinder.cmd.volume_usage_audit:main
|
|
# These are for backwards compat with Havana notification_driver configuration values
|
|
oslo.messaging.notify.drivers =
|
|
cinder.openstack.common.notifier.log_notifier = oslo.messaging.notify._impl_log:LogDriver
|
|
cinder.openstack.common.notifier.no_op_notifier = oslo.messaging.notify._impl_noop:NoOpDriver
|
|
cinder.openstack.common.notifier.rpc_notifier2 = oslo.messaging.notify._impl_messaging:MessagingV2Driver
|
|
cinder.openstack.common.notifier.rpc_notifier = oslo.messaging.notify._impl_messaging:MessagingDriver
|
|
cinder.openstack.common.notifier.test_notifier = oslo.messaging.notify._impl_test:TestDriver
|
|
|
|
cinder.database.migration_backend =
|
|
sqlalchemy = oslo.db.sqlalchemy.migration
|
|
|
|
[build_sphinx]
|
|
all_files = 1
|
|
build-dir = doc/build
|
|
source-dir = doc/source
|
|
|
|
[egg_info]
|
|
tag_build =
|
|
tag_date = 0
|
|
tag_svn_revision = 0
|
|
|
|
[compile_catalog]
|
|
directory = cinder/locale
|
|
domain = cinder
|
|
|
|
[update_catalog]
|
|
domain = cinder
|
|
output_dir = cinder/locale
|
|
input_file = cinder/locale/cinder.pot
|
|
|
|
[extract_messages]
|
|
keywords = _ gettext ngettext l_ lazy_gettext
|
|
mapping_file = babel.cfg
|
|
output_file = cinder/locale/cinder.pot
|