iSCSIイニシエータのiscsi-initiator-utilsをインストールする手順を記載します。
Table of Contents
1 iscsi-initiator-utilsのインストール
iscsi-initiator-utilsパッケージをインストールします。
$ sudo dnf install -y iscsi-initiator-utils
SELinuxの設定を追加します。
$ cat <<EOF > iscsid.te
module iscsid 1.0;
require {
type iscsid_t;
class system module_load;
}
#============= iscsid_t ==============
allow iscsid_t self:system module_load;
EOF
$ sudo dnf install -y checkpolicy
$ checkmodule -M -m -o iscsid.mod iscsid.te
$ semodule_package -m iscsid.mod -o iscsid.pp
$ sudo semodule -i iscsid.pp
$ rm -f iscsid.mod iscsid.te iscsid.pp
2 iscsiadmでiSCSIターゲットに接続
iscsiadmコマンドでiscsiターゲットに接続します。
$ ISCSI_TARGET_PORTAL=iscsi-target.hiroom2.com
$ ISCSI_TARGET_NAME=iqn.2017-08.com.hiroom2:disk
$ sudo iscsiadm -m discovery -t st -p "${ISCSI_TARGET_PORTAL}"
192.168.11.95:3260,1 iqn.2017-08.com.hiroom2:disk
$ sudo iscsiadm -m node \
--targetname "${ISCSI_TARGET_NAME}" -p "${ISCSI_TARGET_PORTAL}" -l
Logging in to [iface: default, target: iqn.2017-08.com.hiroom2:disk,
portal: 192.168.11.95,3260] (multiple)
Login to [iface: default, target: iqn.2017-08.com.hiroom2:disk,
portal: 192.168.11.95,3260] successful.
3 起動時にマウント
iSCSIターゲットに接続します。
$ sudo iscsiadm -m discovery -t st -p "${ISCSI_TARGET_PORTAL}"
$ sudo iscsiadm -m node \
--targetname "${ISCSI_TARGET_NAME}" -p "${ISCSI_TARGET_PORTAL}" -l
fdiskとmkfsでファイルシステムを作成します。
$ ISCSI_TARGET_DEV=/dev/sda
$ cat <<EOF | sudo fdisk ${ISCSI_TARGET_DEV}
n
p
1
w
EOF
$ sudo mkfs.ext4 ${ISCSI_TARGET_DEV}1
他のファイルシステムと同様に/etc/fstabに追記します。ネットワーク初期化前にマウントするのを防ぐために、_netdevをオプションを指定する必要があります。x-systemd.automountにマウントさせるために、x-systemd.automountをオプションに指定する必要があります。
$ uuid=$(sudo blkid | grep "^${ISCSI_TARGET_DEV}1:" | \
sed -e 's/.* UUID="\([^"]*\)".*/\1/g')
$ cat <<EOF | sudo tee -a /etc/fstab
UUID="${uuid}" /mnt ext4 _netdev,x-systemd.automount 0 0
EOF