| ... | ... |
@@ -69,10 +69,12 @@ CINDER_PERIODIC_INTERVAL=${CINDER_PERIODIC_INTERVAL:-60}
|
| 69 | 69 |
# Name of the lvm volume groups to use/create for iscsi volumes |
| 70 | 70 |
VOLUME_GROUP=${VOLUME_GROUP:-stack-volumes}
|
| 71 | 71 |
VOLUME_BACKING_FILE=${VOLUME_BACKING_FILE:-$DATA_DIR/${VOLUME_GROUP}-backing-file}
|
| 72 |
+VOLUME_BACKING_DEVICE=${VOLUME_BACKING_DEVICE:-}
|
|
| 72 | 73 |
|
| 73 | 74 |
# VOLUME_GROUP2 is used only if CINDER_MULTI_LVM_BACKEND = True |
| 74 | 75 |
VOLUME_GROUP2=${VOLUME_GROUP2:-stack-volumes2}
|
| 75 | 76 |
VOLUME_BACKING_FILE2=${VOLUME_BACKING_FILE2:-$DATA_DIR/${VOLUME_GROUP2}-backing-file}
|
| 77 |
+VOLUME_BACKING_DEVICE2=${VOLUME_BACKING_DEVICE2:-}
|
|
| 76 | 78 |
|
| 77 | 79 |
VOLUME_NAME_PREFIX=${VOLUME_NAME_PREFIX:-volume-}
|
| 78 | 80 |
|
| ... | ... |
@@ -335,28 +337,35 @@ create_cinder_volume_group() {
|
| 335 | 335 |
# ``/opt/stack/data``. |
| 336 | 336 |
|
| 337 | 337 |
if ! sudo vgs $VOLUME_GROUP; then |
| 338 |
- # Only create if the file doesn't already exists |
|
| 339 |
- [[ -f $VOLUME_BACKING_FILE ]] || truncate -s $VOLUME_BACKING_FILE_SIZE $VOLUME_BACKING_FILE |
|
| 340 |
- |
|
| 341 |
- DEV=`sudo losetup -f --show $VOLUME_BACKING_FILE` |
|
| 338 |
+ if [ -z "$VOLUME_BACKING_DEVICE" ]; then |
|
| 339 |
+ # Only create if the file doesn't already exists |
|
| 340 |
+ [[ -f $VOLUME_BACKING_FILE ]] || truncate -s $VOLUME_BACKING_FILE_SIZE $VOLUME_BACKING_FILE |
|
| 341 |
+ DEV=`sudo losetup -f --show $VOLUME_BACKING_FILE` |
|
| 342 | 342 |
|
| 343 |
- # Only create if the loopback device doesn't contain $VOLUME_GROUP |
|
| 344 |
- if ! sudo vgs $VOLUME_GROUP; then |
|
| 345 |
- sudo vgcreate $VOLUME_GROUP $DEV |
|
| 343 |
+ # Only create if the loopback device doesn't contain $VOLUME_GROUP |
|
| 344 |
+ if ! sudo vgs $VOLUME_GROUP; then |
|
| 345 |
+ sudo vgcreate $VOLUME_GROUP $DEV |
|
| 346 |
+ fi |
|
| 347 |
+ else |
|
| 348 |
+ sudo vgcreate $VOLUME_GROUP $VOLUME_BACKING_DEVICE |
|
| 346 | 349 |
fi |
| 347 | 350 |
fi |
| 348 | 351 |
if [ "$CINDER_MULTI_LVM_BACKEND" = "True" ]; then |
| 349 | 352 |
#set up the second volume if CINDER_MULTI_LVM_BACKEND is enabled |
| 350 | 353 |
|
| 351 | 354 |
if ! sudo vgs $VOLUME_GROUP2; then |
| 352 |
- # Only create if the file doesn't already exists |
|
| 353 |
- [[ -f $VOLUME_BACKING_FILE2 ]] || truncate -s $VOLUME_BACKING_FILE_SIZE $VOLUME_BACKING_FILE2 |
|
| 354 |
- |
|
| 355 |
- DEV=`sudo losetup -f --show $VOLUME_BACKING_FILE2` |
|
| 356 |
- |
|
| 357 |
- # Only create if the loopback device doesn't contain $VOLUME_GROUP |
|
| 358 |
- if ! sudo vgs $VOLUME_GROUP2; then |
|
| 359 |
- sudo vgcreate $VOLUME_GROUP2 $DEV |
|
| 355 |
+ if [ -z "$VOLUME_BACKING_DEVICE2" ]; then |
|
| 356 |
+ # Only create if the file doesn't already exists |
|
| 357 |
+ [[ -f $VOLUME_BACKING_FILE2 ]] || truncate -s $VOLUME_BACKING_FILE_SIZE $VOLUME_BACKING_FILE2 |
|
| 358 |
+ |
|
| 359 |
+ DEV=`sudo losetup -f --show $VOLUME_BACKING_FILE2` |
|
| 360 |
+ |
|
| 361 |
+ # Only create if the loopback device doesn't contain $VOLUME_GROUP |
|
| 362 |
+ if ! sudo vgs $VOLUME_GROUP2; then |
|
| 363 |
+ sudo vgcreate $VOLUME_GROUP2 $DEV |
|
| 364 |
+ fi |
|
| 365 |
+ else |
|
| 366 |
+ sudo vgcreate $VOLUME_GROUP2 $VOLUME_BACKING_DEVICE2 |
|
| 360 | 367 |
fi |
| 361 | 368 |
fi |
| 362 | 369 |
fi |
| ... | ... |
@@ -259,6 +259,19 @@ fi |
| 259 | 259 |
FLAT_NETWORK_BRIDGE=$(bridge_for "$VM_BRIDGE_OR_NET_NAME") |
| 260 | 260 |
append_kernel_cmdline "$GUEST_NAME" "flat_network_bridge=${FLAT_NETWORK_BRIDGE}"
|
| 261 | 261 |
|
| 262 |
+# Add a separate xvdb, if it was requested |
|
| 263 |
+if [[ "0" != "$XEN_XVDB_SIZE_GB" ]]; then |
|
| 264 |
+ vm=$(xe vm-list name-label="$GUEST_NAME" --minimal) |
|
| 265 |
+ |
|
| 266 |
+ # Add a new disk |
|
| 267 |
+ localsr=$(get_local_sr) |
|
| 268 |
+ extra_vdi=$(xe vdi-create \ |
|
| 269 |
+ name-label=xvdb-added-by-devstack \ |
|
| 270 |
+ virtual-size="${XEN_XVDB_SIZE_GB}GiB" \
|
|
| 271 |
+ sr-uuid=$localsr type=user) |
|
| 272 |
+ xe vbd-create vm-uuid=$vm vdi-uuid=$extra_vdi device=1 |
|
| 273 |
+fi |
|
| 274 |
+ |
|
| 262 | 275 |
# create a snapshot before the first boot |
| 263 | 276 |
# to allow a quick re-run with the same settings |
| 264 | 277 |
xe vm-snapshot vm="$GUEST_NAME" new-name-label="$SNAME_FIRST_BOOT" |
| ... | ... |
@@ -76,4 +76,14 @@ UBUNTU_INST_NAMESERVERS="" |
| 76 | 76 |
UBUNTU_INST_NETMASK="" |
| 77 | 77 |
UBUNTU_INST_GATEWAY="" |
| 78 | 78 |
|
| 79 |
+# Create a separate xvdb. Tis could be used as a backing device for cinder |
|
| 80 |
+# volumes. Specify |
|
| 81 |
+# XEN_XVDB_SIZE_GB=10 |
|
| 82 |
+# VOLUME_BACKING_DEVICE=/dev/xvdb |
|
| 83 |
+# in your localrc to avoid kernel lockups: |
|
| 84 |
+# https://bugs.launchpad.net/cinder/+bug/1023755 |
|
| 85 |
+# |
|
| 86 |
+# Set the size to 0 to avoid creation of additional disk. |
|
| 87 |
+XEN_XVDB_SIZE_GB=0 |
|
| 88 |
+ |
|
| 79 | 89 |
source ../../stackrc |