web-dev-qa-db-ja.com

最高のパフォーマンスを得るためにDellPowerVault MD3600i SAN /イニシエーターを最適に調整するにはどうすればよいですか?

Dell PowerVault MD3600iの最近の所有者は、奇妙な結果を経験しています。

専用の24x10GbEスイッチ(PowerConnect 8024)があり、ジャンボフレーム9Kにセットアップされています。

MD3600には2つのRAIDコントローラーがあり、それぞれに2x10GbEイーサネットNICがあります。スイッチには他に何もありません。 1つのVLAN for SANトラフィック。

これが私のmultipath.confです

defaults {
    udev_dir        /dev
    polling_interval    5
    selector        "round-robin 0"
    path_grouping_policy    multibus
    getuid_callout      "/sbin/scsi_id -g -u -s /block/%n"
    prio_callout        none
    path_checker        readsector0
    rr_min_io       100
    max_fds         8192
    rr_weight       priorities
    failback        immediate
    no_path_retry       fail
    user_friendly_names yes
#   prio            rdac
}
blacklist {
    device {
               vendor "*"
        product "Universal Xport"
        }
#   devnode "^sd[a-z]"
}

devices {
    device {
           vendor "Dell"
           product "MD36xxi"
           path_grouping_policy group_by_prio
           prio rdac 
        #  polling_interval  5
           path_checker rdac
           path_selector "round-robin 0"
           hardware_handler "1 rdac"
           failback immediate
           features "2 pg_init_retries 50"
           no_path_retry 30
           rr_min_io 100
           prio_callout "/sbin/mpath_prio_rdac /dev/%n"
       }
}

そしてiscsid.conf:

node.startup = automatic
node.session.timeo.replacement_timeout = 15
node.conn[0].timeo.login_timeout = 15
node.conn[0].timeo.logout_timeout = 15
node.conn[0].timeo.noop_out_interval = 5
node.conn[0].timeo.noop_out_timeout = 10
node.session.iscsi.InitialR2T = No
node.session.iscsi.ImmediateData = Yes
node.session.iscsi.FirstBurstLength = 262144
node.session.iscsi.MaxBurstLength = 16776192
node.conn[0].iscsi.MaxRecvDataSegmentLength = 262144

私のテストの後;読み取り/書き込みが200Mb/sになることはほとんどありません。

それ以上のことを期待すべきですか?それがデュアル10GbEを持っているとすれば、400 Mb/sをどこで実現するかについての私の考えです。

何か案は ?ガイドライン?トラブルシューティングのヒント?

編集:

アレイは5.7TBの単一論理ボリュームとしてセットアップされますディスクはすべて1TB7.2k SAS 6GB(ST1000NM0001)RAIDはRAID10です

Swith構成のいくつかの行:

interface Te1/0/23
storm-control broadcast
storm-control multicast
spanning-tree portfast
mtu 9000
switchport access vlan 40
exit
...
iscsi cos vpt 5
management access-list "default"
permit service ssh priority 1
permit service http priority 2
permit service https priority 3

そしてマルチパス出力:

[root@xnode4 ~]# multipath -ll -v2
multipath.conf line 30, invalid keyword: prio
mpath1 (36d4ae520009bd7cc0000030e4fe8230b) dm-2 Dell,MD36xxi
[size=5.5T][features=3 queue_if_no_path pg_init_retries 50][hwhandler=1 rdac][rw]
\_ round-robin 0 [prio=400][active]
 \_ 7:0:0:0   sdc 8:32  [active][ready]
 \_ 9:0:0:0   sde 8:64  [active][ready]
 \_ 11:0:0:0  sdi 8:128 [active][ready]
 \_ 13:0:0:0  sdn 8:208 [active][ready]
\_ round-robin 0 [prio=0][enabled]
 \_ 10:0:0:0  sdj 8:144 [active][ghost]
 \_ 12:0:0:0  sdh 8:112 [active][ghost]
 \_ 8:0:0:0   sdd 8:48  [active][ghost]
 \_ 6:0:0:0   sdb 8:16  [active][ghost]
3
Disco

コメントや編集から判断すると、ボトルネックはストレージである可能性があります。まず、書き込みキャッシュが有効になっていると仮定すると、キャッシュがいっぱいになるまでのすべての書き込みは、回線速度で実行する必要があります。キャッシュの量を把握し、それより少ないデータで100%の書き込みベンチマークを実行することで、これをかなり簡単に測定できます。次に、キャッシュがデータのディスクへのデステージングを開始すると、RAID-10での書き込みパフォーマンス(コントローラーがボトルネックを引き起こしていないと仮定)は、読み取りパフォーマンスの半分になります。これは、各書き込みが2つのディスクに対して行われるのに対し、読み取りは1つのディスクからのみ行われるためです。 RAID-10の利点の1つは、計算するパリティがないことです。そのため、コントローラーのプロセッサーが単に追いつくことができない可能性はほとんどありません。

次に、ベンチマークが読み取りと書き込みの混合を測定している場合、ストレージコントローラーから得られるパフォーマンスはIOのタイプによって異なります。シーケンシャルの場合、MB /秒の数は多くなりますが、IO /秒の数は少なくなります。ランダムなスモールブロックの場合、MB/sの数は少なくなりますが、ディスクが提供できる数のIO/sが得られます。各7200RPMディスクは、予測できない読み取り時に特定の数のIO /秒を提供するため、レイド内のドライブ数にドライブあたりのIO /秒数を掛けたものが、理論上のパフォーマンスの上限になります。

最後に、1つの大きなボリューム内のすべてのストレージが単一のLUNとして提示されている場合、コマンドキューが飽和状態になる可能性があります。通常のオペレーティングシステムには、構成可能なコマンドキューの深さ(ストレージ用に並べられる未処理のIOの数)があり、各ボリューム/ LUNには独自のキューがあります。すべてのストレージを同じLUNに配置する場合の別の問題は、通常、IOがそのLUNの単一のコントローラーに送信されることです。アクティブ/アクティブストレージシステムでも(あなたのことはわかりませんが)つまり、あるコントローラーに対して別のコントローラーとの親和性を持つことができます。目標は、一連のボリュームを作成し、それらをコントローラー間で均等に分割することです。

6
Basil

単一のディスクでベンチマークし、RAID0のすべてのディスクで再度実行します。

RAID 0には、RAID10またはRAID5のオーバーヘッドはありません。

MDのキャッシュも確認してください。デフォルトは4kブロックですが、最大32kブロックになる可能性があります。これら2つの値の間で速度に最大30%の違いがありました。ただし、ワークロードについてテストしてください。

より多くのスレッドを使用できるSQLIOのようなものを使用してください。一生懸命頑張ると、ようやく数字が良くなり始めました。

そして、MDが10G用に構成されていることを確認します。オプションはポートで10Gまたは1Gであり、自動ネゴシエーションは行われません。

1
kevmar

アレイのキャッシュブロックサイズを4kから16kまたは32kに増やしたい場合があります(特にシーケンシャルワークロードを探している場合)

1
thibz