]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commit
VMware: Improve datastore selection logic
authorVipin Balachandran <vbala@vmware.com>
Fri, 22 Aug 2014 13:53:11 +0000 (19:23 +0530)
committerVipin Balachandran <vbala@vmware.com>
Wed, 17 Sep 2014 05:57:56 +0000 (11:27 +0530)
commit2c672d1100ad4f44517838e17156b3ea6300b1cc
tree73b062b8b0f95410887ed6ca7bb081cbe346cea9
parent4b2600fe3ee1e233d19250dc6c38f5a3959c0e37
VMware: Improve datastore selection logic

The current datastore selection logic is not modularized and difficult
to extend. The retype API implementation has a requirement to specify
hard anti-affinity requirement with the current backing datastore. Some
of the bug fixes also need to specify hard affinity with one or more
datastore types. To support such requirements and to enable future
extensions, this patch introduces a new module which contains datastore
selection logic. The existing code for datastore selection is reused as
much as possible. The dependency on existing datastore selection logic
will be removed in a separate patch.

The current datastore selection iterates over a list of hosts, for each
host, queries the connected valid datastores and tries to select a
suitable datastore. The filtering is based on space, storage profile,
number of connected hosts and space utilization. The space utilization
is used only for breaking ties. If a suitable datastore is found, further
processing of list of hosts is skipped, which could result in uneven space
utilization. To solve this, the new selection logic introduces a requirement
called 'preferred_utilization_threshold' which can be exposed as a driver
config option.

Partial-bug: #1275682
Partial-bug: #1301943
Partial-bug: #1293955

Change-Id: I17e90aa09a303fbb8d4ad90037f440c8c4e7d072
cinder/tests/test_vmware_datastore.py [new file with mode: 0644]
cinder/volume/drivers/vmware/datastore.py [new file with mode: 0644]
cinder/volume/drivers/vmware/error_util.py
cinder/volume/drivers/vmware/volumeops.py