Fedora 29
Sponsored Link

iSCSIターゲットの設定 (tgt)2018/11/02

 
iSCSI によるストレージサーバーの構築です。
scsi-target-utils を利用する場合の iSCSI ターゲットの設定例です。
ネットワーク上のストレージを iSCSI ターゲット、iSCSI ターゲットに接続するクライアントを iSCSI イニシエーターと呼びます。 当例では以下のような環境を前提に iSCSI ストレージサーバーを構築します。
+----------------------+          |          +----------------------+
| [   iSCSI Target   ] |10.0.0.30 | 10.0.0.31| [ iSCSI Initiator  ] |
|     dlp.srv.world    +----------+----------+    www.srv.world     |
|                      |                     |                      |
+----------------------+                     +----------------------+

[1] 管理ツールをインストールします。
[root@dlp ~]#
dnf -y install scsi-target-utils
[2] iSCSI ターゲットの設定です。
例として [/var/lib/iscsi_disks] ディレクトリ内にディスクイメージを作成し、SCSI デバイスとして設定します。
# ディスクイメージ作成

[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
# 新規作成

# 複数デバイスを提供する場合は以下の<target>~</target>を増やして同じ要領で設定する

# 命名規則:[ iqn.年-月.ドメイン名の逆:任意の名前 ]

<target iqn.2018-11.world.srv:dlp.target01>
    # iSCSIターゲットとして提供するデバイス (複数設定する場合は [backing-store ***] の行を追加)
    backing-store /var/lib/iscsi_disks/disk01.img
    # 接続を許可するiSCSIイニシエーターのIQN (複数設定する場合は [initiator-name *.*.*.*] の行を追加)
    initiator-name iqn.2018-11.world.srv:www.initiator01
    # 接続を許可する際の認証情報 ( username, password は任意のものを設定)
    incominguser username password
</target> 
[3] SELinux を有効にしている場合は SELinux コンテキストの変更が必要です。
[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
# 以下の内容で新規作成

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] Firewalld を有効にしている場合は iSCSI ターゲットサービスの許可が必要です。
[root@dlp ~]#
firewall-cmd --add-service=iscsi-target --permanent

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

success
[5] tgtd の起動と動作確認をしておきます。
[root@dlp ~]#
systemctl start tgtd

[root@dlp ~]#
systemctl enable tgtd

# 状態確認

[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:
        username
    ACL information:
        ALL
        iqn.2018-11.world.srv:www.initiator01
関連コンテンツ