ISCSI

From VVCWiki
Jump to navigationJump to search

iSCSI setup

Setup a target

  • install packages
yum install scsi-target-utils
  • add targets and allowed hosts to the config file /etc/tgt/targets.conf
default-driver iscsi
<target iqn.2010-05.lan.chepkov:centos>
        backing-store /dev/centos/target1
        backing-store /dev/centos/target2
        vendor_id VVC
        initiator-address 10.10.10.19
        initiator-address 10.10.10.20
        initiator-address 10.10.10.21
</target>
  • enable and start the service
chkconfig tgtd on
service tgtd start

Setup an initiator

  • install packages
yum install iscsi-initiator-utils
  • create udev rules to get persistent names

/etc/udev/rules.d/local.rules

KERNEL=="sd*[a-z]", BUS=="scsi", SYSFS{vendor}=="VVC", PROGRAM="/etc/udev/scripts/iscsidev.sh %b",SYMLINK+="iscsi/%c{1}/lun%c{2}/disk"
KERNEL=="sd*[0-9]", BUS=="scsi", SYSFS{vendor}=="VVC", PROGRAM="/etc/udev/scripts/iscsidev.sh %b",SYMLINK+="iscsi/%c{1}/lun%c{2}/part%n"

/etc/udev/scripts/iscsidev.sh

#!/bin/sh
 
BUS=${1}
HOST=${BUS%%:*}
LUN=`echo ${BUS} | cut -d":" -f4`
 
[ -e /sys/class/iscsi_host ] || exit 1
 
file="/sys/class/iscsi_host/host${HOST}/device/session*/iscsi_session*/targetname"
target_name=$(cat ${file} | cut -d":" -f2 | sed 's/\./_/')
 
logger "iscsidev called with $1 and returned ${target_name} ${LUN}"
echo "${target_name} ${LUN}"
  • start iscsid and discover the targets
service iscsid start
iscsiadm -m discovery -t sendtargets -p 10.10.10.55
  • enable and start service
chkconfig iscsi on
service iscsi off
  • check it out
# ls -lR /dev/iscsi/
/dev/iscsi/:
total 0
drwxr-xr-x 4 root root 80 Jun  6 13:56 centos

/dev/iscsi/centos:
total 0
drwxr-xr-x 2 root root 80 Jun  6 13:58 lun1
drwxr-xr-x 2 root root 80 Jun  6 13:58 lun2

/dev/iscsi/centos/lun1:
total 0
lrwxrwxrwx 1 root root 12 Jun  6 13:56 disk -> ../../../sda
lrwxrwxrwx 1 root root 13 Jun  6 13:58 part1 -> ../../../sda1

/dev/iscsi/centos/lun2:
total 0
lrwxrwxrwx 1 root root 12 Jun  6 13:56 disk -> ../../../sdb
lrwxrwxrwx 1 root root 13 Jun  6 13:58 part1 -> ../../../sdb1