客戶端通過iscsi連接服務器首先要保證客戶端上安裝了iscsi-initiator-utils,可以根據客戶端的內核版本找對應的iscsi-initiator版本,安裝好之後通過以下腳本(iscsi)操作如下命令:./iscsi start xxx.xxx.xxx.xxx(服務器ip)就可以連接服務器了。
#!/bin/bash
ipAddr=$2
DRIVERDIR=/lib/modules/$(uname -r)/kernel/drivers/scsi
OP=$1
if [ -z $ipAddr ]
then
echo "ip is null"
echo $"Usage:$0 {iscsi start|stop IPADDRESS}"
exit 1
fi
libiscsi=libiscsi/$(lsmod | grep '^libiscsi' | awk '{print $1}')
iscsi_tcp=iscsi_tcp/$(lsmod | grep '^iscsi_tcp' | awk '{print $1}')
scsi_transport_iscsi=scsi_transport_iscsi/$(lsmod | grep '^scsi_transport_iscsi '| awk '{print $1}')
for NEEDMOD in $scsi_transport_iscsi $libiscsi $iscsi_tcbiscsi $iscsi_tcpp
do
suffix=${NEEDMOD#*/}
prefix=${NEEDMOD%/*}
if [ -z $suffix ]
then
if [ -f $DRIVERDIR/$prefix.ko ]
then
insmod $DRIVERDIR/$prefix.ko
else
echo "need mod ${$prefix}.ko"
exit 1
fi
fi
done
start()
{
echo "start to connect target in"
iscsid
cmdQuery=$(iscsiadm -m discovery -t sendtargets -p ${ipAddr}:3260 | sed 's/.* //g')
targetName=$cmdQuery
echo ${targetName}
iscsiadm -m node -T ${targetName} -p ${ipAddr}:3260 --login
}
stop()
{
cmdQuery=$(iscsiadm -m discovery -t sendtargets -p ${ipAddr}:3260 | sed 's/.* //g')
targetName=$cmdQuery
iscsiadm -m node -T ${targetName} -p ${ipAddr}:3260 --logout
}
case $OP in
start)
start
;;
stop)
stop
;;
*)
echo $"Usage:$0 {iscsi start|stop IPADDRESS}"
exit 2
esac
斷開連接命令:./iscsi start xxx.xxx.xxx.xxx