os-xenpai: add option to disable FS journaling
Add option "-r DISABLE_JOURNALING" to control if FS journaling would be disable or not. Change-Id: I0aeddf949a325be630110ece7593c40b7bc80404
This commit is contained in:
parent
5078424491
commit
59eec59cff
@ -52,6 +52,8 @@ flags:
|
|||||||
-n No devstack, just create the JEOS template that could be
|
-n No devstack, just create the JEOS template that could be
|
||||||
exported to an xva using the -e option.
|
exported to an xva using the -e option.
|
||||||
|
|
||||||
|
-r Disable journaling if this flag is set. It will reduce disk IO, but
|
||||||
|
may lead to file system unstable after long time use
|
||||||
|
|
||||||
An example run:
|
An example run:
|
||||||
|
|
||||||
@ -87,6 +89,7 @@ JEOS_TEMP_NAME="jeos_template_for_ubuntu"
|
|||||||
NODE_TYPE="all"
|
NODE_TYPE="all"
|
||||||
NODE_NAME=""
|
NODE_NAME=""
|
||||||
CONTROLLER_IP=""
|
CONTROLLER_IP=""
|
||||||
|
DISABLE_JOURNALING="false"
|
||||||
|
|
||||||
# Get Positional arguments
|
# Get Positional arguments
|
||||||
set +u
|
set +u
|
||||||
@ -103,7 +106,7 @@ REMAINING_OPTIONS="$#"
|
|||||||
|
|
||||||
# Get optional parameters
|
# Get optional parameters
|
||||||
set +e
|
set +e
|
||||||
while getopts ":t:d:fnl:j:e:o:s:w:a:i:m:" flag; do
|
while getopts ":t:d:fnrl:j:e:o:s:w:a:i:m:" flag; do
|
||||||
REMAINING_OPTIONS=$(expr "$REMAINING_OPTIONS" - 1)
|
REMAINING_OPTIONS=$(expr "$REMAINING_OPTIONS" - 1)
|
||||||
case "$flag" in
|
case "$flag" in
|
||||||
t)
|
t)
|
||||||
@ -162,6 +165,9 @@ while getopts ":t:d:fnl:j:e:o:s:w:a:i:m:" flag; do
|
|||||||
NODE_NAME="$OPTARG"
|
NODE_NAME="$OPTARG"
|
||||||
REMAINING_OPTIONS=$(expr "$REMAINING_OPTIONS" - 1)
|
REMAINING_OPTIONS=$(expr "$REMAINING_OPTIONS" - 1)
|
||||||
;;
|
;;
|
||||||
|
r)
|
||||||
|
DISABLE_JOURNALING="true"
|
||||||
|
;;
|
||||||
\?)
|
\?)
|
||||||
print_usage_and_die "Invalid option -$OPTARG"
|
print_usage_and_die "Invalid option -$OPTARG"
|
||||||
;;
|
;;
|
||||||
@ -516,11 +522,14 @@ LOCALCONF_CONTENT_ENDS_HERE
|
|||||||
|
|
||||||
# begin installation process
|
# begin installation process
|
||||||
cd $DOM0_TOOL_DIR
|
cd $DOM0_TOOL_DIR
|
||||||
|
OPTARGS=""
|
||||||
if [ $FORCE_SR_REPLACEMENT = 'true' ]; then
|
if [ $FORCE_SR_REPLACEMENT = 'true' ]; then
|
||||||
./install_on_xen_host.sh -d $DEVSTACK_SRC -l $LOGDIR -w $WAIT_TILL_LAUNCH -f
|
OPTARGS="$OPTARGS -f"
|
||||||
else
|
|
||||||
./install_on_xen_host.sh -d $DEVSTACK_SRC -l $LOGDIR -w $WAIT_TILL_LAUNCH
|
|
||||||
fi
|
fi
|
||||||
|
if [ $DISABLE_JOURNALING = 'true' ]; then
|
||||||
|
OPTARGS="$OPTARGS -r"
|
||||||
|
fi
|
||||||
|
./install_on_xen_host.sh -d $DEVSTACK_SRC -l $LOGDIR -w $WAIT_TILL_LAUNCH $OPTARGS
|
||||||
|
|
||||||
END_OF_XENSERVER_COMMANDS
|
END_OF_XENSERVER_COMMANDS
|
||||||
|
|
||||||
|
@ -35,22 +35,26 @@ source $CONF_DIR/xenrc
|
|||||||
# Defaults for optional arguments
|
# Defaults for optional arguments
|
||||||
DEVSTACK_SRC=${DEVSTACK_SRC:-"https://github.com/openstack-dev/devstack"}
|
DEVSTACK_SRC=${DEVSTACK_SRC:-"https://github.com/openstack-dev/devstack"}
|
||||||
LOGDIR="/opt/stack/devstack_logs"
|
LOGDIR="/opt/stack/devstack_logs"
|
||||||
|
DISABLE_JOURNALING="false"
|
||||||
|
|
||||||
# Number of options passed to this script
|
# Number of options passed to this script
|
||||||
REMAINING_OPTIONS="$#"
|
REMAINING_OPTIONS="$#"
|
||||||
# Get optional parameters
|
# Get optional parameters
|
||||||
set +e
|
set +e
|
||||||
while getopts ":d:l:" flag; do
|
while getopts ":d:l:r" flag; do
|
||||||
REMAINING_OPTIONS=$(expr "$REMAINING_OPTIONS" - 1)
|
REMAINING_OPTIONS=$(expr "$REMAINING_OPTIONS" - 1)
|
||||||
case "$flag" in
|
case "$flag" in
|
||||||
d)
|
d)
|
||||||
DEVSTACK_SRC="$DEVSTACK_SRC"
|
DEVSTACK_SRC="$OPTARG"
|
||||||
REMAINING_OPTIONS=$(expr "$REMAINING_OPTIONS" - 1)
|
REMAINING_OPTIONS=$(expr "$REMAINING_OPTIONS" - 1)
|
||||||
;;
|
;;
|
||||||
l)
|
l)
|
||||||
LOGDIR="$LOGDIR"
|
LOGDIR="$OPTARG"
|
||||||
REMAINING_OPTIONS=$(expr "$REMAINING_OPTIONS" - 1)
|
REMAINING_OPTIONS=$(expr "$REMAINING_OPTIONS" - 1)
|
||||||
;;
|
;;
|
||||||
|
r)
|
||||||
|
DISABLE_JOURNALING="true"
|
||||||
|
;;
|
||||||
\?)
|
\?)
|
||||||
print_usage_and_die "Invalid option -$OPTARG"
|
print_usage_and_die "Invalid option -$OPTARG"
|
||||||
;;
|
;;
|
||||||
@ -164,6 +168,27 @@ $SCRIPT_DIR/persist_domU_interfaces.sh "$DEV_STACK_DOMU_NAME"
|
|||||||
FLAT_NETWORK_BRIDGE="${FLAT_NETWORK_BRIDGE:-$(bridge_for "$VM_BRIDGE_OR_NET_NAME")}"
|
FLAT_NETWORK_BRIDGE="${FLAT_NETWORK_BRIDGE:-$(bridge_for "$VM_BRIDGE_OR_NET_NAME")}"
|
||||||
append_kernel_cmdline "$DEV_STACK_DOMU_NAME" "flat_network_bridge=${FLAT_NETWORK_BRIDGE}"
|
append_kernel_cmdline "$DEV_STACK_DOMU_NAME" "flat_network_bridge=${FLAT_NETWORK_BRIDGE}"
|
||||||
|
|
||||||
|
# Disable FS journaling. It would reduce disk IO, but may lead to file system
|
||||||
|
# unstable after long time use
|
||||||
|
if [ "$DISABLE_JOURNALING" = "true" ]; then
|
||||||
|
vm_vbd=$(xe vbd-list vm-name-label=$DEV_STACK_DOMU_NAME --minimal)
|
||||||
|
vm_vdi=$(xe vdi-list vbd-uuids=$vm_vbd --minimal)
|
||||||
|
dom_zero_uuid=$(xe vm-list dom-id=0 --minimal)
|
||||||
|
tmp_vbd=$(xe vbd-create device=autodetect bootable=false mode=RW type=Disk vdi-uuid=$vm_vdi vm-uuid=$dom_zero_uuid)
|
||||||
|
xe vbd-plug uuid=$tmp_vbd
|
||||||
|
sr_id=$(get_local_sr)
|
||||||
|
kpartx -p p -avs /dev/sm/backend/$sr_id/$vm_vdi
|
||||||
|
echo "********Before disable FS journaling********"
|
||||||
|
tune2fs -l /dev/mapper/${vm_vdi}p1 | grep "Filesystem features"
|
||||||
|
echo "********Disable FS journaling********"
|
||||||
|
tune2fs -O ^has_journal /dev/mapper/${vm_vdi}p1
|
||||||
|
echo "********After disable FS journaling********"
|
||||||
|
tune2fs -l /dev/mapper/${vm_vdi}p1 | grep "Filesystem features"
|
||||||
|
kpartx -p p -dvs /dev/sm/backend/$sr_id/$vm_vdi
|
||||||
|
xe vbd-unplug uuid=$tmp_vbd timeout=60
|
||||||
|
xe vbd-destroy uuid=$tmp_vbd
|
||||||
|
fi
|
||||||
|
|
||||||
# Add a separate xvdb, if it was requested
|
# Add a separate xvdb, if it was requested
|
||||||
if [[ "0" != "$XEN_XVDB_SIZE_GB" ]]; then
|
if [[ "0" != "$XEN_XVDB_SIZE_GB" ]]; then
|
||||||
vm=$(xe vm-list name-label="$DEV_STACK_DOMU_NAME" --minimal)
|
vm=$(xe vm-list name-label="$DEV_STACK_DOMU_NAME" --minimal)
|
||||||
|
@ -13,6 +13,7 @@ INSTALL_DIR="$THIS_DIR/install"
|
|||||||
COMM_DIR="$INSTALL_DIR/common"
|
COMM_DIR="$INSTALL_DIR/common"
|
||||||
CONF_DIR="$INSTALL_DIR/conf"
|
CONF_DIR="$INSTALL_DIR/conf"
|
||||||
DEV_STACK_DIR="$INSTALL_DIR/devstack"
|
DEV_STACK_DIR="$INSTALL_DIR/devstack"
|
||||||
|
DISABLE_JOURNALING="false"
|
||||||
|
|
||||||
. $COMM_DIR/functions
|
. $COMM_DIR/functions
|
||||||
# Source params
|
# Source params
|
||||||
@ -33,6 +34,8 @@ optional arguments:
|
|||||||
-l LOG_FILE_DIRECTORY The directory in which to store the devstack logs on failure.
|
-l LOG_FILE_DIRECTORY The directory in which to store the devstack logs on failure.
|
||||||
-w WAIT_TILL_LAUNCH Set it to 1 if user want to pending on the installation until
|
-w WAIT_TILL_LAUNCH Set it to 1 if user want to pending on the installation until
|
||||||
it is done
|
it is done
|
||||||
|
-r DISABLE_JOURNALING Disable journaling if this flag is set. It will reduce disk IO, but
|
||||||
|
may lead to file system unstable after long time use
|
||||||
|
|
||||||
flags:
|
flags:
|
||||||
-f Force SR replacement. If your XenServer has an LVM type SR,
|
-f Force SR replacement. If your XenServer has an LVM type SR,
|
||||||
@ -60,7 +63,7 @@ REMAINING_OPTIONS="$#"
|
|||||||
|
|
||||||
# Get optional parameters
|
# Get optional parameters
|
||||||
set +e
|
set +e
|
||||||
while getopts ":d:fl:w:" flag; do
|
while getopts ":d:frl:w:" flag; do
|
||||||
REMAINING_OPTIONS=$(expr "$REMAINING_OPTIONS" - 1)
|
REMAINING_OPTIONS=$(expr "$REMAINING_OPTIONS" - 1)
|
||||||
case "$flag" in
|
case "$flag" in
|
||||||
d)
|
d)
|
||||||
@ -78,6 +81,9 @@ while getopts ":d:fl:w:" flag; do
|
|||||||
WAIT_TILL_LAUNCH="$OPTARG"
|
WAIT_TILL_LAUNCH="$OPTARG"
|
||||||
REMAINING_OPTIONS=$(expr "$REMAINING_OPTIONS" - 1)
|
REMAINING_OPTIONS=$(expr "$REMAINING_OPTIONS" - 1)
|
||||||
;;
|
;;
|
||||||
|
r)
|
||||||
|
DISABLE_JOURNALING="true"
|
||||||
|
;;
|
||||||
\?)
|
\?)
|
||||||
print_usage_and_die "Invalid option -$OPTARG"
|
print_usage_and_die "Invalid option -$OPTARG"
|
||||||
exit 1
|
exit 1
|
||||||
@ -140,7 +146,11 @@ if [ -n "${EXIT_AFTER_JEOS_INSTALLATION:-}" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# install DevStack on the VM
|
# install DevStack on the VM
|
||||||
$DEV_STACK_DIR/install_devstack.sh -d $DEVSTACK_SRC -l $LOGDIR
|
OPTARGS=""
|
||||||
|
if [ $DISABLE_JOURNALING = 'true' ]; then
|
||||||
|
OPTARGS="$OPTARGS -r"
|
||||||
|
fi
|
||||||
|
$DEV_STACK_DIR/install_devstack.sh -d $DEVSTACK_SRC -l $LOGDIR $OPTARGS
|
||||||
|
|
||||||
#start openstack domU VM
|
#start openstack domU VM
|
||||||
xe vm-start vm="$DEV_STACK_DOMU_NAME"
|
xe vm-start vm="$DEV_STACK_DOMU_NAME"
|
||||||
|
Loading…
Reference in New Issue
Block a user