Merge "Support optimized cinder backend for glance"
This commit is contained in:
commit
5585d84c92
19
lib/cinder
19
lib/cinder
@ -98,6 +98,22 @@ if is_fedora || is_suse; then
|
||||
fi
|
||||
fi
|
||||
|
||||
# When Cinder is used as a backend for Glance, it can be configured to clone
|
||||
# the volume containing image data directly in the backend instead of
|
||||
# transferring data from volume to volume. Value is a comma separated list of
|
||||
# schemes (currently only 'file' and 'cinder' are supported). The default
|
||||
# configuration in Cinder is empty (that is, do not use this feature). NOTE:
|
||||
# to use this feature you must also enable GLANCE_SHOW_DIRECT_URL and/or
|
||||
# GLANCE_SHOW_MULTIPLE_LOCATIONS for glance-api.conf.
|
||||
CINDER_ALLOWED_DIRECT_URL_SCHEMES=${CINDER_ALLOWED_DIRECT_URL_SCHEMES:-}
|
||||
if [[ -n "$CINDER_ALLOWED_DIRECT_URL_SCHEMES" ]]; then
|
||||
if [[ "${GLANCE_SHOW_DIRECT_URL:-False}" != "True" \
|
||||
&& "${GLANCE_SHOW_MULTIPLE_LOCATIONS:-False}" != "True" ]]; then
|
||||
warn $LINENO "CINDER_ALLOWED_DIRECT_URL_SCHEMES is set, but neither \
|
||||
GLANCE_SHOW_DIRECT_URL nor GLANCE_SHOW_MULTIPLE_LOCATIONS is True"
|
||||
fi
|
||||
fi
|
||||
|
||||
# For backward compatibility
|
||||
# Before CINDER_BACKUP_DRIVER was introduced, ceph backup driver was configured
|
||||
# along with ceph backend driver.
|
||||
@ -266,6 +282,9 @@ function configure_cinder {
|
||||
fi
|
||||
iniset $CINDER_CONF key_manager backend cinder.keymgr.conf_key_mgr.ConfKeyManager
|
||||
iniset $CINDER_CONF key_manager fixed_key $(openssl rand -hex 16)
|
||||
if [[ -n "$CINDER_ALLOWED_DIRECT_URL_SCHEMES" ]]; then
|
||||
iniset $CINDER_CONF DEFAULT allowed_direct_url_schemes $CINDER_ALLOWED_DIRECT_URL_SCHEMES
|
||||
fi
|
||||
|
||||
# Avoid RPC timeouts in slow CI and test environments by doubling the
|
||||
# default response timeout set by RPC clients. See bug #1873234 for more
|
||||
|
15
lib/glance
15
lib/glance
@ -51,6 +51,18 @@ GLANCE_STORE_ROOTWRAP_BASE_DIR=/usr/local/etc/glance
|
||||
if is_opensuse; then
|
||||
GLANCE_STORE_ROOTWRAP_BASE_DIR=/usr/etc/glance
|
||||
fi
|
||||
# When Cinder is used as a glance store, you can optionally configure cinder to
|
||||
# optimize bootable volume creation by allowing volumes to be cloned directly
|
||||
# in the backend instead of transferring data via Glance. To use this feature,
|
||||
# set CINDER_ALLOWED_DIRECT_URL_SCHEMES for cinder.conf and enable
|
||||
# GLANCE_SHOW_DIRECT_URL and/or GLANCE_SHOW_MULTIPLE_LOCATIONS for Glance. The
|
||||
# default value for both of these is False, because for some backends they
|
||||
# present a grave security risk (though not for Cinder, because all that's
|
||||
# exposed is the volume_id where the image data is stored.) See OSSN-0065 for
|
||||
# more information: https://wiki.openstack.org/wiki/OSSN/OSSN-0065
|
||||
GLANCE_SHOW_DIRECT_URL=$(trueorfalse False GLANCE_SHOW_DIRECT_URL)
|
||||
GLANCE_SHOW_MULTIPLE_LOCATIONS=$(trueorfalse False GLANCE_SHOW_MULTIPLE_LOCATIONS)
|
||||
|
||||
# Glance multi-store configuration
|
||||
# Boolean flag to enable multiple store configuration for glance
|
||||
GLANCE_ENABLE_MULTIPLE_STORES=$(trueorfalse False GLANCE_ENABLE_MULTIPLE_STORES)
|
||||
@ -333,6 +345,9 @@ function configure_glance {
|
||||
if [ "$VIRT_DRIVER" = 'libvirt' ] && [ "$LIBVIRT_TYPE" = 'parallels' ]; then
|
||||
iniset $GLANCE_API_CONF DEFAULT disk_formats "ami,ari,aki,vhd,vmdk,raw,qcow2,vdi,iso,ploop"
|
||||
fi
|
||||
# Only use these if you know what you are doing! See OSSN-0065
|
||||
iniset $GLANCE_API_CONF DEFAULT show_image_direct_url $GLANCE_SHOW_DIRECT_URL
|
||||
iniset $GLANCE_API_CONF DEFAULT show_multiple_locations $GLANCE_SHOW_MULTIPLE_LOCATIONS
|
||||
|
||||
# Configure glance_store
|
||||
configure_glance_store $USE_CINDER_FOR_GLANCE $GLANCE_ENABLE_MULTIPLE_STORES
|
||||
|
Loading…
Reference in New Issue
Block a user