« OpenIndiana その2 | ホーム | 明けましておめ(ry »

2010年12月30日

OpenIndiana その3 iSCSI Target

OpenIndianaからはshareiscsiでなく、COMSTARなるものが標準らしい。
で、使い方がわからずにかなり四苦八苦。。。

# svcadm enable iscsi/target # svcadm enable stmf

これでiscsi tarrgetとCOMSTARのサービスを起動。
そもそも最近のSolarisに触ったことがないのでsvcadmの流儀が最初はよくわからなかった。

まずはzfsボリュームと、そのLUを作る。

# zfs create -V 100G pool1/test # sbdadm create-lu /dev/zvol/rdsk/pool1/test

複数作ればこんな感じにLUが表示される。

# sbdadm list-lu Found 3 LU(s)

GUID DATA SIZE SOURCE
-------------------------------- ------------------- ----------------
600144f020d7820000004d1a1bd70001 53687091200 /dev/zvol/rdsk/vol1/hoge
600144f020d7820000004d1adb160001 322122547200 /dev/zvol/rdsk/vol1/moge
600144f020d7820000004d1be7ac0002 214748364800 /dev/zvol/rdsk/vol1/test

次にLUごとにtarget作成



# itadm create-target
# itadm list-target -v  ※ターゲット名の確認

しかしtargetを作っただけではイニシエータからはnodeが見えない。
LUをviewに追加する必要がある。単に

# stmfadm add-view 600144f020d7820000004d1a1bd70001

とかやるだけで良いのだが、ここで嵌った。

2つのLU,targetがある状態でviewに追加したのがこれ

# stmfadm list-view -l 600144F020D7820000004D1A1BD70001 ※1
View Entry: 0
Host group : All
Target group : ALL
LUN : 0
# stmfadm list-view -l 600144F020D7820000004D1ADB160001 ※2
View Entry: 0
Host group : All
Target group : ALL
LUN : 1

VMware ESXi 4.1のiSCSI Initiatorから※1に接続、マウントして利用するのは問題なかった。
が、Debian lennyのiscsiadmで※2に接続したら問題が。

# iscsiadm -m discovery --type sendtargets -p 192.168.xxx.xxx
192.168.xxx.xxx:3260,1 iqn.1986-03.com.sun:02:cdf83448-a1e5-c754-acaa-8f6f2ebcd608 ※1
192.168.xxx.xxx:3260,1 iqn.1986-03.com.sun:02:9352bf5b-e80c-4ae2-b05c-cecf870de245 ※2
# iscsiadm -m node -T iqn.1986-03.com.sun:02:9352bf5b-e80c-4ae2-b05c-cecf870de245 --login

(LUとiSCSI Target名は適当です)

ここまではふつう。で、fdisk -l したら追加されたディスクが何故か2つ。しかも1つはformat済み。

# ls -l /dev/disk/by-path/
lrwxrwxrwx 1 root root 9 2010-12-30 10:37 ip-192.168.xxx.xxx:3260-iscsi-iqn.1986-03.com.sun:02:9352bf5b-e80c-4ae2-b05c-cecf870de245-lun-1 -> ../../sdf
lrwxrwxrwx 1 root root 10 2010-12-30 10:37 ip-192.168.xxx.xxx:3260-iscsi-iqn.1986-03.com.sun:02:9352bf5b-e80c-4ae2-b05c-cecf870de245-lun-1-part1 -> ../../sdf1
lrwxrwxrwx 1 root root 9 2010-12-30 10:37 ip-192.168.xxx.xxx:3260-iscsi-iqn.1986-03.com.sun:02:9352bf5b-e80c-4ae2-b05c-cecf870de245-lun-2 -> ../../sdg

ESXiが使ってる※1まで接続されてる。危うくfdiskするところだった。

同じView EntryでTarget GroupがALLになってると、別LUNもiscsiadmで一緒にloginしてしまうっぽい?
(ちゃんと調べてません)

Target Groupを改めて設定

# stmfadm create-tg tg1
# stmfadm create-tg tg2
# stmfadm list-tg

iSCSI Targetを各Target Groupに登録

# stmfadm add-tg-member -g tg1 Target名
stmfadm: STMF service must be offline

が、エラー。STMFサービスを落とさないとダメらしい。そしてSTMFを落とすとTargetとの接続は切れる。
...メンテできないとかひどい仕様らしい。一応今後に期待。

# svcadm disable stmf
# stmfadm add-tg-member -g tg1 Target名
# svcadm enable stmf

これを素早くやったらESXiは何事もなかったように再接続したので良かった。
viewに追加するときもTarget Groupを限定

# stmfadm add-view -t tg1 600144f020d7820000004d1adb160001
stmfadm: view entry exists

上書きを期待したが、やっぱり同じLUでviewがあるとダメらしい。そしてview entryを変更するコマンドがなさそう。
entryを消したらやっぱり接続中のESXiから切れると思ったが、再接続に期待して remove -> add を素早くやる。

# stmfadm remove-view -l 600144f020d7820000004d1adb160001
stmfadm: no view entries specified

LU(GUID) + View Entryの値が必要だった。

# stmfadm remove-view -l 600144f020d7820000004d1adb160001 0
# stmfadm list-view -l 600144f020d7820000004d1adb160001
stmfadm: 600144f020d7820000004d1adb160001: no views found
# stmfadm add-view -t tg1 600144f020d7820000004d1adb160001

無事成功。で、tg2の方で別LUもviewに登録したら、Debianからはtg1側に勝手に接続しなくなった。
まだ作業は終わらない...

なお、公式ドキュメントやフォーラムをそんなに漁っていないので、上記には多分に間違いが含まれていると思われる。

トラックバック(0)

トラックバックURL: http://blog.lezele.org/cgi-bin/mt/mt-tb.cgi/640

コメントする

このブログ記事について

このページは、bippoが2010年12月30日 11:18に書いたブログ記事です。

ひとつ前のブログ記事は「OpenIndiana その2」です。

次のブログ記事は「明けましておめ(ry」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。