|
...
|
...
|
@@ -160,6 +160,7 @@ ENABLED_SERVICES=${ENABLED_SERVICES:-g-api,g-reg,key,n-api,n-cpu,n-net,n-sch,n-v
|
|
160
|
160
|
|
|
161
|
161
|
# Name of the lvm volume group to use/create for iscsi volumes
|
|
162
|
162
|
VOLUME_GROUP=${VOLUME_GROUP:-nova-volumes}
|
|
|
163
|
+VOLUME_NAME_PREFIX=${VOLUME_NAME_PREFIX:-volume-}
|
|
163
|
164
|
|
|
164
|
165
|
# Nova hypervisor configuration. We default to libvirt whth **kvm** but will
|
|
165
|
166
|
# drop back to **qemu** if we are unable to load the kvm module. Stack.sh can
|
|
...
|
...
|
@@ -943,12 +944,29 @@ if [[ "$ENABLED_SERVICES" =~ "n-vol" ]]; then
|
|
943
|
943
|
|
|
944
|
944
|
apt_get install iscsitarget-dkms iscsitarget
|
|
945
|
945
|
|
|
946
|
|
- if ! sudo vgdisplay | grep -q $VOLUME_GROUP; then
|
|
|
946
|
+ if ! sudo vgs $VOLUME_GROUP; then
|
|
947
|
947
|
VOLUME_BACKING_FILE=${VOLUME_BACKING_FILE:-$DEST/nova-volumes-backing-file}
|
|
948
|
948
|
VOLUME_BACKING_FILE_SIZE=${VOLUME_BACKING_FILE_SIZE:-2052M}
|
|
949
|
|
- truncate -s $VOLUME_BACKING_FILE_SIZE $VOLUME_BACKING_FILE
|
|
|
949
|
+ # Only create if the file doesn't already exists
|
|
|
950
|
+ [[ -f $VOLUME_BACKING_FILE ]] || truncate -s $VOLUME_BACKING_FILE_SIZE $VOLUME_BACKING_FILE
|
|
950
|
951
|
DEV=`sudo losetup -f --show $VOLUME_BACKING_FILE`
|
|
951
|
|
- sudo vgcreate $VOLUME_GROUP $DEV
|
|
|
952
|
+ # Only create if the loopback device doesn't contain $VOLUME_GROUP
|
|
|
953
|
+ if ! sudo vgs $VOLUME_GROUP; then sudo vgcreate $VOLUME_GROUP $DEV; fi
|
|
|
954
|
+ fi
|
|
|
955
|
+
|
|
|
956
|
+ if sudo vgs $VOLUME_GROUP; then
|
|
|
957
|
+ # Clean out existing volumes
|
|
|
958
|
+ for lv in `sudo lvs --noheadings -o lv_name $VOLUME_GROUP`; do
|
|
|
959
|
+ # VOLUME_NAME_PREFIX prefixes the LVs we want
|
|
|
960
|
+ if [[ "${lv#$VOLUME_NAME_PREFIX}" != "$lv" ]]; then
|
|
|
961
|
+ tid=`egrep "^tid.+$lv" /proc/net/iet/volume | cut -f1 -d' ' | tr ':' '='`
|
|
|
962
|
+ if [[ -n "$tid" ]]; then
|
|
|
963
|
+ lun=`egrep "lun.+$lv" /proc/net/iet/volume | cut -f1 -d' ' | tr ':' '=' | tr -d '\t'`
|
|
|
964
|
+ sudo ietadm --op delete --$tid --$lun
|
|
|
965
|
+ fi
|
|
|
966
|
+ sudo lvremove -f $VOLUME_GROUP/$lv
|
|
|
967
|
+ fi
|
|
|
968
|
+ done
|
|
952
|
969
|
fi
|
|
953
|
970
|
|
|
954
|
971
|
# Configure iscsitarget
|
|
...
|
...
|
@@ -980,6 +998,7 @@ else
|
|
980
|
980
|
fi
|
|
981
|
981
|
if [[ "$ENABLED_SERVICES" =~ "n-vol" ]]; then
|
|
982
|
982
|
add_nova_flag "--volume_group=$VOLUME_GROUP"
|
|
|
983
|
+ add_nova_flag "--volume_name_template=${VOLUME_NAME_PREFIX}%08x"
|
|
983
|
984
|
fi
|
|
984
|
985
|
add_nova_flag "--my_ip=$HOST_IP"
|
|
985
|
986
|
add_nova_flag "--public_interface=$PUBLIC_INTERFACE"
|