DevStack currently lacks support for LVM ephemeral storage in Nova. This support is important for testing of Nova's LVM backend. The proposed change adds a default volume group, to be shared by Cinder and Nova. It also adds a configuration option NOVA_BACKEND, which must be LVM if it is set, that determines whether Nova should be configured to use LVM ephemeral storage. Change-Id: I4eb9afff3536fbcd563939f2d325efbb845081bb
		
			
				
	
	
		
			72 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/bin/bash
 | 
						|
#
 | 
						|
# lib/cinder_backends/lvm
 | 
						|
# Configure the LVM backend
 | 
						|
 | 
						|
# Enable with:
 | 
						|
#
 | 
						|
#   CINDER_ENABLED_BACKENDS+=,lvm:lvmname
 | 
						|
 | 
						|
# Dependencies:
 | 
						|
#
 | 
						|
# - ``functions`` file
 | 
						|
# - ``cinder`` configurations
 | 
						|
 | 
						|
# CINDER_CONF
 | 
						|
# DATA_DIR
 | 
						|
# VOLUME_GROUP_NAME
 | 
						|
 | 
						|
# clean_cinder_backend_lvm - called from clean_cinder()
 | 
						|
# configure_cinder_backend_lvm - called from configure_cinder()
 | 
						|
# init_cinder_backend_lvm - called from init_cinder()
 | 
						|
 | 
						|
 | 
						|
# Save trace setting
 | 
						|
MY_XTRACE=$(set +o | grep xtrace)
 | 
						|
set +o xtrace
 | 
						|
 | 
						|
 | 
						|
# TODO: resurrect backing device...need to know how to set values
 | 
						|
#VOLUME_BACKING_DEVICE=${VOLUME_BACKING_DEVICE:-}
 | 
						|
 | 
						|
# Entry Points
 | 
						|
# ------------
 | 
						|
 | 
						|
# cleanup_cinder_backend_lvm - Delete volume group and remove backing file
 | 
						|
# cleanup_cinder_backend_lvm $be_name
 | 
						|
function cleanup_cinder_backend_lvm {
 | 
						|
    local be_name=$1
 | 
						|
 | 
						|
    # Campsite rule: leave behind a volume group at least as clean as we found it
 | 
						|
    clean_lvm_volume_group $VOLUME_GROUP_NAME-$be_name
 | 
						|
}
 | 
						|
 | 
						|
# configure_cinder_backend_lvm - Set config files, create data dirs, etc
 | 
						|
# configure_cinder_backend_lvm $be_name
 | 
						|
function configure_cinder_backend_lvm {
 | 
						|
    local be_name=$1
 | 
						|
 | 
						|
    iniset $CINDER_CONF $be_name volume_backend_name $be_name
 | 
						|
    iniset $CINDER_CONF $be_name volume_driver "cinder.volume.drivers.lvm.LVMISCSIDriver"
 | 
						|
    iniset $CINDER_CONF $be_name volume_group $VOLUME_GROUP_NAME-$be_name
 | 
						|
 | 
						|
    if [[ "$CINDER_SECURE_DELETE" == "False" ]]; then
 | 
						|
        iniset $CINDER_CONF $be_name volume_clear none
 | 
						|
    fi
 | 
						|
}
 | 
						|
 | 
						|
# init_cinder_backend_lvm - Initialize volume group
 | 
						|
# init_cinder_backend_lvm $be_name
 | 
						|
function init_cinder_backend_lvm {
 | 
						|
    local be_name=$1
 | 
						|
 | 
						|
    # Start with a clean volume group
 | 
						|
    init_lvm_volume_group $VOLUME_GROUP_NAME-$be_name $VOLUME_BACKING_FILE_SIZE
 | 
						|
}
 | 
						|
 | 
						|
# Restore xtrace
 | 
						|
$MY_XTRACE
 | 
						|
 | 
						|
# mode: shell-script
 | 
						|
# End:
 |