Browse code

Merge pull request #85 from cloudbuilders/n-vol

initial support for volumes

Jesse Andrews authored on 2011/10/22 03:32:25
Showing 2 changed files
... ...
@@ -547,6 +547,31 @@ if [[ "$ENABLED_SERVICES" =~ "n-net" ]]; then
547 547
     mkdir -p $NOVA_DIR/networks
548 548
 fi
549 549
 
550
+# Volume Service
551
+# --------------
552
+
553
+if [[ "$ENABLED_SERVICES" =~ "n-vol" ]]; then
554
+    #
555
+    # Configure a default volume group called 'nova-volumes' for the nova-volume
556
+    # service if it does not yet exist.  If you don't wish to use a file backed
557
+    # volume group, create your own volume group called 'nova-volumes' before
558
+    # invoking stack.sh.
559
+    #
560
+    # By default, the backing file is 2G in size, and is stored in /opt/stack.
561
+    #
562
+    if ! sudo vgdisplay | grep -q nova-volumes; then
563
+        VOLUME_BACKING_FILE=${VOLUME_BACKING_FILE:-/opt/stack/nova-volumes-backing-file}
564
+        VOLUME_BACKING_FILE_SIZE=${VOLUME_BACKING_FILE_SIZE:-2052M}
565
+        truncate -s $VOLUME_BACKING_FILE_SIZE $VOLUME_BACKING_FILE
566
+        DEV=`sudo losetup -f --show $VOLUME_BACKING_FILE`
567
+        sudo vgcreate nova-volumes $DEV
568
+    fi
569
+
570
+    # Configure iscsitarget
571
+    sudo sed 's/ISCSITARGET_ENABLE=false/ISCSITARGET_ENABLE=true/' -i /etc/default/iscsitarget
572
+    sudo /etc/init.d/iscsitarget restart
573
+fi
574
+
550 575
 function add_nova_flag {
551 576
     echo "$1" >> $NOVA_DIR/bin/nova.conf
552 577
 }
... ...
@@ -687,6 +712,7 @@ fi
687 687
 # within the context of our original shell (so our groups won't be updated).
688 688
 # Use 'sg' to execute nova-compute as a member of the libvirtd group.
689 689
 screen_it n-cpu "cd $NOVA_DIR && sg libvirtd $NOVA_DIR/bin/nova-compute"
690
+screen_it n-vol "cd $NOVA_DIR && $NOVA_DIR/bin/nova-volume"
690 691
 screen_it n-net "cd $NOVA_DIR && $NOVA_DIR/bin/nova-network"
691 692
 screen_it n-sch "cd $NOVA_DIR && $NOVA_DIR/bin/nova-scheduler"
692 693
 screen_it n-vnc "cd $NOVNC_DIR && ./utils/nova-wsproxy.py 6080 --web . --flagfile=../nova/bin/nova.conf"
... ...
@@ -38,7 +38,8 @@ DEST=${DEST:-/opt/stack}
38 38
 WAIT_TILL_LAUNCH=${WAIT_TILL_LAUNCH:-1}
39 39
 
40 40
 # Param string to pass to stack.sh.  Like "EC2_DMZ_HOST=192.168.1.1 MYSQL_USER=nova"
41
-STACKSH_PARAMS=${STACKSH_PARAMS:-}
41
+# By default, n-vol is disabled for lxc, as iscsitarget doesn't work properly in lxc
42
+STACKSH_PARAMS=${STACKSH_PARAMS:-"ENABLED_SERVICES=g-api,g-reg,key,n-api,n-cpu,n-net,n-sch,n-vnc,dash,mysql,rabbit"}
42 43
 
43 44
 # Option to use the version of devstack on which we are currently working
44 45
 USE_CURRENT_DEVSTACK=${USE_CURRENT_DEVSTACK:-1}