web-dev-qa-db-ja.com

ESXiとVNXe間の1ギガビットiSCSI制限をクラックする方法

ISCSIネットワークに大きな問題が発生しているため、できるだけ高速に動作させることができません。

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

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

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

iSCSI configuration

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

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

かなりの人がiSCSIパフォーマンスについて話しているのを見たので、私は自分の構成(VMwareおよびEMCの訓練を受けた担当者によってテストおよび検証済み)の何が問題なのかを見つけるのに必死です。私はあらゆる意見に感謝しています!

編集:

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

iSCSI Port binding

iSCSI Destinations

iSCSI Paths

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

IO Meter

Unisphere

EDIT2:

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

Round Robin

15
Ryan Hardy

EMCという名前のストレージベンダーのSATPルールを作成し、パスポリシーをRound Robineおよび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が必要です。各VMKernelのvSwitchフェイルオーバーの順序をオーバーライドして、1つのアクティブアダプターと他のすべてを未使用にする必要があります。これは、ESXホストのプロビジョニングに使用した導入スクリプトです。各ホストには、LAN用に4つ、iSCSI/VMotionトラフィック用に4つの合計8つのインターフェースがあります。

  1. 以下の構成を実行します

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

esxcli network ip dns server add --server = X.X.X.X

esxcli network ip dns server add --server = X.X.X.X

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。 #アクティブに設定NIC for vSwitch0

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

g。 #アクティブに設定NIC for vSwitch1

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

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

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のvmkernelを作成する

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。 #アクティブに設定NIC各iSCSI vmkernelに対して

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

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

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

esxcli network vswitch standard portgroup policy failover set --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 to 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 portgroup

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へのアップグレード

1
Robert Margeson

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

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

1
MichelZ

残念ながら、私はあなたのセットアップに何も問題はないと思います。単一のVMに1 Gb/sを超えて使用することはできません。

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

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

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

Linuxブリッジと一部のハイエンドスイッチは、さまざまなリンク集約方法をサポートし、完全なストライプ化された集約ネットワークインターフェイスを有効にします。ただし、これには、他のスイッチ/システムがこれらの「非標準」の集約方法とどのように相互作用するかについての重要な影響があります。

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

0
shodanshok