Solaris10:zfs + iscsi target設定

提供:KinusatiWiki
移動: 案内, 検索

zfsをiscsiでshareし、マウントする

目次

iscsi target の設定

iscsitgtをサービス起動する

# svcadm enable iscsitgt

zfsでボリュームを作成する

50GBのボリュームを作成する。

# zfs create -V 20gb zmirror/volume/vol1

iscsi shareする

# 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
個人用ツール