« 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済み。
ESXiが使ってる※1まで接続されてる。危うくfdiskするところだった。# 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
同じ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
コメントする