- Update to Xen 4.4.0 RC1 c/s 28233
- Drop 32bit support from spec file - Dropped 520d417d-xen-Add-stdbool.h-workaround-for-BSD.patch OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=282
This commit is contained in:
committed by
Git OBS Bridge
parent
7057c8e7c9
commit
e09562d587
97
block-dmmd
97
block-dmmd
@@ -2,22 +2,13 @@
|
||||
|
||||
# Usage: block-dmmd [add args | remove args]
|
||||
#
|
||||
# the dmmd device syntax (in xm commands/configs) is something like:
|
||||
# the xm config file should have something like:
|
||||
# dmmd:md;/dev/md0;md;/dev/md1;lvm;/dev/vg1/lv1
|
||||
# or
|
||||
# dmmd:lvm;/dev/vg1/lv1;lvm;/dev/vg1/lv2;md;/dev/md0
|
||||
# device pairs (type;dev) are processed in order, with the last device
|
||||
# assigned to the VM
|
||||
#
|
||||
# md devices can optionally:
|
||||
# specify a config file through:
|
||||
# md;/dev/md100(/var/xen/config/mdadm.conf)
|
||||
# use an array name (mdadm -N option):
|
||||
# dmmd:md;My-MD-name;lvm;/dev/vg1/lv1
|
||||
#
|
||||
# note the last device will be used for VM
|
||||
|
||||
# History:
|
||||
# 2013-07-03, loic.devulder@mpsa.com:
|
||||
# Partial rewrite of the script for supporting MD activation by name
|
||||
# 2009-06-09, mh@novell.com:
|
||||
# Emit debugging messages into a temporary file; if no longer needed,
|
||||
# just comment the exec I/O redirection below
|
||||
@@ -48,7 +39,7 @@ function run_mdadm()
|
||||
local msg
|
||||
local rc
|
||||
|
||||
msg="$(/sbin/mdadm $mdadm_cmd 2>&1)"
|
||||
msg="`/sbin/mdadm $mdadm_cmd 2>&1`"
|
||||
rc=$?
|
||||
case "$msg" in
|
||||
*"has been started"* | *"already active"* )
|
||||
@@ -68,12 +59,11 @@ function run_mdadm()
|
||||
|
||||
function activate_md()
|
||||
{
|
||||
# Make it explicitly local
|
||||
local par=$1
|
||||
local cfg dev dev_path rc t mdadm_opts
|
||||
local already_active=0 cfg dev rc t
|
||||
|
||||
if [ ${par} = ${par%%(*} ]; then
|
||||
# No configuration file specified
|
||||
# No configuration file specified:
|
||||
dev=$par
|
||||
cfg=
|
||||
else
|
||||
@@ -81,50 +71,23 @@ function activate_md()
|
||||
t=${par#*(}
|
||||
cfg="-c ${t%%)*}"
|
||||
fi
|
||||
|
||||
# Looking for device name or aliase
|
||||
if [ ${dev:0:1} = / ]; then
|
||||
dev_path=${dev%/*}
|
||||
mdadm_opts=
|
||||
else
|
||||
dev_path=/dev/md
|
||||
mdadm_opts="-s -N"
|
||||
if /sbin/mdadm -Q -D $dev; then
|
||||
already_active=1
|
||||
fi
|
||||
|
||||
# Is md device already active?
|
||||
# We need to use full path name, aliase is not possible...
|
||||
/sbin/mdadm -Q -D $dev_path/${dev##*/} > /dev/null 2>&1 \
|
||||
&& return 0
|
||||
|
||||
run_mdadm "-A $mdadm_opts $dev $cfg"
|
||||
run_mdadm "-A $dev $cfg"
|
||||
rc=$?
|
||||
[ $rc -eq 2 ] && return 0
|
||||
|
||||
if [ $already_active -eq 1 ] && [ $rc -eq 2 ]; then
|
||||
return 0
|
||||
fi
|
||||
return $rc
|
||||
}
|
||||
|
||||
function deactivate_md()
|
||||
{
|
||||
local par=$1
|
||||
local dev
|
||||
|
||||
if [ ${par} = ${par%%(*} ]; then
|
||||
# No configuration file specified
|
||||
dev=${par}
|
||||
else
|
||||
dev=${par%%(*}
|
||||
fi
|
||||
|
||||
# Looking for device name or aliase
|
||||
if [ ${dev:0:1} = / ]; then
|
||||
dev_path=${dev%/*}
|
||||
else
|
||||
dev_path=/dev/md
|
||||
fi
|
||||
|
||||
# We need the device name only while deactivating
|
||||
/sbin/mdadm -S ${dev_path}/${dev##*/} > /dev/null 2>&1
|
||||
local par=$1 # Make it explicitly local
|
||||
|
||||
## We need the device name only while deactivating
|
||||
/sbin/mdadm -S ${par%%(*}
|
||||
return $?
|
||||
}
|
||||
|
||||
@@ -136,20 +99,14 @@ function activate_lvm()
|
||||
|
||||
# Parse device-create-timeout from /etc/xen/xend-config.sxp
|
||||
# If not set, use default timeout of 90s
|
||||
parsed_timeout=$(grep -v "^[ \t]*#.*" /etc/xen/xend-config.sxp \
|
||||
| sed -n 's/(device-create-timeout \+\([0-9]\+\))/\1/p')
|
||||
[ ! -z $parsed_timeout ] \
|
||||
&& run_timeout=$((${parsed_timeout}*9/10))
|
||||
|
||||
# First scan for PVs and VGs
|
||||
# We need this for using md device as PV
|
||||
/sbin/pvscan > /dev/null 2>&1
|
||||
# /sbin/vgscan --mknodes > /dev/null 2>&1
|
||||
parsed_timeout=$(grep -v "^[ \t]*#.*" /etc/xen/xend-config.sxp|sed -n 's/(device-create-timeout \+\([0-9]\+\))/\1/p')
|
||||
if [ ! -z $parsed_timeout ]; then
|
||||
run_timeout=$((${parsed_timeout}*9/10))
|
||||
fi
|
||||
|
||||
end_time=$(($(date +%s)+${run_timeout}))
|
||||
while true; do
|
||||
/sbin/lvchange -aey $1 > /dev/null 2>&1
|
||||
|
||||
/sbin/lvchange -aey $1
|
||||
if [ $? -eq 0 -a -e $1 ]; then
|
||||
return 0
|
||||
fi
|
||||
@@ -165,8 +122,7 @@ function activate_lvm()
|
||||
|
||||
function deactivate_lvm()
|
||||
{
|
||||
/sbin/lvchange -aen $1 > /dev/null 2>&1
|
||||
|
||||
/sbin/lvchange -aen $1
|
||||
if [ $? -eq 0 ]; then
|
||||
# We may have to deactivate the VG now, but can ignore errors:
|
||||
# /sbin/vgchange -an ${1%/*} || :
|
||||
@@ -271,6 +227,7 @@ function parse_par()
|
||||
fi
|
||||
fi
|
||||
push "$t $s"
|
||||
|
||||
done
|
||||
}
|
||||
|
||||
@@ -289,11 +246,11 @@ case "$command" in
|
||||
fi
|
||||
lastparam=${dmmd##*;}
|
||||
usedevice=${lastparam%(*}
|
||||
xenstore-write $XENBUS_PATH/node "$usedevice"
|
||||
write_dev "$usedevice"
|
||||
release_lock "dmmd"
|
||||
exit 0
|
||||
;;
|
||||
xenstore-write $XENBUS_PATH/node "$usedevice"
|
||||
write_dev "$usedevice"
|
||||
release_lock "dmmd"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
remove)
|
||||
p=`xenstore-read $XENBUS_PATH/params` || true
|
||||
|
Reference in New Issue
Block a user