As discovered in tempest, when you create and delete volumes
quickly, and have a small volume storage pool, you can get cinder
scheduler to think you are "out of space" when you are not.
This is because cinder scheduler updates free space on it's
periodic job, which defaults to 60 seconds. We need control over
that value for the devstack gate otherwise we regularly get
overruns if we run too many volume tests quickly.
Work around for bug 1180976
Expect that this will get removed later if cinder gets a more
efficient way to update the scheduler for freed resources.
Also, don't be completely stupid about setting defaults....
Change-Id: I20e52e66fcc94b224476cdd14c88bd6981b4e617
| ... | ... |
@@ -58,6 +58,14 @@ CINDER_MULTI_LVM_BACKEND=$(trueorfalse False $CINDER_MULTI_LVM_BACKEND) |
| 58 | 58 |
# https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1023755 |
| 59 | 59 |
CINDER_SECURE_DELETE=`trueorfalse True $CINDER_SECURE_DELETE` |
| 60 | 60 |
|
| 61 |
+# Cinder reports allocations back to the scheduler on periodic intervals |
|
| 62 |
+# it turns out we can get an "out of space" issue when we run tests too |
|
| 63 |
+# quickly just because cinder didn't realize we'd freed up resources. |
|
| 64 |
+# Make this configurable so that devstack-gate/tempest can set it to |
|
| 65 |
+# less than the 60 second default |
|
| 66 |
+# https://bugs.launchpad.net/cinder/+bug/1180976 |
|
| 67 |
+CINDER_PERIODIC_INTERVAL=${CINDER_PERIODIC_INTERVAL:-60}
|
|
| 68 |
+ |
|
| 61 | 69 |
# Name of the lvm volume groups to use/create for iscsi volumes |
| 62 | 70 |
# VOLUME_GROUP2 is used only if CINDER_MULTI_LVM_BACKEND = True |
| 63 | 71 |
VOLUME_GROUP=${VOLUME_GROUP:-stack-volumes}
|
| ... | ... |
@@ -197,6 +205,7 @@ function configure_cinder() {
|
| 197 | 197 |
iniset $CINDER_CONF DEFAULT rootwrap_config "$CINDER_CONF_DIR/rootwrap.conf" |
| 198 | 198 |
iniset $CINDER_CONF DEFAULT osapi_volume_extension cinder.api.contrib.standard_extensions |
| 199 | 199 |
iniset $CINDER_CONF DEFAULT state_path $CINDER_STATE_PATH |
| 200 |
+ iniset $CINDER_CONF DEFAULT periodic_interval $CINDER_PERIODIC_INTERVAL |
|
| 200 | 201 |
|
| 201 | 202 |
if is_service_enabled tls-proxy; then |
| 202 | 203 |
# Set the service port for a proxy to take the original |