ESXiとVNXeの間で1ギガビットiSCSIの制限を破る方法


15

iSCSIネットワークで大きな問題が発生しており、可能な限り高速に動作しないようです。

そのため、VMwareとEMCの専門家を巻き込んで、SANのパフォーマンスを最大限に引き出すために、ほぼすべてを試しました。

私のギアの簡単な説明:3x HP DL360 G7 / vSphere 5.5 / 4オンボードNIC / iSCSI用4 PCIe Intel NIC 2x HP 2510-24G 1x EMC VNXe 3100/2 xストレージ専用プロセッサー、2 x iSCSI専用NIC / 24x 15k SAS RAID10 / 6x 7.2k SAS RAID6

ベストプラクティスを実施し、ストレージプールを両方のiSCSIサーバーに均等に配置しました。各ストレージプロセッサに1つずつ、2つのiSCSIサーバーを作成しました。iSCSI構成の画像をご覧ください。

iSCSI構成

iSCSIトラフィックはVLANを介して分離されます(他のVLANには設定できません)。29xxシリーズの別のHPスイッチでも試してみました。フロー制御が有効になっている(無効にしようとした)が、ジャンボが無効になっています。関連するルーティングはありません。

ESXホストでは、すべてのデータストアにラウンドロビン設定を使用したため、すべてのiSCSI NICが使用されています。他の多くの人がそのようにパフォーマンスを上げているように見えるので、私はまた1 IOのパス変更ポリシーでそれを試しました。内蔵NIC(Broadcom)も試しましたが、違いはありません。スイッチでは、ESX側とVNXe側のポートが非常に均等に使用されていることがわかります。しかし、完璧な負荷分散を行っていますが、合計で1ギガビットを超えることはできません。VNXeは複数の接続用に最適化されており、ラウンドロビンにもそれが必要であることを理解していますが、2つのホストと2つのデータストア間でストレージvMotionを実行しても(異なるiSCSIサーバーを使用)、約84 MBit / s Unisphere Webインターフェイス経由。私は自分のディスクが信じられないほど正確に同じ値でその行を頻繁に見ることができます より多くを提供するか、タスクが十分に要求されていません。さらに良くなっています。各ホストと各ストレージプロセッサにケーブルが1本しかないため、同じパフォーマンスを実現できます。だから、私は多くの冗長性を手に入れましたが、余分な速度はまったくありませんでした。

iSCSIのパフォーマンスについて多くの人が話しているのを見てきたので、(VMwareおよびEMCの訓練を受けた人によってテストおよび検証された)私の構成の何が問題なのかを見つけることを切望しています。私はすべての意見に感謝しています!

編集:

はい、複数のNICを使用するようにvMotionを構成しました。そのストレージに加えて、vMotionは常にvMotionアダプターではなくiSCSIアダプターを通過します。構成のスクリーンショットを添付しました。

iSCSIポートバインディング

iSCSI宛先

iSCSIパス

ストレージvMotionはベンチマークではないことを知っていますが、ここ数日間はこれを多く行う必要があり、上限は常に約80 MB /秒でした。RAID 10の6x 15k 600 GB SASディスクのプールは、さらに多くのものを簡単に通過させることができるはずです。IOメーターのテストを行いました。そのうちのいくつかを試しました。最速は256 KiB 100%読み取りでした。64.45 MB /秒を取得しました-私のUnisphereはほぼ同じ速度を示しています。これは、6x 15k 300 GB SASディスク(RAID 10)のプールに保存されているVMにあり、この時間には他のアクティビティはほとんどありません。

IOメーター

ユニスフィア

EDIT2:

ユーザー名が重複してすみませんが、この質問は職場で書いたもので、すでにストックオーバーフローで取得したユーザー名は使用していません。しかし、ここに私のラウンドロビン設定を示すスクリーンショットがあります。すべてのホストとすべてのストアで同じです。

ラウンドロビン


何も間違っているとは思いません。正確に何を期待していますか?マルチNIC vMotion
ewwhite 14年

3
vmkernelはI / OとCPUの使用が制限されているため、storage vmotionの実行はストレージシステムのベンチマークではありません。iometerなどを使用してベンチマークを試しましたか?VNXeのどのようなディスク、およびどのようなRAID /ストレージプールのセットアップですか?
pauska 14年

また、vSphere内のLUN「管理パス」のスクリーンショットを投稿できますか?
pauska 14年

質問をするために使用したユーザーとは異なるユーザーでログインしたため、編集がキューでスタックしました。
pauska

スクリーンショットに感謝しますが、それは私が求めたものではありません。esxiホストの1つ、[構成]タブ、データストアをクリックし、トラブルシューティングするデータストアを選択して、右下の[プロパティ]リンクをクリックします。次に、「パスの管理」をクリックして、そのウィンドウのスクリーンショットを送信します。
pauska

回答:


1

これを実際に開始するのに十分なIOPSを生成しない可能性があります。
一見持ってここに小さい値にデフォルト1'000 IOPSから設定を変更する方法についてを。(これはsymmetrix固有ですが、VMWare Round Robin Providerでも同じことができます)

ただし、1つのデータストアだけで複数のリンクを完全に並行して実際に使用できるかどうかはまだ確信が持てません。利点を確認するには、複数のデータストアでIOMeterテストを並行して実行する必要があると思います。(100%確かではありません)


私の質問で述べたように、私はすでにパス変更ポリシーを1.000ではなく1に設定しています-実際にはあまり変わりませんでした。
ライアンハーディ14年

あぁ、あの部分を見落としたに違いない、ごめんなさい。
ミシェルズ14年

1

EMCという名前のストレージベンダー用のSATPルールを作成し、パスポリシーをラウンドロビンおよびIOPSとしてデフォルトの1000から1に設定します。これは再起動後も維持され、新しいEMC iSCSI LUNが提示されるたびに、このルールが選択されます。これを既存のEMC iSCSI LUNに適用するには、ホストを再起動します。

esxcli storage nmp satp rule add --satp="VMW_SATP_DEFAULT_AA" \
  --vendor="EMC" -P "VMW_PSP_RR" -O "iops=1"

IOPSを1から3の間で変更してみましたが、単一のVMで最高のパフォーマンスを発揮します。つまり、VMとデータストアがたくさんある場合、1は最適ではないかもしれません...

VNXeの各インターフェイスが9000 MTUに設定されていることを確認してください。また、iSCSIインターフェイスを備えたvSwitchは、各VMKernelとともに9000 MTUに設定する必要があります。VNXeで、SPA用とSPB用の2つのiSCSIサーバーを作成します。最初にそれぞれに1つのIPを関連付けます。次に、各iSCSIサーバーの詳細を表示し、SPごとに各アクティブインターフェイスのIPを追加します。これにより、探しているラウンドロビンのパフォーマンスが得られます。

次に、少なくとも2つのデータストアを作成します。1つのデータストアをiSCSIServer-SPAに関連付け、1つのデータストアをiSCSIServer-SPBに関連付けます。これにより、SPの1つがアイドル状態にならないようにします。

最後に、iSCSIに使用されているESX側のすべてのインターフェイスは、すべてのインターフェイスがアクティブである別のvSwitchに移動する必要があります。ただし、指定されたvSwitch内のESX側の各インターフェイスにVMkernelが必要になります。1つのアクティブアダプターと他のすべてのアダプターを未使用にするには、各VMKernelのvSwitchフェイルオーバーの順序をオーバーライドする必要があります。これは、ESXホストのプロビジョニングに使用した展開スクリプトです。各ホストには合計8つのインターフェースがあり、LAN用に4つ、iSCSI / VMotionトラフィック用に4つです。

  1. 以下の設定を実行します

a。#DNS esxcli network ip dns search add --domain = mydomain.net

esxcli network ip dns server add --server = XXXX

esxcli network ip dns server add --server = XXXX

b。#ホスト名の更新を適宜設定

esxcliシステムのホスト名セット--host = server1 --domain = mydomain.net

c。#アップリンクをvSwitch0に追加esxcliネットワークvswitch標準アップリンクadd --uplink-name = vmnic1 --vswitch-name = vSwitch0

esxcliネットワークvswitch標準アップリンク追加--uplink-name = vmnic4 --vswitch-name = vSwitch0

esxcliネットワークvswitch標準アップリンク追加--uplink-name = vmnic5 --vswitch-name = vSwitch0

d。#ストレージ用のvSwitch1を作成し、MTUを9000に設定

esxcli network vswitch standard add --vswitch-name = vSwitch1

esxcli network vswitch standard set --vswitch-name = vSwitch1 --mtu = 9000

e。#vSwitch1にアップリンクを追加

esxcliネットワークvswitch標準アップリンク追加--uplink-name = vmnic2 --vswitch-name = vSwitch1

esxcliネットワークvswitch標準アップリンク追加--uplink-name = vmnic3 --vswitch-name = vSwitch1

esxcliネットワークvswitch標準アップリンク追加--uplink-name = vmnic6 --vswitch-name = vSwitch1

esxcliネットワークvswitch標準アップリンク追加--uplink-name = vmnic7 --vswitch-name = vSwitch1

f。#vSwitch0のアクティブなNICを設定

esxcliネットワークvswitch標準ポリシーフェールオーバーセット--vswitch-name = vSwitch0 --active-uplinks = vmnic0、vmnic1、vmnic4、vmnic5

g。#vSwitch1のアクティブなNICを設定

esxcliネットワークvswitch標準ポリシーフェールオーバーセット--vswitch-name = vSwitch1 --active-uplinks = vmnic2、vmnic3、vmnic6、vmnic7

h。#iSCSIのポートグループとESX02ではなくESX01のvmkernelsを作成します

esxcli network vswitch standard portgroup add --portgroup-name = iSCSI-vmnic2 --vswitch-name = vSwitch1

esxcli network ip interface add --interface-name = vmk2 --portgroup-name = iSCSI-vmnic2 --mtu = 9000

esxcli network ip interface ipv4 set --interface-name = vmk2 --ipv4 = 192.158.50.152 --netmask = 255.255.255.0 --type = static

vim-cmd hostsvc / vmotion / vnic_set vmk2

esxcli network vswitch standard portgroup add --portgroup-name = iSCSI-vmnic3 --vswitch-name = vSwitch1

esxcli network ip interface add --interface-name = vmk3 --portgroup-name = iSCSI-vmnic3 --mtu = 9000

esxcli network ip interface ipv4 set --interface-name = vmk3 --ipv4 = 192.158.50.153 --netmask = 255.255.255.0 --type = static

vim-cmd hostsvc / vmotion / vnic_set vmk3

esxcli network vswitch standard portgroup add --portgroup-name = iSCSI-vmnic6 --vswitch-name = vSwitch1

esxcli network ip interface add --interface-name = vmk6 --portgroup-name = iSCSI-vmnic6 --mtu = 9000

esxcli network ip interface ipv4 set --interface-name = vmk6 --ipv4 = 192.158.50.156 --netmask = 255.255.255.0 --type = static

vim-cmd hostsvc / vmotion / vnic_set vmk6

esxcli network vswitch standard portgroup add --portgroup-name = iSCSI-vmnic7 --vswitch-name = vSwitch1

esxcli network ip interface add --interface-name = vmk7 --portgroup-name = iSCSI-vmnic7 --mtu = 9000

esxcli network ip interface ipv4 set --interface-name = vmk7 --ipv4 = 192.158.50.157 --netmask = 255.255.255.0 --type = static

vim-cmd hostsvc / vmotion / vnic_set vmk7

私。#iSCSIのポートグループとESX01ではなくESX02のvmkernelsを作成します

esxcli network vswitch standard portgroup add --portgroup-name = iSCSI-vmnic2 --vswitch-name = vSwitch1

esxcli network ip interface add --interface-name = vmk2 --portgroup-name = iSCSI-vmnic2 --mtu = 9000

esxcli network ip interface ipv4 set --interface-name = vmk2 --ipv4 = 192.168.50.162 --netmask = 255.255.255.0 --type = static

vim-cmd hostsvc / vmotion / vnic_set vmk2

esxcli network vswitch standard portgroup add --portgroup-name = iSCSI-vmnic3 --vswitch-name = vSwitch1

esxcli network ip interface add --interface-name = vmk3 --portgroup-name = iSCSI-vmnic3 --mtu = 9000

esxcli network ip interface ipv4 set --interface-name = vmk3 --ipv4 = 192.168.50.163 --netmask = 255.255.255.0 --type = static

vim-cmd hostsvc / vmotion / vnic_set vmk3

esxcli network vswitch standard portgroup add --portgroup-name = iSCSI-vmnic6 --vswitch-name = vSwitch1

esxcli network ip interface add --interface-name = vmk6 --portgroup-name = iSCSI-vmnic6 --mtu = 9000

esxcli network ip interface ipv4 set --interface-name = vmk6 --ipv4 = 192.168.50.166 --netmask = 255.255.255.0 --type = static

vim-cmd hostsvc / vmotion / vnic_set vmk6

esxcli network vswitch standard portgroup add --portgroup-name = iSCSI-vmnic7 --vswitch-name = vSwitch1

esxcli network ip interface add --interface-name = vmk7 --portgroup-name = iSCSI-vmnic7 --mtu = 9000

esxcli network ip interface ipv4 set --interface-name = vmk7 --ipv4 = 192.168.50.167 --netmask = 255.255.255.0 --type = static

vim-cmd hostsvc / vmotion / vnic_set vmk7

j。#各iSCSI vmkernelにアクティブなNICを設定

esxcliネットワークvswitch標準ポートグループポリシーフェイルオーバーセット--portgroup-name = iSCSI-vmnic2 --active-uplinks = vmnic2

esxcliネットワークvswitch標準ポートグループポリシーフェイルオーバーセット--portgroup-name = iSCSI-vmnic3 --active-uplinks = vmnic3

esxcliネットワークvswitch標準ポートグループポリシーフェールオーバーセット--portgroup-name = iSCSI-vmnic6 --active-uplinks = vmnic6

esxcliネットワークvswitch標準ポートグループポリシーフェイルオーバーセット--portgroup-name = iSCSI-vmnic7 --active-uplinks = vmnic7

k。#ポートグループを作成

esxcli network vswitch standard portgroup add --portgroup-name = VMNetwork1 --vswitch-name = vSwitch0

esxcli network vswitch standard portgroup add --portgroup-name = VMNetwork2 --vswitch-name = vSwitch0

esxcli network vswitch standard portgroup add --portgroup-name = VMNetwork3 --vswitch-name = vSwitch0

l。#VLANをVMポートグループに設定

esxcli network vswitch standard portgroup set -p VMNetwork1 --vlan-id ##

esxcli network vswitch standard portgroup set -p VMNetwork2 --vlan-id ##

esxcli network vswitch standard portgroup set -p VMNetwork3 --vlan-id ###

m。#デフォルトのVMポートグループを削除

esxcli network vswitch standard portgroup remove --portgroup-name = "VM Network" -v = vSwitch0

n。#iSCSIソフトウェアアダプターを有効にする

esxcli iscsiソフトウェアセット--enabled = true

esxcli iscsi networkportal add -A vmhba33 -n vmk2

esxcli iscsi networkportal add -A vmhba33 -n vmk3

esxcli iscsi networkportal add -A vmhba33 -n vmk6

esxcli iscsi networkportal add -A vmhba33 -n vmk7

o。#ローカルデータストアの名前を変更

ホスト名> $ var =

vim-cmd hostsvc / datastore / rename datastore1 local-$var

p。#EMC VNXe 3300のネイティブマルチパスストレージアレイタイププラグインを定義し、ラウンドロビンIOPSを1000から1に調整します

esxcli storage nmp satp rule add --satp = "VMW_SATP_DEFAULT_AA" --vendor = "EMC" -P "VMW_PSP_RR" -O "iops = 1"

q。#ネットワークを更新

esxcliネットワークファイアウォールの更新

vim-cmd hostsvc / net / refresh

  1. ホストごとにvSphere Clientを使用してNTPクライアントを構成する

a。設定->時間設定->プロパティ->オプション-> NTP設定->追加-> ntp.mydomain.net->「変更を適用するためにNTPサービスを再起動」をチェック-> OK->待機…-> [ホストで開始および停止]を選択-> [OK]-> [NTPクライアントを有効化]-> [OK]

  1. ホストを再起動

  2. EMC VNXeストレージプロビジョニングに進み、完了したらこのガイドに戻ります

  3. ホストごとにvSphereクライアントにログイン

  4. 各データストアをVMFS-5にアップグレードします

a。構成->ストレージ->データストアの強調表示-> VMFS-5へのアップグレード


0

残念ながら、セットアップに問題はないと思います。1つのVMに1 Gb / sを超える速度を使用することはできません。

ここでのポイントは、単純に2つ(またはそれ以上)のNIC を使用するのではなく、RAID-0のような構成で同時に使用することです

リンクレベルの集約に関する標準であり、スイッチで構成したと思われる802.3adは、通常、異なるNICで単一の接続をストライプ化するようには構成できません。これは、interface-algの選択がどのように機能するかによるものです。srcとdstのMACおよび/またはIP /ポートに基づいており、単一の接続は常に同じMAC / IP /ポートを持ちます

これは、セットアップで(tputとIOPSの両方として)高い数値をプッシュできないことを意味するものではありませんが、これにより、単一のVMが抽出できるパフォーマンスに厳しい制限が課されます。2つまたは4つのIOMeterインスタンスを2/4の異なるVMにロードしてみてください:集約されたtputは単一のVMベンチマークよりもはるかに高くなるでしょうが、単一のマシンは1 Gb / sの制限を超えません。

Linuxブリッジングと一部のハイエンドスイッチは、さまざまなリンク集約方法をサポートし、フルストライプの集約されたネットワークインターフェイスを可能にします。ただし、これには、他のスイッチ/システムがこれらの「非標準」の集約方法と相互作用する方法について、些細な影響はありません。

とにかく、ストレージネットワークでは、サポートされている場合はジャンボフレームを実際に有効にする必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.