iSCSIターゲットのtgtをインストールする手順を記載します。
Table of Contents
1 tgtをインストールする
AURのtgtをインストールします。AURをビルドするための基本的なパッケージをインストールします。
$ sudo pacman -Sy --noconfirm git base-devel
tgtの依存パッケージであるperl-config-generalをインストールします。
$ git clone https://aur.archlinux.org/perl-config-general.git $ cd perl-config-general $ makepkg -s --noconfirm $ sudo pacman -U --noconfirm ./*.pkg.tar.xz $ cd ..
tgtをインストールします。Arch Linux 2017.10.01のGCCでは、バージョン1.0.69だとコンパイルエラーとなるので、バージョン1.0.72を利用します。
$ git clone https://aur.archlinux.org/tgt.git $ cd tgt $ sed -i PKGBUILD \ -e 's;pkgver=1.0.69;pkgver=1.0.72;g' \ -e 's;https://github.com/ksovi;https://github.com/fujita;' $ cat <<EOF >> PKGBUILD prepare() { sed -i \$pkgname-\$pkgver/usr/Makefile \\ -e 's;sbindir ?= \$(PREFIX)/sbin;sbindir ?= \$(PREFIX)/bin;g' sed -i \$pkgname-\$pkgver/scripts/Makefile \\ -e 's;sbindir ?= \$(PREFIX)/sbin;sbindir ?= \$(PREFIX)/bin;g' } EOF $ makepkg -s --noconfirm $ sudo pacman -U --noconfirm ./*.pkg.tar.xz $ cd ..
tgtd.serviceを有効にします。
$ sudo systemctl enable tgtd $ sudo systemctl start tgtd
2 iSCSIターゲットを作成する
この記事ではファイルをiSCSIターゲットとして使用します。
$ sudo mkdir /var/lib/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-07.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イニシエータのopen-iscsiでiSCSIターゲットへ接続する
以降の操作はiSCSIターゲットをインストールしたサーバで実行します。
iSCSIターゲット接続前のパーティションは以下の通りです。
$ cat /proc/partitions major 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
open-iscsiをインストールします。
$ sudo pacman -Sy --noconfirm open-iscsi
iSCSIターゲットを取得します。
$ sudo iscsiadm -m discovery -t st -p localhost [::1]:3260,1 iqn.2017-07.com.hiroom2:disk
iSCSIターゲットへ接続します。
$ sudo iscsiadm -m node \ --targetname iqn.2017-07.com.hiroom2:disk -p localhost -l Logging in to [iface: default, target: iqn.2017-07.com.hiroom2:disk, portal: ::1,3260] (multiple) Login to [iface: default, target: iqn.2017-07.com.hiroom2:disk, portal: ::1,3260] successful.
sdaというパーティションが追加されました。
$ cat /proc/partitions major 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