iSCSI (Internet SCSI) Target and Initiator Configuration

Posted on November 11th, 2016

iSCSI (Internet SCSI) , stands for internet small computer interface. It is a network protocol and it allows you to use the SCSI protocol over TCP/IP networks.

 

Initiator

In iSCSI initiator is typically implemented in software, and functions similar to a hardware iSCSI HBA to access targets from a remote storage server. Using a software-based ISCSI initiator requires connecting to an existing Ethernet network of sufficient bandwidth to carry the expected storage traffic. Configuring an iSCSI client initiator requires installing the ISCSI-initiator-utils package, which includes the iscsi and iscsid services and the /etc/iscsi/iscsid.conf and /etc/iscsi/initiatorname.iscsi configuration files. The /etc/iscsi.conf file contains default settings for node records created during new target discovery.

 

Target

In original SCSI protocol vice terminology, a target is a single connectable storage or output device uniquely identified on a SCSI bus. In iSCSI, in which the SCSCI bus is emulated across an IP network, a target can be a dedicated physical device in a network-attached storage enclosure or an iSCSI software-configured logical device to a networked storage server. A target, like HBAs and initiators, is an end point in SCSI bus communication, passing command descriptor blocks (CDB) to request or provide storage transactions. To provide access to the storage or output device, a target is configured with one or more logical unit numbers(LUNs). In iSCSI, LUNS appear as the target’s sequentially numbered disk drives, although targets typically have only one LUN. An initiator performs SCSI negotiation with a target to establish a connection to the LUN. The LUN responds as an emulated SCSI disk block device, which can be used in raw form or formatted with a client-supported file system. iscsi provides for LUN masking by using ACLs. This ensure that only a designated client node can login to a specific target. On the target server, ACL can be set at the TPG level to secure groups of LUNS, or set individually per LUN.

 

iSCSI Target Configuration

On the server, which is going to act as a iSCSI target, create a volume group with a 200MB logical volume to use for iSCSI as its resource:

# vgcreate myvg  /dev/sdb

# lvcreate –name mylv –size 200M myvg

# yum install targetcli

#systemctl start target

#firewall-cmd –permanet –add-port=3260/tcp

#firewall-cmd –reload

Execute targetcli command to configure iSCSI target:

# targetcli

1) configure the existing /dev/myvg/mylv logical volume as a block-type backing store. Use the name block1 for the backstore.

/> /backstores/block/ create block1 /dev/myvg/mylv

2) Create a unique iSCSI Qualified Name (IQN) for the target will be iqn.2016-06.com.example:block1

/> /iscsi create iqn.2016-06.com.example:block1

Creating the IQ name automatically created a default target portal group named tpg1

3) Create an ACL for the client node (initiator), The initiator will be connecting with its initiator name set to iqn.2016-06.com.example:block1

/> /iscsi/iqn2016-06.com.example:block1/tpg1/acls/  <space>

create iqn.2016-06.com.example:block1

4)Create a LUN under the target, the LUN should use the previously defined backing storage device named block1

/>/iscsi/iqn.2016-06.com.example:block1/tpg1/luns   <space>

create /backstores/block/block1

5) Configure a portal for the target to listen on <IP>,port 3260

/> /iscsi/iqn.2016-06.com.example:block1/tpg1/portals create <IP>

6) Exit and save the configuration.

/> exit

 

iSCSI Initiator Configuration

1) Install the iSCSI-initiator-utils RPM

# yum install -y iscsi-initiator-utils

2) Create a unique iSCSI Qualified Name for the client initiator by modifying the Initiator Name setting in /etc/iSCSI/initiatorname.iSCSI

[root@pc~] # vi /etc/iSCSI/initiatorname.iSCSI

InitiatorName=iqn.2016-06.com.example.com:block1(specify the same name as we set in the target)

3) Enable and start the iSCSI client service.

[root@pc~]# systemctl enable iSCSI; systemctl start iSCSI

4) Discover and log into the configured target from the iSCSI target server.

Discover the configured iSCSI target(s) provided by the iSCSI target server portal.

[root@pc~] #iSCSiadm -m discovery -t st -p <IP>

5) Log into the presented iSCSI target

[root@pc~]# iSCSIadm -m node -T iqn.2016-06.com.example:block1 -p <IP> –login

6) Identify the newly available block device created by the iSCSI target login.

[root@pc~]# iSCSIadm -m node -T iqn.2016-06.com.example:(servername) [-p target_server[:port]] -1

7) Create a filesystem:

#mkfs.ext4 /dev/sda

8) Create a mount point and get UUID:

#mkdir /mnt/block

# blkid /dev/sda

/dev/sda: UUID=”6a1c44d0-3e2f-49fc-85ba-ced3e44bb5b0″ TYPE=”ext4″

“UUID=6a1c44d0-3e2f-49fc-85ba-ced3e44bb5b0 /mnt/block ext4 _netdev 00 ” to /etc/fstab

# mount /mnt/block

 

If you need any further assistance please contact our support department.

 

 

Leave a Reply