COMSTARでLUとiSCSIターゲットをグループ化する
前回でひとまずOpenSolarisのCOMSTARを用いたiSCSI共有が可能になった。
引き続きCOMSTARを試したので、今回はLUを追加して複数になったときの挙動とかについてまとめ。
前回のエントリ:OpenSolaris 2009.06でCOMSTARを試す
LUを追加してみる
追加手順とか確認とか
前回までで、1つのiSCSIターゲットを作成してLUの公開まで設定できました。
前回のプールはいろいろいじってて削除してしまったので、GUIDとか容量とか変わってるけど基本環境(ターゲットはそのまま、LUのボリューム名は同じにして再作成)は同じにして再作成してます。
まずはLUを新しく追加する。
# zfs create -V 15g osol/comstar1 # sbdadm create-lu /dev/zvol/rdsk/osol/comstar1 Created the following LU: GUID DATA SIZE SOURCE -------------------------------- ------------------- ---------------- 600144f0b8eb0a0000004b349e1a0001 16106061824 /dev/zvol/rdsk/osol/comstar1
確認
# stmfadm list-lu -v LU Name: 600144F0B8EB0A0000004B333EA90006 Operational Status: Online Provider Name : sbd Alias : /dev/zvol/rdsk/osol/comstar0 View Entry Count : 1 LU Name: 600144F0B8EB0A0000004B349E1A0001 Operational Status: Online Provider Name : sbd Alias : /dev/zvol/rdsk/osol/comstar1 View Entry Count : 0
ここでView Entry Countというものがある。
これは設定されているviewの数のことです。現在osol/comstar0はviewが設定されているので1になっていて、osol/comstar1はまだviewが登録されていないので0になっている。
LUには複数のviewを登録することができるのです。
osol/comstar1にviewを追加します。
# stmfadm add-view 600144F0B8EB0A0000004B349E1A0001
確認
# stmfadm list-lu -v LU Name: 600144F0B8EB0A0000004B333EA90006 Operational Status: Online Provider Name : sbd Alias : /dev/zvol/rdsk/osol/comstar0 View Entry Count : 1 LU Name: 600144F0B8EB0A0000004B349E1A0001 Operational Status: Online Provider Name : sbd Alias : /dev/zvol/rdsk/osol/comstar1 View Entry Count : 1
さらに確認
# stmfadm list-view -l 600144F0B8EB0A0000004B349E1A0001 View Entry: 0 Host group : All Target group : All LUN : 1
View Entryが0、LUNが1になっている。
osol/comstar0も確認。
# stmfadm list-view -l 600144F0B8EB0A0000004B333EA90006 View Entry: 0 Host group : All Target group : All LUN : 0
こっちもView Entryが0でLUNは0になっている。
このふたつのLUにはそれぞれ1つのviewが登録されていることがわかります。
LU(osol/comstar1)を別のターゲットで公開する
これでひとつのターゲットで2つのLUを公開できるようになったわけですが、ターゲットをわけたいときもあるかもしれない。
ということでosol/comstar1を別のターゲットで公開するように設定してみます。
手順
まずターゲットの追加
# itadm create-target Target iqn.1986-03.com.sun:02:2135f4fc-d1cf-ea62-e007-e2519d683523 successfully created
ターゲットが2つあることを確認
# itadm list-target -v TARGET NAME STATE SESSIONS iqn.1986-03.com.sun:02:2135f4fc-d1cf-ea62-e007-e2519d683523 online 0 alias: - auth: none (defaults) targetchapuser: - targetchapsecret: unset tpg-tags: default iqn.1986-03.com.sun:02:f294862f-a75b-e2a4-a9af-a5d6c6892bf1 online 1 alias: - auth: none (defaults) targetchapuser: - targetchapsecret: unset tpg-tags: default
stmfadmコマンドでも確認できます。
# stmfadm list-target -v Target: iqn.1986-03.com.sun:02:2135f4fc-d1cf-ea62-e007-e2519d683523 Operational Status: Online Provider Name : iscsit Alias : - Sessions : 0 Target: iqn.1986-03.com.sun:02:f294862f-a75b-e2a4-a9af-a5d6c6892bf1 Operational Status: Online Provider Name : iscsit Alias : - Sessions : 1 Initiator: iqn.1991-05.com.microsoft:[接続元ホスト名] Alias: - Logged in since: Fri Dec 25 21:18:23 2009
ひとつめのターゲットは既にwindowsからセッションが張られているのでSESSIONが1になっているのがわかります。
次にTarget groupというものを作ります。このグループにLUを結びつけるという形です。
# stmfadm create-tg comstar-0 # stmfadm list-tg Target Group: comstar-0
このTarget groupにターゲットを所属させます。
# stmfadm add-tg-member -g comstar-0 iqn.1986-03.com.sun:02:2135f4fc-d1cf-ea62-e007-e2519d683523 stmfadm: STMF service must be offline
怒られました。どうやらSTMFサービスが起動していると操作できないようです*1。
[2010/04/22追記]
これはバグ登録されてました。
Bug ID: 6788352 Cannot add target group members if STMF is enabled
b118で修正されたようですが、targetはofflineにしないとだめなようです。
Bug ID: 6938370 Cannot add target group member without offlining stmf.. again
ここで再度登録されてますが、仕様のようでcloseされています(Not Defect)。
停止させて追加してみます。
# svcadm disable stmf # stmfadm add-tg-member -g comstar-0 iqn.1986-03.com.sun:02:2135f4fc-d1cf-ea62-e007-e2519d683523 # svcadm enable stmf
追加できたので確認します。
# stmfadm list-tg -v Target Group: comstar-0 Member: iqn.1986-03.com.sun:02:2135f4fc-d1cf-ea62-e007-e2519d683523
comstar-0に所属しました。
このTarget groupの情報を持たせてosol/comstar1にviewを追加します。
# stmfadm add-view -t comstar-0 600144F0B8EB0A0000004B349E1A0001 stmfadm: view entry exists
怒られます。Host groupとTarget groupが重複する場合追加できないようです。
今回の例では先に追加したviewが
- Host group : All - Target group : All
になっているのでTarget groupを絞ったviewを追加しようとしても矛盾が生じるのでエラーになる。
- Host group : All - Target group : comstar-0
- Host group : All - Target group : comstar-1
ならTarget groupに矛盾ができないので追加が可能になる。
今回は一度先に追加したviewを削除して、Target groupだけを限定した新規のviewを作成します。
下のコマンドのGUIDの後ろの数字はView Entryの番号です。
書式は stmfadm remove-view -l [操作対象LUのGUID] [View Entryの値] です。
# stmfadm remove-view -l 600144F0B8EB0A0000004B349E1A0001 0 # stmfadm list-lu -v 600144F0B8EB0A0000004B349E1A0001 LU Name: 600144F0B8EB0A0000004B349E1A0001 Operational Status: Online Provider Name : sbd Alias : /dev/zvol/rdsk/osol/comstar1 View Entry Count : 0
View Entry Countが0になりました。
新たにTarget groupと結びつけて追加します。
# stmfadm add-view -t comstar-0 600144F0B8EB0A0000004B349E1A0001
viewを確認します。
書式は stmfadm list-view -l [対象LUのGUID] です。
# stmfadm list-view -l 600144F0B8EB0A0000004B349E1A0001 View Entry: 0 Host group : All Target group : comstar-0 LUN : 1
これでosol/comstar1はiqn.1986-03.com.sun:02:2135f4fc-d1cf-ea62-e007-e2519d683523のターゲットからしか見えなくなるが、このままではosol/comstar0もこのターゲットから見えてしまいます(Target group : All なので)。
なので新たにTarget group comstar-1 を作ってiqn.1986-03.com.sun:02:f294862f-a75b-e2a4-a9af-a5d6c6892bf1はこのTarget groupだけに所属させます。
# stmfadm create-tg comstar-1 # svcadm disable stmf # stmfadm add-tg-member -g comstar-1 iqn.1986-03.com.sun:02:f294862f-a75b-e2a4-a9af-a5d6c6892bf1 # svcadm enable stmf
Target groupを確認します。
# stmfadm list-tg -v Target Group: comstar-0 Member: iqn.1986-03.com.sun:02:2135f4fc-d1cf-ea62-e007-e2519d683523 Target Group: comstar-1 Member: iqn.1986-03.com.sun:02:f294862f-a75b-e2a4-a9af-a5d6c6892bf1
osol/comstar0のviewを削除して、Target groupを限定したviewを追加します。
# stmfadm remove-view -l 600144F0B8EB0A0000004B333EA90006 0 # stmfadm add-view -t comstar-1 600144F0B8EB0A0000004B333EA90006 # stmfadm list-view -l 600144F0B8EB0A0000004B333EA90006 View Entry: 0 Host group : All Target group : comstar-1 LUN : 0
これでそれぞれのターゲットに接続すればそれぞれのLUが認識されます。
まとめ
今回はLUとターゲットの組み合わせについていろいろ実験してみました。
最初viewにLUを登録するというイメージで勘違いしてたんですが、ドキュメントを読んで逆だと気づきました。LUにviewを追加することで見せ方をいろいろ変えるというイメージのようです。
このviewの機能を使いこなせば、Host groupとTarget groupの組み合わせでいろいろ制御できそうです。
これ以上viewについては追いかけないですけど・・・。
下記のページにviewについてはいろいろ書いています。
How to Make SCSI Logical Units Available - OpenSolaris Information Resources - wikis.sun.com
しかし、COMSTARのこういう日本語の情報がほとんど見つからなくてかなり苦労してます。もっといっぱい日本語情報が出てきてくれるとうれしいんですが。
いい情報があれば教えてください。
*1:停止しないで追加できる方法はないのかな?実運用環境だと停止できないだろうし、やりようがあると思うんですが。