March 19, 2011

CentOS5におけるiSCSIイニシエータの導入・設定

iSCSIイニシエータ環境を整える
# yum install iscsi-initiator-utils
# chkconfig iscsid on
# service iscsid start
でイニシエータを導入・起動

前回設定したターゲットを登録・接続テストを行う
# iscsiadm -m discovery --type sendtargets -p targetip
# iscsiadm -m node targetip,1 -T targetname -l
# iscsiadm -m session -P 3
できちんと出てきていれば問題なし
ログアウトしておく
# iscsiadm -m node targetip,1 -T targetname --logout
一度接続したターゲットに関しては/var/lib/iscsi/nodes 以下にコンフィグファイルが配置される
iscsi(not iscsid)を有効にしておくとコンフィグファイルを読み込んで自動で接続する
iscsi(not iscsid)はlibvirtを使う場合はバッティングするため無効にしておく必要がある
iscsiを有効にしている環境で、自動接続したくない場合は/var/lib/iscsi/nodes以下のdefaultファイルを
node.startup=automatic

node.startup=manual
と修正するか
# iscsiadm --mode node --op update --targetname targetname --name=node.startup --value=manual
を実行する

/etc/iscsi/iscsid.confのnode.startupを変更しておけばnode 登録をした時に automatic になるか manual になるかの規定値を変更できる

また、iscsi-targetは、イニシエータが正常なログアウト処理を行わずに停止した場合、そのイニシエータに対するセッションを保持し続ける。このイニシエータがログアウト処理をせずに再起動され、ターゲットにログインしようとすると、ターゲット側には同一パス・同一イニシエータ名のセッションが残っているため、ターゲットはこのログインを拒否する。このため、このイニシエータはストレージにアクセスできなくなってしまう。これを避けるためイニシエータの起動スクリプトを変更する。
サービスiscsiおよびiscsidの起動スクリプト(initscript)/etc/init.d/{iscsi,iscsid}を修正する。これらのスクリプト中、再起動・停止(RUNLEVEL 6および0)のときに以降の処理を行わない部分があるので、これをコメントアウトし、ターゲットからのログアウトを実行するように変更する。
上記二つの起動スクリプトのstopに対し
#if [ "$RUNLEVEL" = "6" -o "$RUNLEVEL" = "0" -o "$RUNLEVEL" = "1" ]; then
#        success
#        return
#fi
と、該当箇所をコメントアウトする。
ただし、lvm, dm, mdなどマウントしたあとのiSCSIボリュームをいじっているモノとの
RUNLEVEL6,0時の挙動に関しては注意が必要

以上

参考:
http://ken-etsu-tech.blogspot.com/2008/03/rhcs-iscsi-dm-mp-clvm-and-gfs4iscsi.html
http://www.asahi-net.or.jp/~aa4t-nngk/iscsi.html

No comments:

Post a Comment