132 lines
3.3 KiB
Bash
Executable File
132 lines
3.3 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# chkconfig: 345 13 89
|
|
# description: Starts and stops the iSCSI initiator
|
|
#
|
|
# processname: /sbin/iscsid
|
|
# pidfile: /var/run/sbin/iscsid.pid
|
|
# config: /etc/config/iscsi/sbin/iscsid.conf
|
|
|
|
# Source function library.
|
|
|
|
PATH=/sbin:/bin:/usr/sbin:/usr/bin
|
|
INITNAME_FILE=/etc/iscsi/initiatorname.iscsi
|
|
CONF_FILE=/etc/config/iscsi/sbin/iscsid.conf
|
|
MAPPING_FILE=/etc/config/virtual_share_mapping
|
|
|
|
RETVAL=0
|
|
|
|
mkinitname()
|
|
{
|
|
[ -d /etc/iscsi ] || /bin/mkdir -p /etc/iscsi
|
|
MODEL=`/sbin/getcfg System Model`
|
|
SERVER_NAME=`/sbin/getcfg System "Server Name"`
|
|
project_name=`/sbin/getcfg Project Name -f /var/default`
|
|
if [ "x$project_name" = "xAthens" ]; then
|
|
/bin/echo "InitiatorName=iqn.1987-05.com.cisco:${MODEL}.${SERVER_NAME}" > $INITNAME_FILE
|
|
else
|
|
if [ -f /etc/IS_G ]; then
|
|
/bin/echo "InitiatorName=iqn.2004-04.com.NAS:Initiator.${SERVER_NAME}" > $INITNAME_FILE
|
|
else
|
|
/bin/echo "InitiatorName=iqn.2004-04.com.qnap:${MODEL}.${SERVER_NAME}" > $INITNAME_FILE
|
|
fi
|
|
fi
|
|
}
|
|
start()
|
|
{
|
|
INSTALL_FLAG_FILE=/tmp/check_install.flag
|
|
# echo Test $INSTALL_FLAG_FILE >> /tmp/inst.log
|
|
if [ -f $INSTALL_FLAG_FILE ] ; then
|
|
# /bin/cat $INSTALL_FLAG_FILE >> /tmp/inst.log
|
|
INSTALLING=`/bin/cat $INSTALL_FLAG_FILE`
|
|
[ $INSTALLING = "1" ] && exit 0
|
|
fi
|
|
|
|
Q_CONF_FILE=/etc/config/iscsi-init.conf
|
|
/bin/echo $"Starting iSCSI initiator service: "
|
|
[ -f $Q_CONF_FILE ] || /bin/echo "#QNAP iSCSI initiator configure file" > $Q_CONF_FILE
|
|
[ -f $MAPPING_FILE ] || echo "[VirtualDisk1]" > $MAPPING_FILE
|
|
/sbin/insmod /lib/modules/misc/scsi_transport_iscsi.ko
|
|
/sbin/insmod /lib/modules/misc/libiscsi.ko
|
|
[ -f /lib/modules/misc/libiscsi_tcp.ko ] && /sbin/insmod /lib/modules/misc/libiscsi_tcp.ko
|
|
/sbin/insmod /lib/modules/misc/iscsi_tcp.ko
|
|
mkinitname
|
|
/sbin/iscsid --config=${CONF_FILE} --initiatorname=${INITNAME_FILE}
|
|
RETVAL=$?
|
|
[ $RETVAL -eq 0 ] || return
|
|
|
|
/bin/touch /var/lock/subsys/open-iscsi
|
|
#VDD enhancement version uses vdd_control daemon to replace vdd_control+vdd_scan_target
|
|
[ -f /sbin/vdd_scan_target ] || /sbin/daemon_mgr vdd_control start "/sbin/vdd_control -d >/dev/null 2>&1 &"
|
|
|
|
[ -f /etc/config/virtual_share_mapping ] || echo "" >> /etc/config/virtual_share_mapping
|
|
if [ -f /sbin/storage_boot_init ]; then
|
|
/sbin/storage_boot_init 8
|
|
fi
|
|
|
|
|
|
|
|
# /bin/echo -n $"Setting up iSCSI targets: "
|
|
# /sbin/iscsiadm -m node --loginall=automatic
|
|
# success
|
|
# /bin/echo
|
|
}
|
|
|
|
stop()
|
|
{
|
|
[ -f /sbin/umount_all_vdd ] && /sbin/umount_all_vdd
|
|
/bin/echo -n $"Stopping iSCSI initiator service: "
|
|
/bin/sync
|
|
/sbin/iscsiadm -m node --logoutall=all
|
|
/usr/bin/killall iscsid
|
|
/bin/rm -f /var/run/sbin/iscsid.pid
|
|
[ $RETVAL -eq 0 ] && /bin/rm -f /var/lock/subsys/open-iscsi
|
|
status=0
|
|
/sbin/rmmod /lib/modules/misc/iscsi_tcp.ko
|
|
if [ "$?" -ne "0" -a "$?" -ne "1" ]; then
|
|
status=1
|
|
fi
|
|
/sbin/rmmod /lib/modules/misc/libiscsi_tcp.ko
|
|
if [ "$?" -ne "0" -a "$?" -ne "1" ]; then
|
|
status=1
|
|
fi
|
|
/sbin/rmmod /lib/modules/misc/libiscsi.ko
|
|
if [ "$?" -ne "0" -a "$?" -ne "1" ]; then
|
|
status=1
|
|
fi
|
|
/sbin/rmmod /lib/modules/misc/scsi_transport_iscsi.ko
|
|
if [ "$?" -ne "0" -a "$?" -ne "1" ]; then
|
|
status=1
|
|
fi
|
|
}
|
|
|
|
restart()
|
|
{
|
|
stop
|
|
/bin/sleep 1
|
|
start
|
|
|
|
}
|
|
|
|
ISCSI_INIT_KO=/lib/modules/misc/iscsi_tcp.ko
|
|
|
|
[ -f $ISCSI_INIT_KO ] || exit 0
|
|
|
|
case "$1" in
|
|
start)
|
|
start
|
|
;;
|
|
stop)
|
|
stop
|
|
;;
|
|
restart)
|
|
stop
|
|
start
|
|
;;
|
|
*)
|
|
/bin/echo $"Usage: $0 {start|stop|restart}"
|
|
exit 1
|
|
esac
|
|
|
|
exit $RETVAL
|