Table of Contents
- 1. scsi-target-utilsをインストールする
- 2. iSCSIターゲットを作成する
- 3. iSCSIイニシエータのiscsi-initiator-utilsでiSCSIターゲットへ接続する
1 scsi-target-utilsをインストールする
scsi-target-utilsパッケージをインストールします。
$ sudo dnf install -y scsi-target-utils$ sudo firewall-cmd –add-service=iscsi-target –permanent$ sudo firewall-cmd –reload$ sudo systemctl enable tgtd
/var/lib/iscsiにLogical unitを設置する為に以下のSELinuxの設定を追加します。
$ cat <<EOF > tgtd-var-lib.temodule tgtd-var-lib 1.0;require { type iscsi_var_lib_t; type tgtd_t; class file { open read write getattr }; class dir { search };}#============= tgtd_t ==============allow tgtd_t iscsi_var_lib_t:file { open read write getattr };allow tgtd_t iscsi_var_lib_t:dir { search };EOF$ sudo dnf install -y checkpolicy$ checkmodule -M -m -o tgtd-var-lib.mod tgtd-var-lib.te$ semodule_package -m tgtd-var-lib.mod -o tgtd-var-lib.pp$ sudo semodule -i tgtd-var-lib.pp$ rm -f tgtd-var-lib.te tgtd-var-lib.mod tgtd-var-lib.pp
tgtd起動時に以下のエラーが出ます。
ipc_init(781) failed to open lock file for management IPC
tgtd起動時のエラーを回避する為にSELinuxの設定を追加します。
$ cat <<EOF > tgtd-var-run.temodule tgtd-var-run 1.0;require { type var_run_t; type tgtd_t; class dir create;}#============= tgtd_t ==============allow tgtd_t var_run_t:dir create;EOF$ checkmodule -M -m -o tgtd-var-run.mod tgtd-var-run.te$ semodule_package -m tgtd-var-run.mod -o tgtd-var-run.pp$ sudo semodule -i tgtd-var-run.pp$ rm -f tgtd-var-run.te tgtd-var-run.mod tgtd-var-run.pp
tgtdを起動します。
$ sudo systemctl restart tgtd
2 iSCSIターゲットを作成する
この記事ではファイルをiSCSIターゲットとして使用します。
$ sudo dd if=/dev/zero of=/var/lib/iscsi/disk bs=1M count=1K
Target ID 1のiSCSIターゲットを作成します。
$ sudo tgtadm –lld iscsi –op new –mode target –tid 1 -T iqn.2017-08.com.hiroom2:disk
Target ID 1のiSCSIターゲットにLogical unit 1のロジカルユニットを追加します。ロジカルユニットはブロックデバイスでも良いです。
$ sudo tgtadm –lld iscsi –op new –mode logicalunit –tid 1 –lun 1 -b /var/lib/iscsi/disk
Target ID 1のiSCSIターゲットをすべてのIPアドレスに対して公開します。ALLの他に、192.168.11.1や192.168.11.0/24等が指定できます。
$ sudo tgtadm –lld iscsi –op bind –mode target –tid 1 -I ALL
iSCSIターゲットの設定を保存します。保存しない場合はtgtd再起動時に設定が破棄されます。
$ sudo tgtadm –dump | sudo tee /etc/tgt/conf.d/disk.conf
3 iSCSIイニシエータのiscsi-initiator-utilsでiSCSIターゲットへ接続する
以降の操作はiSCSIターゲットをインストールしたサーバで実行します。
iSCSIターゲット接続前のパーティションは以下の通りです。
$ cat /proc/partitionsmajor minor #blocks name 254 0 10485760 vda 254 1 248832 vda1 254 2 1 vda2 254 5 10233856 vda5 11 0 1048575 sr0 253 0 9183232 dm-0 253 1 1048576 dm-1
iscsi-initiator-utilsをインストールします。
$ sudo dnf install -y iscsi-initiator-utils
iSCSIターゲットを取得します。
$ sudo iscsiadm -m discovery -t st -p localhost[::1]:3260,1 iqn.2017-08.com.hiroom2:disk
iSCSIターゲットへ接続します。
$ sudo iscsiadm -m node –targetname iqn.2017-08.com.hiroom2:disk -p localhost -lLogging in to [iface: default, target:iqn.2017-08.com.hiroom2:disk, portal: ::1,3260] (multiple)Login to [iface: default, target:iqn.2017-08.com.hiroom2:disk, portal: ::1,3260]successful.
sdaというパーティションが追加されました。
$ cat /proc/partitionsmajor minor #blocks name 254 0 10485760 vda 254 1 248832 vda1 254 2 1 vda2 254 5 10233856 vda5 11 0 1048575 sr0 253 0 9183232 dm-0 253 1 1048576 dm-1 8 0 1048576 sda