Enlarge Cinder-Volume container

Cinder requires temporary working space to convert images. This patch
exposes cinder_volume_lv_size_gb to the user config file, so the user
can decide how large the cinder volumes container should be based on
available space and the size of images that will need to be converted.

cinder_volume_lv_size_gb is used to override container_lvm_fssize in
group_vars/cinder_volume. Simple enough but doesn't work because
templated variables (or indirect variables) are not expanded when
accessed via hostvars[] see: ansible/ansible#7844. In order to work
around that, I have eliminated hostvars[] usage from the container
creation mechanism. This may have positive speed implications as the
limit of container creation parallelism is now forks rather than number
of hosts. However it does make this change larger than a small bug fix.

Also note that this patch makes use of delegate_to, so specific ansible
versions must be used to avoid ansible/ansible#8705. Our requirements
file currently specifies a version before this bug was introduced.

There are two commits in this PR as one is the actual bugfix, the other
is infrastructure changes required for that bugfix to work. Also only
the bugfix may be needed if the upstream bugs are fixed.

Closes-Bug: #1399427
Change-Id: I2b5c5e692d3d72b603fdd6298475cb76c52c66df
This commit is contained in:
Hugh Saunders 2014-11-21 11:51:42 +00:00
parent 3a13141bc5
commit a769413d89
2 changed files with 39 additions and 0 deletions

View File

@ -41,6 +41,10 @@ used_ips:
# override from within the rpc_deploy configuration file. Anything # override from within the rpc_deploy configuration file. Anything
# specified here will take precedence over anything else any where. # specified here will take precedence over anything else any where.
global_overrides: global_overrides:
# Size of cinder volumes container. Default is 5GB.
# Space must be added for cinder to have enough space to convert images.
# For example, to be able to convert 100GB images, set this value to 105.
#cinder_volume_lv_size_gb: 105GB
# Internal Management vip address # Internal Management vip address
internal_lb_vip_address: 172.29.236.1 internal_lb_vip_address: 172.29.236.1
# External DMZ VIP address # External DMZ VIP address

View File

@ -0,0 +1,35 @@
---
# Copyright 2014, Rackspace US, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# The variables file used by the playbooks in the Cinder-api group.
# These don't have to be explicitly imported by vars_files: they are autopopulated.
# Note, most cinder settings sare set in cinder_all,
# this file is just to override the lvm size for the volumes container.
# The volumes container needs a larger FS as it must have tmp space for
# converting glnace imges to volumes.
# https://github.com/rcbops/ansible-lxc-rpc/issues/166
# Default is 5GB (same as other containers).
# Space must be added for cinder image conversion to work.
# For example, to be able to convert 100GB images, set this to 105GB.
cinder_volume_lv_size_gb: 5GB
# only used when the lxc vg is present on the target
container_lvm_fssize: "{{cinder_volume_lv_size_gb}}"