LoginSignup
6
14

More than 5 years have passed since last update.

CentOS7上にiSCSIターゲットを立てる方法

Last updated at Posted at 2017-12-18

検証環境

  • CentOS7.4 x64 (ターゲット)
  • WindowsServer2016 Standard (イニシエータ)

ターゲットは「iSCSIを提供する側」、イニシエーターは「iSCSIを利用する側」である。
ターゲット-イニシエータ間はネットワーク的に通信出来ること。

本ページ中にある「iqn...」の部分はIQNと呼ばれるものであり、ISCSI構成要素には必ず付与しなければならない。IQN命名規則にならって指定すること。

例えば、2017年9月に登録されたhogehige.co.jpドメイン内のiscsi-storageサーバーのターゲット0番なら以下のようにすると良い。

iqn.2017-09.jp.co.hogehige:iscsi-storage.target0

ターゲットのセットアップ

iSCSI管理ツールのインストール

# yum install targetcli
...
インストール:
  targetcli.noarch 0:2.1.fb46-1.el7                                                                                                                                                               

依存性関連をインストールしました:
  libnl.x86_64 0:1.1.4-3.el7               pyparsing.noarch 0:1.5.6-9.el7     python-configshell.noarch 1:1.1.fb23-3.el7    python-ethtool.x86_64 0:0.8-5.el7    python-kmod.x86_64 0:0.9-4.el7   
  python-rtslib.noarch 0:2.1.fb63-2.el7    python-six.noarch 0:1.9.0-2.el7    python-urwid.x86_64 0:1.1.1-3.el7            

完了しました!

# rpm -qa | grep targetcli
targetcli-2.1.fb46-1.el7.noarch

# systemctl enable target
# systemctl stop target

iSCSIターゲットの作成

本ページではディスクイメージファイルを作成しそれにターゲット紐づけを行う。なお、ディスクイメージの他にもブロックデバイスも紐づけることも出来る。
iSCSI管理ツールの仮想ディレクトリ構造とOSファイル構造が似ていて混乱しやすいので注意すること。

# mkdir /iscsi_disks
# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.fb46
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.

# iSCSIディスクイメージを作成する
> cd backstores/fileio
> create disk0 /iscsi_disks/disk0.img 500G

# iSCSIターゲットの作成
> cd /iscsi
> create iqn.2017-09.jp.co.hogehige:test-iscsi.target0
> cd iqn.2017-09.jp.co.hogehige:test-iscsi.target0/tpg1/luns

# LUNの作成(iSCSIターゲットとiSCSIディスクイメージの紐づけ)
> create /backstores/fileio/disk0

# iSCSIターゲットにアクセスを許可するiSCSIイニシエーターの設定
> cd ../acls
> create iqn.2017-09.jp.co.hogehige:hyperv-host1.init0

# iSCSI管理ツール内の状態を確認する
> cd /
> ls
o- / ......................................................................................................................... [...]
  o- backstores .............................................................................................................. [...]
  | o- block .................................................................................................. [Storage Objects: 0]
  | o- fileio ................................................................................................. [Storage Objects: 1]
  | | o- disk0 .............................................................[/iscsi_disks/disk0.img (500.0GiB) write-back activated]
  | |   o- alua ................................................................................................... [ALUA Groups: 1]
  | |     o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized]
  | o- pscsi .................................................................................................. [Storage Objects: 0]
  | o- ramdisk ................................................................................................ [Storage Objects: 0]
  o- iscsi ............................................................................................................ [Targets: 1]
  | o- iqn.2017-09.jp.co.hogehige:test-iscsi.target0 ..................................................................... [TPGs: 1]
  |   o- tpg1 ............................................................................................... [no-gen-acls, no-auth]
  |     o- acls .......................................................................................................... [ACLs: 1]
  |     | o- iqn.2017-09.jp.co.hogehige:hyperv-host1.init0 ........................................................ [Mapped LUNs: 1]
  |     |   o- mapped_lun0 ................................................................................ [lun0 fileio/disk0 (rw)]
  |     o- luns .......................................................................................................... [LUNs: 1]
  |     | o- lun0 ....................................................... [fileio/disk0 (/iscsi_disks/disk0.img) (default_tg_pt_gp)]
  |     o- portals .................................................................................................... [Portals: 1]
  |       o- 0.0.0.0:3260 ..................................................................................................... [OK]
  o- loopback ......................................................................................................... [Targets: 0]
> exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json

# ls -la /iscsi_disks/
合計 0
drwxr-xr-x   2 root root           23  9月 25 12:40 .
dr-xr-xr-x. 18 root root          263  9月 25 12:39 ..
-rw-r--r--   1 root root 536870912000  9月 25 12:40 disk0.img

# systemctl restart target

iSCSIターゲットの動作確認

デフォルト設定では3260でリッスンされる。

# systemctl status target
● target.service - Restore LIO kernel target configuration
   Loaded: loaded (/usr/lib/systemd/system/target.service; enabled; vendor preset: disabled)
   ...
# netstat -an | grep 3260
tcp        0      0 0.0.0.0:3260            0.0.0.0:*               LISTEN

iSCSIイニシエータの接続

ISCSIイニシエーターの設定を開き、自身のIQNを確認する。

iSCSIターゲットサーバーのIPアドレスを入力し、接続を試行する。

問題が無ければターゲットIQNを自動で発見し、接続される。

iSCSIディスクが接続されると、ディスク管理上にiSCSIディスクが見えるようになる。

備考

ターゲットにてファイアウォールが有効の場合

以下のコマンドで通信を許可しておく。

# firewall-cmd --add-service=iscsi-target --permanent
# firewall-cmd --reload

ターゲットに接続可能なイニシエータIQNを追加する手順

# systemctl stop target
# targetcli
> cd iscsi/{ターゲットIQN}/tpg1/acls/
> create {イニシエータIQN}
> cd {イニシエータIQN}
> set auth userid={ユーザーID} password={パスワード}
> exit
# systemctl start target

参考

6
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
14