]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commit
3PAR: Adding performance metrics to volume status
authorJoseph Vokt <joseph.vokt@hp.com>
Fri, 10 Jul 2015 20:10:40 +0000 (13:10 -0700)
committerJoseph Vokt <joseph.vokt@hp.com>
Fri, 14 Aug 2015 16:54:57 +0000 (09:54 -0700)
commita3f232e9a2dc03f0f7411447433e82e5f694fe64
tree9a6ee65ae294c0ea14a493e5aca7ad9c8b2708ff
parent1c8c91f8f1c8853b5ef62a89da82859c1dcdc38a
3PAR: Adding performance metrics to volume status

If one storage backend has high load while another has lower load,
when a user/admin creates a volume, the current evaluator/scheduler
may place the volume on the backend with higher load. In many cases,
the evaluator/scheduler should place that volume on the backend
with the lowest load for load balancing purposes. In general, for load
balancing virtual volume placement, an evaluator/scheduler needs
access to performance metrics (e.g. IOPS throughput, bandwidth,
latency, IO size) to measure load, but Cinder drivers don't generally
report those metrics.

Although these performance metrics are available from the 3PAR CLI,
they are currently inaccesible in the evaluator/scheduler. The
proposed changes add these metrics to the volume status report and
thus make them accesible by the evaluator/scheduler.

In cinder/volume/drivers/san/hp/hp_3par_common.py, uses the 3PAR
client method HP3parClient.getCPGStatData to get performance metrics,
and adds new fields in the output of HP3PARCommon.get_volume_stats
corresponding to the performance metrics: IOPS throughput, bandwidth,
latency, io_size, queue_length, and avg_busy_perc. These metrics are
taken by averaging samples taken once per day for the last week.

In cinder/tests/unit/test_hp3par.py, adds unit tests in
TestHP3PARFCDriver.test_get_volume_stats and in
TestHP3PARISCSIDriver.test_get_volume_stats.

Closes-bug: #1482741

Change-Id: If9e7b5ffd100489af6537f7dab970d89a6d70851
cinder/tests/unit/test_hp3par.py
cinder/volume/drivers/san/hp/hp_3par_common.py