Grenade needs to be able to configure Swift without initializing the
backing disk files. Move it into create_swift_disk() and call
from init_swift().
Also move start of n-obj (if swift3 is not enabled) to start_nova().
Change-Id: Id33939182d84eeff10ba4139eeced2c1bc532f0f
| ... | ... |
@@ -660,6 +660,11 @@ function start_nova() {
|
| 660 | 660 |
screen_it n-xvnc "cd $NOVA_DIR && $NOVA_BIN_DIR/nova-xvpvncproxy --config-file $NOVA_CONF" |
| 661 | 661 |
screen_it n-spice "cd $NOVA_DIR && $NOVA_BIN_DIR/nova-spicehtml5proxy --config-file $NOVA_CONF --web $SPICE_DIR" |
| 662 | 662 |
screen_it n-cauth "cd $NOVA_DIR && $NOVA_BIN_DIR/nova-consoleauth" |
| 663 |
+ |
|
| 664 |
+ # Starting the nova-objectstore only if swift3 service is not enabled. |
|
| 665 |
+ # Swift will act as s3 objectstore. |
|
| 666 |
+ is_service_enabled swift3 || \ |
|
| 667 |
+ screen_it n-obj "cd $NOVA_DIR && $NOVA_BIN_DIR/nova-objectstore" |
|
| 663 | 668 |
} |
| 664 | 669 |
|
| 665 | 670 |
# stop_nova() - Stop running processes (non-screen) |
| ... | ... |
@@ -111,54 +111,8 @@ function configure_swift() {
|
| 111 | 111 |
# Make sure to kill all swift processes first |
| 112 | 112 |
swift-init --run-dir=${SWIFT_DATA_DIR}/run all stop || true
|
| 113 | 113 |
|
| 114 |
- # First do a bit of setup by creating the directories and |
|
| 115 |
- # changing the permissions so we can run it as our user. |
|
| 116 |
- |
|
| 117 |
- USER_GROUP=$(id -g) |
|
| 118 |
- sudo mkdir -p ${SWIFT_DATA_DIR}/{drives,cache,run,logs}
|
|
| 119 |
- sudo chown -R $USER:${USER_GROUP} ${SWIFT_DATA_DIR}
|
|
| 120 |
- |
|
| 121 |
- # Create a loopback disk and format it to XFS. |
|
| 122 |
- if [[ -e ${SWIFT_DATA_DIR}/drives/images/swift.img ]]; then
|
|
| 123 |
- if egrep -q ${SWIFT_DATA_DIR}/drives/sdb1 /proc/mounts; then
|
|
| 124 |
- sudo umount ${SWIFT_DATA_DIR}/drives/sdb1
|
|
| 125 |
- sudo rm -f ${SWIFT_DATA_DIR}/drives/images/swift.img
|
|
| 126 |
- fi |
|
| 127 |
- fi |
|
| 128 |
- |
|
| 129 |
- mkdir -p ${SWIFT_DATA_DIR}/drives/images
|
|
| 130 |
- sudo touch ${SWIFT_DATA_DIR}/drives/images/swift.img
|
|
| 131 |
- sudo chown $USER: ${SWIFT_DATA_DIR}/drives/images/swift.img
|
|
| 132 |
- |
|
| 133 |
- dd if=/dev/zero of=${SWIFT_DATA_DIR}/drives/images/swift.img \
|
|
| 134 |
- bs=1024 count=0 seek=${SWIFT_LOOPBACK_DISK_SIZE}
|
|
| 135 |
- |
|
| 136 |
- # Make a fresh XFS filesystem |
|
| 137 |
- mkfs.xfs -f -i size=1024 ${SWIFT_DATA_DIR}/drives/images/swift.img
|
|
| 138 |
- |
|
| 139 |
- # Mount the disk with mount options to make it as efficient as possible |
|
| 140 |
- mkdir -p ${SWIFT_DATA_DIR}/drives/sdb1
|
|
| 141 |
- if ! egrep -q ${SWIFT_DATA_DIR}/drives/sdb1 /proc/mounts; then
|
|
| 142 |
- sudo mount -t xfs -o loop,noatime,nodiratime,nobarrier,logbufs=8 \ |
|
| 143 |
- ${SWIFT_DATA_DIR}/drives/images/swift.img ${SWIFT_DATA_DIR}/drives/sdb1
|
|
| 144 |
- fi |
|
| 145 |
- |
|
| 146 |
- # Create a link to the above mount and |
|
| 147 |
- # create all of the directories needed to emulate a few different servers |
|
| 148 |
- for node_number in ${SWIFT_REPLICAS_SEQ}; do
|
|
| 149 |
- sudo ln -sf ${SWIFT_DATA_DIR}/drives/sdb1/$node_number ${SWIFT_DATA_DIR}/$node_number;
|
|
| 150 |
- drive=${SWIFT_DATA_DIR}/drives/sdb1/${node_number}
|
|
| 151 |
- node=${SWIFT_DATA_DIR}/${node_number}/node
|
|
| 152 |
- node_device=${node}/sdb1
|
|
| 153 |
- [[ -d $node ]] && continue |
|
| 154 |
- [[ -d $drive ]] && continue |
|
| 155 |
- sudo install -o ${USER} -g $USER_GROUP -d $drive
|
|
| 156 |
- sudo install -o ${USER} -g $USER_GROUP -d $node_device
|
|
| 157 |
- sudo chown -R $USER: ${node}
|
|
| 158 |
- done |
|
| 159 |
- |
|
| 160 |
- sudo mkdir -p ${SWIFT_CONF_DIR}/{object,container,account}-server
|
|
| 161 |
- sudo chown -R $USER: ${SWIFT_CONF_DIR}
|
|
| 114 |
+ sudo mkdir -p ${SWIFT_CONF_DIR}/{object,container,account}-server
|
|
| 115 |
+ sudo chown -R $USER: ${SWIFT_CONF_DIR}
|
|
| 162 | 116 |
|
| 163 | 117 |
if [[ "$SWIFT_CONF_DIR" != "/etc/swift" ]]; then |
| 164 | 118 |
# Some swift tools are hard-coded to use ``/etc/swift`` and are apparently not going to be fixed. |
| ... | ... |
@@ -332,12 +286,66 @@ function configure_swiftclient() {
|
| 332 | 332 |
setup_develop $SWIFTCLIENT_DIR |
| 333 | 333 |
} |
| 334 | 334 |
|
| 335 |
+# create_swift_disk - Create Swift backing disk |
|
| 336 |
+function create_swift_disk() {
|
|
| 337 |
+ local node_number |
|
| 338 |
+ |
|
| 339 |
+ # First do a bit of setup by creating the directories and |
|
| 340 |
+ # changing the permissions so we can run it as our user. |
|
| 341 |
+ |
|
| 342 |
+ USER_GROUP=$(id -g) |
|
| 343 |
+ sudo mkdir -p ${SWIFT_DATA_DIR}/{drives,cache,run,logs}
|
|
| 344 |
+ sudo chown -R $USER:${USER_GROUP} ${SWIFT_DATA_DIR}
|
|
| 345 |
+ |
|
| 346 |
+ # Create a loopback disk and format it to XFS. |
|
| 347 |
+ if [[ -e ${SWIFT_DATA_DIR}/drives/images/swift.img ]]; then
|
|
| 348 |
+ if egrep -q ${SWIFT_DATA_DIR}/drives/sdb1 /proc/mounts; then
|
|
| 349 |
+ sudo umount ${SWIFT_DATA_DIR}/drives/sdb1
|
|
| 350 |
+ sudo rm -f ${SWIFT_DATA_DIR}/drives/images/swift.img
|
|
| 351 |
+ fi |
|
| 352 |
+ fi |
|
| 353 |
+ |
|
| 354 |
+ mkdir -p ${SWIFT_DATA_DIR}/drives/images
|
|
| 355 |
+ sudo touch ${SWIFT_DATA_DIR}/drives/images/swift.img
|
|
| 356 |
+ sudo chown $USER: ${SWIFT_DATA_DIR}/drives/images/swift.img
|
|
| 357 |
+ |
|
| 358 |
+ dd if=/dev/zero of=${SWIFT_DATA_DIR}/drives/images/swift.img \
|
|
| 359 |
+ bs=1024 count=0 seek=${SWIFT_LOOPBACK_DISK_SIZE}
|
|
| 360 |
+ |
|
| 361 |
+ # Make a fresh XFS filesystem |
|
| 362 |
+ mkfs.xfs -f -i size=1024 ${SWIFT_DATA_DIR}/drives/images/swift.img
|
|
| 363 |
+ |
|
| 364 |
+ # Mount the disk with mount options to make it as efficient as possible |
|
| 365 |
+ mkdir -p ${SWIFT_DATA_DIR}/drives/sdb1
|
|
| 366 |
+ if ! egrep -q ${SWIFT_DATA_DIR}/drives/sdb1 /proc/mounts; then
|
|
| 367 |
+ sudo mount -t xfs -o loop,noatime,nodiratime,nobarrier,logbufs=8 \ |
|
| 368 |
+ ${SWIFT_DATA_DIR}/drives/images/swift.img ${SWIFT_DATA_DIR}/drives/sdb1
|
|
| 369 |
+ fi |
|
| 370 |
+ |
|
| 371 |
+ # Create a link to the above mount and |
|
| 372 |
+ # create all of the directories needed to emulate a few different servers |
|
| 373 |
+ for node_number in ${SWIFT_REPLICAS_SEQ}; do
|
|
| 374 |
+ sudo ln -sf ${SWIFT_DATA_DIR}/drives/sdb1/$node_number ${SWIFT_DATA_DIR}/$node_number;
|
|
| 375 |
+ drive=${SWIFT_DATA_DIR}/drives/sdb1/${node_number}
|
|
| 376 |
+ node=${SWIFT_DATA_DIR}/${node_number}/node
|
|
| 377 |
+ node_device=${node}/sdb1
|
|
| 378 |
+ [[ -d $node ]] && continue |
|
| 379 |
+ [[ -d $drive ]] && continue |
|
| 380 |
+ sudo install -o ${USER} -g $USER_GROUP -d $drive
|
|
| 381 |
+ sudo install -o ${USER} -g $USER_GROUP -d $node_device
|
|
| 382 |
+ sudo chown -R $USER: ${node}
|
|
| 383 |
+ done |
|
| 384 |
+} |
|
| 385 |
+ |
|
| 335 | 386 |
# init_swift() - Initialize rings |
| 336 | 387 |
function init_swift() {
|
| 337 | 388 |
local node_number |
| 338 | 389 |
# Make sure to kill all swift processes first |
| 339 | 390 |
swift-init --run-dir=${SWIFT_DATA_DIR}/run all stop || true
|
| 340 | 391 |
|
| 392 |
+ # Forcibly re-create the backing filesystem |
|
| 393 |
+ create_swift_disk |
|
| 394 |
+ |
|
| 341 | 395 |
# This is where we create three different rings for swift with |
| 342 | 396 |
# different object servers binding on different ports. |
| 343 | 397 |
pushd ${SWIFT_CONF_DIR} >/dev/null && {
|
| ... | ... |
@@ -1062,12 +1062,6 @@ if is_service_enabled ceilometer; then |
| 1062 | 1062 |
start_ceilometer |
| 1063 | 1063 |
fi |
| 1064 | 1064 |
|
| 1065 |
-# Starting the nova-objectstore only if swift3 service is not enabled. |
|
| 1066 |
-# Swift will act as s3 objectstore. |
|
| 1067 |
-is_service_enabled swift3 || \ |
|
| 1068 |
- screen_it n-obj "cd $NOVA_DIR && $NOVA_BIN_DIR/nova-objectstore" |
|
| 1069 |
- |
|
| 1070 |
- |
|
| 1071 | 1065 |
# Configure and launch heat engine, api and metadata |
| 1072 | 1066 |
if is_service_enabled heat; then |
| 1073 | 1067 |
# Initialize heat, including replacing nova flavors |