linuxでiSCSI

恥ずかしながらiSCSIに触れる機会が全くなくて、さすがに卒業したいので、 とりあえずlinuxサーバでやってみた。

iSCSI target : server
iSCSI initiator : client

target

# yum install scsi-target-utils
# chkconfig tgtd on
# service tgtd start


tgtadm でiscsi target device を作成する。

target deviceの名前はiSCSI qualified name (IQN) ということでRFCでformatが決まっている。


けど、長ったらしいのが面倒なので今回は適当につける。

コマンドで設定
# tgtadm --lld iscsi --mode target --op new --tid 1 --targetname hoge
# tgtadm --lld iscsi --mode target --op show
# tgtadm --lld iscsi --op bind --mode target --tid 1 --initiator-address 192.168.0.2

このままだとtgtdを再起動したら消えるので、/etc/tdt/targerts.conf に書くのが良い。 設定はtgt-admin --dump すれば設定のひな形みたいなのが表示される。

/etc/tdt/targets.conf
<target hoge>
  backing-store /dev/vg01/lv01
  initiator-address 192.168.0.2
  # 認証する場合
  incominguser user pass
</target>

initiator

# yum install iscsi-initiator-utils
# chkconfig iscsi on
# chkconfig iscsid on
# service iscsi start
# service iscsid start

追加
# iscsiadm --mode discovery --type sendtargets --portal 192.168.0.1
# iscsiadm -m node -o show
# iscsiadm -m node --login
# iscsiadm -m session -o show

一度追加すると、/var/lib/iscsi 以下のファイルに記録されるので、
再起動時にiscsidを起動しておくとdeviceまで作ってくれる。

削除
# iscsiadm --mode discovery --op delete --portal 192.168.0.1