Solaris10:zfs + iscsi target設定
提供:KinusatiWiki
zfsをiscsiでshareし、マウントする
目次 |
iscsi target の設定
iscsitgtをサービス起動する
# svcadm enable iscsitgt
zfsでボリュームを作成する
50GBのボリュームを作成する。
# zfs create -V 20gb zmirror/volume/vol1
# iscsitadm modify admin -d /zmirror/volume/vol1
# iscsitadm show admin
iscsitadm:
Base Directory: /zmirror/volume/vol2
CHAP Name: Not set
RADIUS Access: Not set
RADIUS Server: Not set
iSNS Access: Not set
iSNS Server: Not set
Fast Write ACK: Not set
# zfs set shareiscsi=on zmirror/volume/vol1
# iscsitadm list target -v
Target: zmirror/volume/vol1
iSCSI Name: iqn.1986-03.com.sun:02:7bf521eb-3bfe-69a2-c9f1-00000000
Alias: zmirror/volume/vol1
Connections: 0
ACL list:
TPGT list:
LUN information:
LUN: 0
GUID: 0100001e8c3a62dd00002a0048b8b2b3
VID: SUN
PID: SOLARIS
Type: disk
Size: 50G
Backing store: /dev/zvol/rdsk/zmirror/volume/vol2
Status: online
iscsi initiator の設定
iscsi initiatorの有効化
# svcadm enable iscsi_initiator
iscsi initiatorの確認
# iscsiadm list initiator-node
iscsiadm list initiator-node
Initiator node name: iqn.1986-03.com.sun:01:e000000078cb.495d3166
Initiator node alias: hogehoge
Login Parameters (Default/Configured):
Header Digest: NONE/-
Data Digest: NONE/-
Authentication Type: NONE
RADIUS Server: NONE
RADIUS access: unknown
Configured Sessions: 1
iscsi targetの追加
# iscsiadm add discovery-address 192.168.0.1 # iscsiadm modify discovery -t enable # iostat -En c3t010000018062306C00002A00495EB8BAd0 Soft Errors: 2 Hard Errors: 0 Transport Errors: 0 Vendor: SUN Product: SOLARIS Revision: 1 Serial No: Size: 42.95GB <42949672448 bytes> Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0 Illegal Request: 2 Predictive Failure Analysis: 0
iscsi targetの削除
# iscsiadm remove discovery-address 192.168.0.1
iscsi initiatorでのチューニング
Solaris標準設定でiscsi initiatorを利用すると遅いです。具体的対策としては以下。実際以下設定を投入することで 10MByte/Sec => 30MByte/Secと劇的に変化がみられました(速度変更率は環境に依存すると思います)
- iscsi initiatorでのTCPのnagleアルゴリズムを無効化すること
vi /kernel/drv/iscsi.conf # # Disable Nagle within the iSCSI Initiator # tcp-nodelay=1; その後再起動
- 送信データバッファ量を増やす等
# iscsiadm modify target-param -p maxrecvdataseglen=65536 <target> # iscsiadm modify target-param -p datapduinorder=no <target> # iscsiadm modify target-param -p initialr2t=no <target> 見えているtargetをfor文で一括設定する場合は以下 # for T in `iscsiadm list target | fgrep Target: | cut -d" " -f2` # do iscsiadm modify target-param -p maxrecvdataseglen=65536 $T iscsiadm modify target-param -p datapduinorder=no $T iscsiadm modify target-param -p initialr2t=no $T done