Init default lvm volume group only if required
A recent patch [1] added support for lvm ephemeral storage for nova, but at the cost of initializing a default lvm volume group even if it was not required. This change ensures that init of the default volume group is only performed when nova and/or cinder are configured to use lvm. 1: https://review.openstack.org/#/c/132333 Change-Id: I7634ca0ed0ffe1b13464e4d66744918f85149f2e Closes-Bug: #1414820
This commit is contained in:
parent
4764cffd5a
commit
c070a3dbb5
@ -399,6 +399,10 @@ function init_cinder {
|
|||||||
be_type=${be%%:*}
|
be_type=${be%%:*}
|
||||||
be_name=${be##*:}
|
be_name=${be##*:}
|
||||||
if type init_cinder_backend_${be_type} >/dev/null 2>&1; then
|
if type init_cinder_backend_${be_type} >/dev/null 2>&1; then
|
||||||
|
# Always init the default volume group for lvm.
|
||||||
|
if [[ "$be_type" == "lvm" ]]; then
|
||||||
|
init_default_lvm_volume_group
|
||||||
|
fi
|
||||||
init_cinder_backend_${be_type} ${be_name}
|
init_cinder_backend_${be_type} ${be_name}
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
19
lib/lvm
19
lib/lvm
@ -117,6 +117,25 @@ function init_lvm_volume_group {
|
|||||||
_clean_lvm_volume_group $vg
|
_clean_lvm_volume_group $vg
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Sentinal value to ensure that init of default lvm volume group is
|
||||||
|
# only performed once across calls of init_default_lvm_volume_group.
|
||||||
|
_DEFAULT_LVM_INIT=${_DEFAULT_LVM_INIT:-0}
|
||||||
|
|
||||||
|
# init_default_lvm_volume_group() initializes a default volume group
|
||||||
|
# intended to be shared between cinder and nova. It is idempotent;
|
||||||
|
# the init of the default volume group is guaranteed to be performed
|
||||||
|
# only once so that either or both of the dependent services can
|
||||||
|
# safely call this function.
|
||||||
|
#
|
||||||
|
# Usage: init_default_lvm_volume_group()
|
||||||
|
function init_default_lvm_volume_group {
|
||||||
|
if [[ "$_DEFAULT_LVM_INIT" = "0" ]]; then
|
||||||
|
init_lvm_volume_group $DEFAULT_VOLUME_GROUP_NAME $VOLUME_BACKING_FILE_SIZE
|
||||||
|
_DEFAULT_LVM_INIT=1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# Restore xtrace
|
# Restore xtrace
|
||||||
$MY_XTRACE
|
$MY_XTRACE
|
||||||
|
|
||||||
|
4
lib/nova
4
lib/nova
@ -640,6 +640,10 @@ function init_nova {
|
|||||||
|
|
||||||
create_nova_cache_dir
|
create_nova_cache_dir
|
||||||
create_nova_keys_dir
|
create_nova_keys_dir
|
||||||
|
|
||||||
|
if [[ "$NOVA_BACKEND" == "LVM" ]]; then
|
||||||
|
init_default_lvm_volume_group
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# install_novaclient() - Collect source and prepare
|
# install_novaclient() - Collect source and prepare
|
||||||
|
4
stack.sh
4
stack.sh
@ -939,10 +939,6 @@ init_service_check
|
|||||||
# A better kind of sysstat, with the top process per time slice
|
# A better kind of sysstat, with the top process per time slice
|
||||||
start_dstat
|
start_dstat
|
||||||
|
|
||||||
# Initialize default LVM volume group
|
|
||||||
# -----------------------------------
|
|
||||||
init_lvm_volume_group $DEFAULT_VOLUME_GROUP_NAME $VOLUME_BACKING_FILE_SIZE
|
|
||||||
|
|
||||||
# Start Services
|
# Start Services
|
||||||
# ==============
|
# ==============
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user