Fedora 29
Sponsored Link

Configure iSCSI Target(tgt)2018/11/02

Configure Storage Server with iSCSI.
This is the example of configuring iSCSI Target with scsi-target-utils. (tgt)
A storage on a network is called iSCSI Target, a Client which connects to iSCSI Target is called iSCSI Initiator.
This example is based on the environment below.
+----------------------+          |          +----------------------+
| [   iSCSI Target   ] | || [ iSCSI Initiator  ] |
|     dlp.srv.world    +----------+----------+    www.srv.world     |
|                      |                     |                      |
+----------------------+                     +----------------------+

[1] Install administration tools first.
[root@dlp ~]#
dnf -y install scsi-target-utils
[2] Configure iSCSI Target.
For example, create an disk-image under the [/var/lib/iscsi_disks] directory and set it as a SCSI device.
# create a disk image

[root@dlp ~]#
mkdir /var/lib/iscsi_disks

[root@dlp ~]#
dd if=/dev/zero of=/var/lib/iscsi_disks/disk01.img count=0 bs=1 seek=10G
[root@dlp ~]#
vi /etc/tgt/conf.d/target01.conf
# create new

# if you set some devices, add - and set the same way with follows

# naming rule : [ iqn.(year)-(month).(reverse of domain name):(any name you like) ]

<target iqn.2018-11.world.srv:dlp.target01>
    # provided devicce as a iSCSI target
    backing-store /var/lib/iscsi_disks/disk01.img
    # iSCSI Initiator's IQN you allow to connect
    initiator-name iqn.2018-11.world.srv:www.initiator01
    # authentication info ( set anyone you like for "username", "password" )
    incominguser username password
[3] If SELinux is enabled, change SELinux Context.
[root@dlp ~]#
dnf -y install policycoreutils-python-utils
[root@dlp ~]#
chcon -R -t tgtd_var_lib_t /var/lib/iscsi_disks

[root@dlp ~]#
semanage fcontext -a -t tgtd_var_lib_t /var/lib/iscsi_disks

[root@dlp ~]#
vi my-tgtd.te
# create new

module my-tgtd 1.0;

require {
        type tgtd_t;
        type var_run_t;
        class dir create;

#============= tgtd_t ==============
allow tgtd_t var_run_t:dir create;

[root@dlp ~]#
checkmodule -m -M -o my-tgtd.mod my-tgtd.te

[root@dlp ~]#
semodule_package --outfile my-tgtd.pp --module my-tgtd.mod

[root@dlp ~]#
semodule -i my-tgtd.pp

[4] If Firewalld is running, allow iSCSI Target service.
[root@dlp ~]#
firewall-cmd --add-service=iscsi-target --permanent

[root@dlp ~]#
firewall-cmd --reload

[5] Start tgtd and verify status.
[root@dlp ~]#
systemctl start tgtd

[root@dlp ~]#
systemctl enable tgtd

# show status

[root@dlp ~]#
tgtadm --mode target --op show

Target 1: iqn.2018-11.world.srv:dlp.target01
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            SWP: No
            Thin-provisioning: No
            Backing store type: null
            Backing store path: None
            Backing store flags:
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 10737 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            SWP: No
            Thin-provisioning: No
            Backing store type: rdwr
            Backing store path: /var/lib/iscsi_disks/disk01.img
            Backing store flags:
    Account information:
    ACL information:
Matched Content