Solaris COMSTAR


COMSTAR関係

 基本部分

  • LUのブロックサイズ指定

注意)Windows 2008からだと一応読み書きできるけど、微妙に不安定だったので謎だったけど、物理4kbセクタはサポートしてないのね。
トラブル出したくない人はここはデフォルトのままで行く方が良いかと。

 stmfadm create-lu -p blk=4096 /dev/zvol/rdsk/zpool/test

で、結果はいかに

LU Name: 600144F071D8C30000004E21F7D50001
   Operational Status: Online
   Provider Name     : sbd
   Alias             : /dev/zvol/rdsk/zpool/test
   View Entry Count  : 0
   Data File         : /dev/zvol/rdsk/zpool/test
   Meta File         : not set
   Size              : 32212254720
   Block Size        : 4096
   Management URL    : not set
   Vendor ID         : NEXENTA
   Product ID        : COMSTAR
   Serial Num        : not set
   Write Protect     : Disabled
   Writeback Cache   : Enabled
   Access State      : Active

 iSCSI設定

OpenSolaris系だとほぼ一緒(NexentaCore,Solaris 11 Express,Solaris 11)

  • Targetのインストール・サービスの起動

targetインストール

 root@solaris:~# pkg install system/storage/iscsi/iscsi-target

でパッケージ追加
サービスの起動

 root@solaris:~# svcadm enable -r /system/stmf
 root@solaris:~# svcadm enable -r /network/iscsi/target
  • tpgの作成。接続を許可するサーバ側のIPアドレスを指定。

接続を許可したいサーバのネットワークインターフェースのIPアドレスを指定してTarget Portal Group(tpg)を作成。

root@solaris:~# itadm create-tpg net0 192.168.11.1

サーバに複数インターフェイス有る場合は以下のように複数のアドレスを指定可能。下記例だと別セグメントだが、同一セグメントのIPアドレスでも可能。

root@solaris:~# itadm create-tpg net0 192.168.11.1 192.168.12.1

接続先となるTargetを作成。

  • Targetの作成とTargetとTarget Portal Groupの紐付け。

このとき、作成しておいたTarget Portal GroupとTargetを紐づけることで、このTargetへの接続を受け付けるサーバ側のネットワークインターフェースを指定。

root@solaris:~# itadm create-target -n iqn.2011-10.solaris:test -t net0
Target iqn.2011-10.solaris:test successfully created

Target Gruopを作成してそのメンバーに先ほど作成したTargetを追加。この作業は一旦Targetをオフラインにする必要があり。

root@solaris:~# stmfadm create-tg test
root@solaris:~# stmfadm offline-target iqn.2011-10.solaris:test
root@solaris:~# stmfadm add-tg-member -g test iqn.2011-10.solaris:test
root@solaris:~# stmfadm online-target iqn.2011-10.solaris:test
  • Host Groupを作成。接続を許可する端末の指定。

Host Groupを作成してそのメンバーに接続を受け付けるiSCSIクライアントのIQNを加える。この場合はMSのiscsiクライアントを指定している。

root@solaris:~# stmfadm create-hg test
root@solaris:~# stmfadm add-hg-member -g test iqn.1991-05.com.microsoft:hoge.espresso.gr.jp
  • zvolを作成。
root@solaris:~# zfs create -V 10g rzpool/test
  • 作成したzvolを指定してLUを作成。
root@solaris:~# stmfadm create-lu /dev/zvol/rdsk/rzpool/test
Logical unit created: 600144F05ABDCD0000004E8852090001
  • これまでに作成したTarget Group, Host Group, LUを紐づけるViewを作成。
root@solaris:~# stmfadm add-view -t test -h test 600144F05ABDCD0000004E8852090001
  • 作成後の確認
root@solaris:~# stmfadm list-target -v
Target: iqn.2011-10.solaris:test
    Operational Status: Online
    Provider Name     : iscsit
    Alias             : -
    Protocol          : iSCSI
    Sessions          : 0
root@solaris:~# stmfadm list-view -l 600144F05ABDCD0000004E8852090001
View Entry: 0
    Host group   : test
    Target group : test
    LUN          : 0
root@solaris:~# stmfadm list-hg -v
Host Group: test
       Member: iqn.1991-05.com.microsoft:hoge.espresso.gr.jp
root@solaris:~# stmfadm stmfadm list-tg -v
Target Group: test
       Member: iqn.2011-10.solaris:test

iSERの場合

上記設定をIPoIBのインターフェイスに設定してやって、iSERに対応したInitiatorから接続すると自動的にiSERを使用するようになります。
Linuxのopen-iscsiで確認。

 SRP設定

  • solaris 11 express 構築

iSCSIでの設定とほぼ一緒。COMSTARなので基本一緒なのね・・・。

ソフト類インストール後に、Targetを起動

svcadm enable -r /system/ibsrp/target

Target が起動してるか確認

root@solaris:~# stmfadm list-target
Target: eui.0002C9020024Fxxx

Target Group作成

root@solaris:~# stmfadm create-tg ib-win
root@solaris:~# stmfadm list-tg  -v
Target Group: ib-win

TargetにTarget Groupを設定

root@solaris:~# stmfadm offline-target eui.0002C9020024Fxxx
root@solaris:~# stmfadm add-tg-member -g ib-win eui.0002C9020024Fxxx
root@solaris:~# stmfadm offline-target eui.0002C9020024Fxxx
root@solaris:~# stmfadm list-tg  -v
Target Group: ib-win
       Member: eui.0002C9020024Fxxx

Host Groupを作成してそのメンバーに接続を受け付けるSRPクライアントのeui加える。
euiに続く番号は、Initiater側HCAのNode GUIDになる。

root@solaris:~# stmfadm create-hg ib-win
root@solaris:~# stmfadm add-hg-member -g ib-win eui.0002c90300081xxx

zvolを作成。

root@solaris:~# zfs create -V 10g rzpool/test

作成したzvolを指定してLUを作成。

root@solaris:~# stmfadm create-lu /dev/zvol/rdsk/rzpool/test
Logical unit created: 600144F05ABDCD0000004E8852090001

LUはすでに作ってあるとして、LUをTargetに追加

stmfadm add-view -t ib-win -h ib-win 600144F0F3F70A0000004E36A55C0001

で、終了。iSCSIと同様に確認して、WindowsなりLinuxなりで接続しましょう。

  • NexentaCoreでSRP Target構築

  • SRPの動作中の結果

raidz2のボリュームからの読込が遅い。
いや、切り出してるzvolがシンプロビジョニングで、volblocksizeが4kで作ってるのが原因か?
実際に各ディスクからの読込してるのとpoolでの読込サイズが全く一致しないのが謎
どちらにせよ、一度このzvolは破棄して作り直す予定。

                              capacity     operations    bandwidth
pool                       alloc   free   read  write   read  write
-------------------------  -----  -----  -----  -----  -----  -----
rzpool                     15.2T  2.90T  24.9K      0  49.4M      0
  raidz2                   15.2T  2.90T  24.9K      0  49.4M      0
    c0t5000C5002A6D8391d0      -      -  2.87K      0  26.5M      0
    c0t5000C5002A6DF19Cd0      -      -  2.88K      0  26.1M      0
    c0t5000C5002A6E7180d0      -      -  2.89K      0  25.8M      0
    c0t5000C5002A6E9583d0      -      -  2.83K      0  26.2M      0
    c0t5000C5002B5CD734d0      -      -  2.96K      0  27.5M      0
    c0t5000C5002B5E690Fd0      -      -  2.98K      0  26.6M      0
    c0t5000C5002B557147d0      -      -  3.00K      0  26.9M      0
    c0t5000C50024C8D5A2d0      -      -  2.95K      0  27.1M      0
    c0t5000C5002077D17Cd0      -      -  2.95K      0  25.7M      0
    c0t5000C5003260BAD1d0      -      -  3.03K      0  26.4M      0
  c0t5000000000000000d0s1    16K  15.9G      0      0      0      0
cache                          -      -      -      -      -      -
  c0t5000000000000000d0s2  50.0G      0      0     27      0  3.17M
-------------------------  -----  -----  -----  -----  -----  -----

                              capacity     operations    bandwidth
pool                       alloc   free   read  write   read  write
-------------------------  -----  -----  -----  -----  -----  -----
rzpool                     15.2T  2.90T  20.6K      0  29.6M      0
  raidz2                   15.2T  2.90T  20.6K      0  29.6M      0
    c0t5000C5002A6D8391d0      -      -  2.31K      0  12.3M      0
    c0t5000C5002A6DF19Cd0      -      -  2.32K      0  12.0M      0
    c0t5000C5002A6E7180d0      -      -  2.21K      0  12.4M      0
    c0t5000C5002A6E9583d0      -      -  2.28K      0  12.0M      0
    c0t5000C5002B5CD734d0      -      -  2.32K      0  11.9M      0
    c0t5000C5002B5E690Fd0      -      -  2.28K      0  11.9M      0
    c0t5000C5002B557147d0      -      -  2.24K      0  12.2M      0
    c0t5000C50024C8D5A2d0      -      -  2.23K      0  11.7M      0
    c0t5000C5002077D17Cd0      -      -  2.29K      0  11.7M      0
    c0t5000C5003260BAD1d0      -      -  2.40K      0  12.3M      0
  c0t5000000000000000d0s1    16K  15.9G      0      0      0      0
cache                          -      -      -      -      -      -
  c0t5000000000000000d0s2  50.0G  4.16M      0     42      0  4.94M
-------------------------  -----  -----  -----  -----  -----  -----

 FC Target(FCoE含む)

Qlogic QLE8152が手に入ったので試行錯誤してなんとかFCoEのTarget化に成功。
初期状態だとInitiatorな為、TargetModeに変更してやる必要があります。
Emulex OCe10102-FM でも、FCoEのTarget化できた。

Emulexの場合

デフォルトだとInitiatorモード。
Targetモードに変更する場合は/kernel/drv/emlxs.confを

target-mode=1;
ddi-forceattach=1

に変更すると、Targetモードに変わる。

Qlogicの場合

デフォルトだとInitiatorモード。
Targetモードに変更する場合はドライバを更新する。
qlcがinitiatorドライバで、qltがTargetドライバ。
/etc/path_to_inst等で、qlcのpciexのアドレスを調べる。
まずは、Initiatorドライバのbindを下記コマンドで削除。

# update_drv -d -i 'pciex1077,2432' qlc
Cannot unload module: qlc 
Will be unloaded upon reboot. 

Targetドライバを下記コマンドでbind。

# update_drv -a -i 'pciex1077,2432' qlt
devfsadm: driver failed to attach: qlt
Warning: Driver (qlt) successfully added to system but failed to attach

で、一度再起動。
fcinfoで、Targetに変わってるか確認。

root@omnios:~# fcinfo hba-port
HBA Port WWN: 210000c0dd161289
        Port Mode: Target
        Port ID: 0
        OS Device Name: Not Applicable
        Manufacturer: QLogic Corp.
        Model: QLE8152
        Firmware Version: 5.2.1
        FCode/BIOS Version: N/A
        Serial Number: not available
        Driver Name: COMSTAR QLT
        Driver Version: 20100505-1.05
        Type: unknown
        State: offline
        Supported Speeds: 10Gb
        Current Speed: not established
        Node WWN: 200000c0dd161289
HBA Port WWN: 210000c0dd16128b
        Port Mode: Target
        Port ID: 0
        OS Device Name: Not Applicable
        Manufacturer: QLogic Corp.
        Model: QLE8152
        Firmware Version: 5.2.1
        FCode/BIOS Version: N/A
        Serial Number: not available
        Driver Name: COMSTAR QLT
        Driver Version: 20100505-1.05
        Type: unknown
        State: offline
        Supported Speeds: 10Gb
        Current Speed: not established
        Node WWN: 200000c0dd16128b

ソフトウェアFCoE設定

napp-itから設定したので、コマンドラインからどう設定するのか解ってない。
後日追試の予定。以下のはソフトウェアFCoEの物でした orz

ソフトウェアFCoE確認

QLE8152を認識すると以下のようになります。

root@openindiana:~#  fcinfo hba-port -e
HBA Port WWN: 200000c0dd14c5b8
        Port Mode: Target
        Port ID: 0
        OS Device Name: Not Applicable
        Manufacturer: Sun Microsystems, Inc.
        Model: FCoE Virtual FC HBA
        Firmware Version: N/A
        FCode/BIOS Version: N/A
        Serial Number: N/A
        Driver Name: COMSTAR FCoET
        Driver Version: v20091123-1.02
        Type: unknown
        State: offline
        Supported Speeds: 1Gb 10Gb
        Current Speed: not established
        Node WWN: 100000c0dd14c5b8
HBA Port WWN: 200000c0dd14c5ba
        Port Mode: Target
        Port ID: 0
        OS Device Name: Not Applicable
        Manufacturer: Sun Microsystems, Inc.
        Model: FCoE Virtual FC HBA
        Firmware Version: N/A
        FCode/BIOS Version: N/A
        Serial Number: N/A
        Driver Name: COMSTAR FCoET
        Driver Version: v20091123-1.02
        Type: unknown
        State: offline
        Supported Speeds: 1Gb 10Gb
        Current Speed: not established
        Node WWN: 100000c0dd14c5ba
root@openindiana:~# fcadm list-fcoe-ports
HBA Port WWN: 200000c0dd14c5b8
        Port Type: Target
        MAC Name: qlge0
        MTU Size: 9000
        Primary MAC Address: 00c0dd14c5b8
        Current MAC Address: 00c0dd14c5b8
        Promiscuous Mode: Off
HBA Port WWN: 200000c0dd14c5ba
        Port Type: Target
        MAC Name: qlge1
        MTU Size: 9000
        Primary MAC Address: 00c0dd14c5ba
        Current MAC Address: 00c0dd14c5ba
        Promiscuous Mode: Off

OCe 10102-FMで認識すると以下のように

root@openindiana:~# fcinfo hba-port -e
HBA Port WWN: 20000000c9c2af68
        Port Mode: Target
        Port ID: 0
        OS Device Name: Not Applicable
        Manufacturer: Sun Microsystems, Inc.
        Model: FCoE Virtual FC HBA
        Firmware Version: N/A
        FCode/BIOS Version: N/A
        Serial Number: N/A
        Driver Name: COMSTAR FCoET
        Driver Version: v20091123-1.02
        Type: unknown
        State: offline
        Supported Speeds: 1Gb 10Gb
        Current Speed: not established
        Node WWN: 10000000c9c2af68
HBA Port WWN: 20000000c9c2af6a
        Port Mode: Target
        Port ID: 0
        OS Device Name: Not Applicable
        Manufacturer: Sun Microsystems, Inc.
        Model: FCoE Virtual FC HBA
        Firmware Version: N/A
        FCode/BIOS Version: N/A
        Serial Number: N/A
        Driver Name: COMSTAR FCoET
        Driver Version: v20091123-1.02
        Type: unknown
        State: offline
        Supported Speeds: 1Gb 10Gb
        Current Speed: not established
        Node WWN: 10000000c9c2af6a
root@openindiana:~# fcadm list-fcoe-ports
HBA Port WWN: 20000000c9c2af68
        Port Type: Target
        MAC Name: oce0
        MTU Size: 9000
        Primary MAC Address: 0000c9c2af68
        Current MAC Address: 0000c9c2af68
        Promiscuous Mode: On
HBA Port WWN: 20000000c9c2af6a
        Port Type: Target
        MAC Name: oce1
        MTU Size: 9000
        Primary MAC Address: 0000c9c2af6a
        Current MAC Address: 0000c9c2af6a
        Promiscuous Mode: On