NexentaStore Community Editionでも LUN Mapping したい


NexentaStor License Versionsに書かれている通り、Community Edition(CE:コミュニティエディション)はLUN Mapping*1の設定ができない。
エンタープライズエディションだとGUIで簡単にできるみたい。

でも、WebGUIから設定できないだけで、NexentaSSHでログインしてコマンドを色々実行することで、実現できるらしいことが次の引用先に書かれている。

The NexentaStor Community Edition 3 web interface (NMV) does not include advanced iSCSI/zvol management, a feature reserved for their Enterprise Edition. Although you can create zvols and manage iSCSI targets and initiators via the web, all zvols are automatically available via all targets and to all initiators. You can control which initiators can use which targets via authentication, but that would only help you distribute the load on the target address+port – all zvols would still be visible on each target.

で、参考にしながら実際にやってみたらできたので、手順をメモしておく。

0.前提条件

  • iSCSI用のzvolは作成済みであること。
  • 作成したzvolはSharedされていること。
  • COMSTARの設定」を読んで、volを公開する構成を理解しておくとよい

1.クライアントのiqnをメモ



例)iqn.1991-05.com.microsoft:client1

2.Nexentaにログイン

ログインしてエキスパートモードを有効にする。
手順;NexentaにSSHログインしてエキスパートモードを有効にする手順

3.ホストグループを作る

ホストグループ1を作る。

# stmfadm create-hg ホストグループ1
# stmfadm add-hg-member -g ホストグループ1 iqn.1991-05.com.microsoft:client1(手順1でメモしたiqn名)

確認する。

# stmfadm list-hg -v

「Member:」に指定したiqnが入っていること。

4.ターゲットを作成する

iSCSIターゲットの作成は、WebGUI管理画面(NMC)から行う。

作成したターゲット名はメモしておく
例)iqn.1986-03.com.sun:02:2a607d70-7711-e7f2-a23e-d033ac532552

接続予定ホストが複数ある場合は、Target Portal Groups を複数作成して、そこにターゲットをそれぞれ登録しておく。

5.ターゲットグループを作成する

ターゲットグループ1を作成する。

# stmfadm create-tg ターゲットグループ1

作成したターゲットをオフラインにする

# stmfadm offline-target  iqn.1986-03.com.sun:02:2a607d70-7711-e7f2-a23e-d033ac532552(手順4で作成したターゲット名)


ターゲットグループにターゲットを追加する。

# stmfadm add-tg-member -g ターゲットグループ1 iqn.1986-03.com.sun:02:2a607d70-7711-e7f2-a23e-d033ac532552(手順4で作成したターゲット名)

ターゲットをオンラインにする

# stmfadm online-target  iqn.1986-03.com.sun:02:2a607d70-7711-e7f2-a23e-d033ac532552(手順4で作成したターゲット名)

確認する。

# stmfadm list-tg -v

ターゲットグループにターゲットが追加されていること。

6.LUN番号を取得する

# stmfadm list-lu -v
# stmfadm list-lu -v
LU Name: 600144F0435A430000004D45582C0001
    Operational Status: Online
    Provider Name     : sbd
    Alias             : /dev/zvol/rdsk/demo/demo

LU Name をメモする。


LU Name を元に、LUN番号を調べる。

# stmfadm list-view -l 600144F0FE63820000004CDD2E1E0001
View Entry: 0
    Host group   : All
    Target group : All
    LUN          : 2

LUN番号をメモしておく。
今回は2。

参考
どうやって 2 つの LU を見わけるの? (確認)

実は stmfadm add-view のとき,(実行結果では何も言ってくれないけれど) それぞれの LU に対して LUN (logical unit number, 論理ユニット番号) が割り当てられている.これは,stmfadm list-view で確認できる…のだけど,全部の LU の LUN を一括して参照する手段がなくて不便.

7.Viewを削除する

デフォルトはALL:ALLでViewが作成されているので、そこにアクセス元を制限するためのViewを追加しようとしても、すでにそのアクセス元は許可されていますというようなエラーが出て完了できない。
そのため、一度ALL:ALLのViewを削除する。

stmfadm remove-view -l 600144F0FE63820000004CE25BF90001 0

最後の0の意味は不明。

削除されていることを確認する。

stmfadm list-view -l 600144F0435A430000004D45582C0001

8.Viewを追加する

ホストグループとターゲットグループとLUN番号 を指定して、LUにViewを追加する。

stmfadm add-view -h ホストグループ -t ターゲットグループ -n LUN番号 600144F0FE63820000004CE25BF90001

確認する。

stmfadm list-view -l 600144F0FE63820000004CE25BF90001


以上。

おまけ

すでに使い始めている環境で上記手順を実施するのは少し恐かったけど、コマンドを事前に作成しておいて、それをコピペする方法だったら、一応無停止で移行できた。

*1:Volume と target と LUN のマッピングのこと。同じような意味で、「アフィニティ」とか「ゾーニング(zoning)」とか呼ばれる。