scsi-target-utils

iscsi-targetを入れてたのだけど、なんか最近プロセスが勝手に落ちたりと調子悪い。

3日に1度ぐらい起きていてそのたびに再起動したりしていたのだけど、

プロセスが落ちた影響か、RAIDの調子が悪いのかわからないけど、とうとう仮想ディスクが1個壊れてしまったので、クビに。

多分自分がビルドしたのがいけないと思ったので、yumでインストールできるiscsi targetを試すことにした。



tgt project - Linux SCSI target framework

http://stgt.sourceforge.net/


バイスはそのまま。

# インストール
yum -y install scsi-target-utils

# 起動 & サーバ起動時に起動
/etc/init.d/tgtd start
chkconfig tgtd on
 
# iscsiターゲット作成。target毎にidを割り当てる(tid) まずは1から。名前はWindowsで使うのでwindows-iscsi(安易)
tgtadm --lld iscsi --op new --mode target --tid 1 --targetname windows-iscsi

# tid:1を使い、論理ユニットを構成。LogicalUnitの番号を割り当てる。(lun)例によって1から。デバイスに/dev/md0p1 (RAID1)を使う
tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 --backing-store /dev/md0p1

# tid:1へbind(接続)できるイニシエータを制限。192.168.0.0/23以外は拒否。
tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address 192.168.0.0/23

# パスワードファイルを作成。1行のみ書く。操作ログに残るのは嫌な場合によく使う。使い終わったら削除。
touch ~/.iscsi.passwd
chmod 0600 ~/.iscsi.passwd
vi ~/.iscsi.passwd

# アカウントを作成。接続時にUser名とPasswordが必要になる。パスワードはファイルから補完。
tgtadm --lld iscsi --mode account --op new --user ryozi --password `cat ~/.iscsi.passwd`
rm ~/.iscsi.passwd

# tid:1へ作成したアカウントを割り当て。
tgtadm --lld iscsi --mode account --op bind --tid 1 --user ryozi

ここまで。これでイニシエータから繋がるはず。


設定が不安だとか確認したい場合、以下で大体確認できる。

tgtadm --lld iscsi --mode target --op show
tgtadm --lld iscsi --mode account --op show


そんな調子で2つ目のiscsiも作る。アカウントは使いまわすので設定不要。tidとlunがかぶらないように注意する。

tgtadm --lld iscsi --mode target --op new --tid 2 --targetname iscsi
tgtadm --lld iscsi --mode logicalunit --op new --tid 2 --lun 2 --backing-store /dev/md1p1
tgtadm --lld iscsi --mode target --op bind --tid 2 --initiator-address 192.168.0.0/23
tgtadm --lld iscsi --mode account --op bind --tid 2 --user ryozi


追記)忘れてたけど、設定を永続化するにはコマンドを叩いて設定ファイルを出力させる必要がある。

tgt-admin --dump >> /etc/tgt/targets.conf


RAID側の問題ではない・・・と思いたい。でも最近たまに認識しなくなるからもうやばいのかもしらん。

しばらく様子見ます... :P

(さらに追記)

tgt-admin --dump >> /etc/tgt/targets.conf

これで出力した結果はパスワードが適当な文字列になってるので適宜置き換えないといけない。
作って放置してたから気づかなかったけど、再起動したら繋げなくなって困ってたらこれが原因だった。

chmod 0600 /etc/tgt/targets.conf するのも忘れずに。

/etc/tgt/targets.confのパスワードを変えたら、service tgtd restartで反映。

まだまだすなぁ。