From: Michael P. D. <MP...@Ac...> - 2009-07-27 15:02:55
|
Hi, during testing of OSR in an iSCSI setup, the iSCSI-Target (HP Lefthand) has problems caused by using the same Initiatorname on every node. Here is a patch that uses an extended rootsource syntax for setting an node-specific Initiatorname. The syntax used is: <rootsource name="iscsi://<target-ip>:<port>/<Initiatorname>"/> Currently this could be CentOS/RHEL specific as the file /etc/iscsi/initiatorname.iscsi is written. The patch is against the beta repo. I hope this could be usefull for someone else. Br, Michael --- iscsi-lib.sh-orig 2009-07-22 12:15:15.000000000 +0200 +++ iscsi-lib.sh 2009-07-22 12:15:01.000000000 +0200 @@ -34,6 +34,25 @@ iscsiparser1="iscsi://([^:/]+)" iscsiparser2="iscsi://([^:]+):([[:digit:]]+)/" iscsiparser3="^iscsi" +iscsiparser4="iscsi://([^:]+):([[:digit:]]+)/(.+)" + + +#****f* iscsi-lib.sh/getISCSIInitiatorFromParam +# NAME +# getISCSIInitiatorFromParam +# SYNOPSIS +# function getISCSIInitiatorServerFromParam { +# MODIFICATION HISTORY +# IDEAS +# SOURCE +# +function getISCSIInitiatorFromParam { + echo $1 | awk ' +{ + match($1, "'$iscsiparser4'", iscsiparms); + print iscsiparms[3]; +}' +} #****f* iscsi-lib.sh/getISCSIServerFromParam # NAME @@ -133,7 +152,13 @@ local nodename=$2 local iscsiserver=$(getISCSIServerFromParam $rootsource) local iscsimodules="iscsi_tcp" + local iscsiinitiatorname=$(getISCSIInitiatorFromParam $rootsource) echo_local -n "Starting iscsid" + + if [ -n "$iscsiinitiatorname" ]; then + echo "InitiatorName=$iscsiinitiatorname" >/etc/iscsi/initiatorname.iscsi + echo_local -n "Initiatorname is $iscsiinitiatorname" + fi modprobe -q iscsi_tcp modprobe -q ib_iser exec_local iscsid Actebis Peacock GmbH, Sitz der Gesellschaft Soest, HRB 8075, Amtsgericht Arnsberg, Geschäftsführer: Klaus Hellmich, Bärbel Schmidt, Dr. Ralf Retzko |