|
@@ -7,6 +7,9 @@
|
|
# Also based on init script mountnfs.sh from initscripts package.
|
|
# Also based on init script mountnfs.sh from initscripts package.
|
|
#
|
|
#
|
|
# Modified for aoetools by David Martínez Moreno <ender@debian.org>.
|
|
# Modified for aoetools by David Martínez Moreno <ender@debian.org>.
|
|
|
|
+# Copyright 2006-2007. Under GPLv2.
|
|
|
|
+#
|
|
|
|
+# Support for LVM and other mount points contributed by Glen W. Mabey.
|
|
#
|
|
#
|
|
### BEGIN INIT INFO
|
|
### BEGIN INIT INFO
|
|
# Provides: aoe
|
|
# Provides: aoe
|
|
@@ -34,34 +37,9 @@ fi
|
|
|
|
|
|
set -e
|
|
set -e
|
|
|
|
|
|
-do_start() {
|
|
|
|
- # We exit if the user do not want us to try this.
|
|
|
|
- if [ "$INTERFACES" = "none" ]
|
|
|
|
- then
|
|
|
|
- echo "not started."
|
|
|
|
- exit 0
|
|
|
|
- fi
|
|
|
|
-
|
|
|
|
- # Usually aoe is a module, so we will try to load it.
|
|
|
|
- # Also, if udev is being used, the /dev/etherd devices
|
|
|
|
- # are not created until aoe module insertion.
|
|
|
|
- modprobe aoe >/dev/null 2>&1 || true
|
|
|
|
-
|
|
|
|
- if [ ! -c /dev/etherd/discover ]
|
|
|
|
- then
|
|
|
|
- echo "Missing devices under /dev/etherd/. Please run" >&2
|
|
|
|
- echo " aoe-mkdevs /dev/etherd" >&2
|
|
|
|
- echo "and try again."
|
|
|
|
- exit 1
|
|
|
|
- fi
|
|
|
|
-
|
|
|
|
- # Try to set up interfaces for discovery, if any.
|
|
|
|
- if [ ! -z "$INTERFACES" ]
|
|
|
|
- then
|
|
|
|
- aoe-interfaces $INTERFACES
|
|
|
|
- fi
|
|
|
|
-
|
|
|
|
- aoe-discover
|
|
|
|
|
|
+create_fs_list() {
|
|
|
|
+ # We start with a list from /etc/default/aoetools.
|
|
|
|
+ waitaoe="$AOEMOUNTS"
|
|
|
|
|
|
[ -f /etc/fstab ] || return
|
|
[ -f /etc/fstab ] || return
|
|
#
|
|
#
|
|
@@ -71,7 +49,6 @@ do_start() {
|
|
|
|
|
|
exec 9<&0 </etc/fstab
|
|
exec 9<&0 </etc/fstab
|
|
|
|
|
|
- waitaoe=
|
|
|
|
while read DEV MTPT FSTYPE OPTS REST
|
|
while read DEV MTPT FSTYPE OPTS REST
|
|
do
|
|
do
|
|
case "$OPTS" in
|
|
case "$OPTS" in
|
|
@@ -89,17 +66,93 @@ do_start() {
|
|
done
|
|
done
|
|
|
|
|
|
exec 0<&9 9<&-
|
|
exec 0<&9 9<&-
|
|
|
|
+}
|
|
|
|
|
|
- if [ ! -z "$waitaoe" ]
|
|
|
|
|
|
+do_start() {
|
|
|
|
+ # We exit if the user does not want us to try this.
|
|
|
|
+ if [ "$INTERFACES" = "none" ]
|
|
|
|
+ then
|
|
|
|
+ echo "not started."
|
|
|
|
+ exit 0
|
|
|
|
+ fi
|
|
|
|
+
|
|
|
|
+ # Usually aoe is a module, so we will try to load it.
|
|
|
|
+ modprobe aoe >/dev/null 2>&1 || true
|
|
|
|
+
|
|
|
|
+ # Also, if udev is being used, the /dev/etherd devices
|
|
|
|
+ # are not created until aoe module insertion, so...
|
|
|
|
+ sleep 1 # ...we give udev a chance to populate /dev/etherd/.
|
|
|
|
+
|
|
|
|
+ if [ ! -c /dev/etherd/discover ]
|
|
then
|
|
then
|
|
echo
|
|
echo
|
|
|
|
+ echo "Missing devices under /dev/etherd/. Please run" >&2
|
|
|
|
+ echo " aoe-mkdevs /dev/etherd" >&2
|
|
|
|
+ echo "and try again." >&2
|
|
|
|
+ exit 1
|
|
fi
|
|
fi
|
|
|
|
|
|
- for mountpt in $waitaoe; do
|
|
|
|
- echo "Mounting $mountpt..."
|
|
|
|
- mount $mountpt
|
|
|
|
- #log_action_begin_msg "Waiting for $mountpt"
|
|
|
|
- done
|
|
|
|
|
|
+ # Try to set up interfaces for discovery, if any.
|
|
|
|
+ if [ -n "$INTERFACES" ]
|
|
|
|
+ then
|
|
|
|
+ aoe-interfaces $INTERFACES
|
|
|
|
+ fi
|
|
|
|
+
|
|
|
|
+ aoe-discover
|
|
|
|
+
|
|
|
|
+ create_fs_list
|
|
|
|
+
|
|
|
|
+ if [ -n "$waitaoe" ]
|
|
|
|
+ then
|
|
|
|
+ echo
|
|
|
|
+ fi
|
|
|
|
+
|
|
|
|
+ if [ ! -x "/sbin/vgchange" -a -n "$LVMGROUPS" ]
|
|
|
|
+ then
|
|
|
|
+ echo
|
|
|
|
+ echo "The LVM2 tools are not present. Please install lvm2 package and try again." >&2
|
|
|
|
+ echo "We will not honour LVMGROUPS." >&2
|
|
|
|
+ LMVGROUPS=""
|
|
|
|
+ fi
|
|
|
|
+
|
|
|
|
+ if [ -n "$LVMGROUPS" ]
|
|
|
|
+ then
|
|
|
|
+ for vg in "$LVMGROUPS"; do
|
|
|
|
+ vgchange --available=y $vg
|
|
|
|
+ done
|
|
|
|
+ fi
|
|
|
|
+
|
|
|
|
+ if [ -n "$waitaoe" ]
|
|
|
|
+ then
|
|
|
|
+ for mountpt in $waitaoe; do
|
|
|
|
+ echo "Mounting $mountpt..."
|
|
|
|
+ mount $mountpt
|
|
|
|
+ #log_action_begin_msg "Waiting for $mountpt."
|
|
|
|
+ done
|
|
|
|
+ fi
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+do_stop() {
|
|
|
|
+ create_fs_list
|
|
|
|
+
|
|
|
|
+ if [ -n "$waitaoe" ]
|
|
|
|
+ then
|
|
|
|
+ for mountpt in $waitaoe; do
|
|
|
|
+ echo "Unmounting $mountpt..."
|
|
|
|
+ umount $mountpt
|
|
|
|
+ done
|
|
|
|
+ fi
|
|
|
|
+
|
|
|
|
+ if [ -n "$LVMGROUPS" ]
|
|
|
|
+ then
|
|
|
|
+ for vg in "$LVMGROUPS"; do
|
|
|
|
+ vgchange --available=n $vg
|
|
|
|
+ done
|
|
|
|
+ fi
|
|
|
|
+
|
|
|
|
+ # Removing the module prevents LVM's "Shutting down LVM Volume Groups..."
|
|
|
|
+ # from hanging when an LVM has been setup on a device in /dev/etherd/.
|
|
|
|
+ modprobe --remove aoe >/dev/null 2>&1 || true
|
|
}
|
|
}
|
|
|
|
|
|
case "$1" in
|
|
case "$1" in
|
|
@@ -108,11 +161,12 @@ case "$1" in
|
|
|
|
|
|
do_start
|
|
do_start
|
|
|
|
|
|
- #echo "$NAME."
|
|
|
|
;;
|
|
;;
|
|
stop)
|
|
stop)
|
|
- #echo -n "Stopping $DESC: "
|
|
|
|
- #echo "$NAME."
|
|
|
|
|
|
+ echo -n "Stopping $DESC: "
|
|
|
|
+
|
|
|
|
+ do_stop
|
|
|
|
+
|
|
;;
|
|
;;
|
|
*)
|
|
*)
|
|
N=/etc/init.d/$NAME
|
|
N=/etc/init.d/$NAME
|