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