この文書では、オープンvSwitchのVMトラフィック制御が1 Mbpsまたは10 Mbpsの中で達成される使用方法を説明します。
定めます
このガイドでは、次のような構成として、その環境を想定しています。
物理的なネットワーク
-
データネットワーク
データ通信用のイーサネット仮想マシン。このネットワークは、外部のホストからのトラフィックを受信/送信するために使用され、ホストはVMの伝送速度を測定するために使用されます。すべての仮想ブリッジを接続することができますが、ブリッジは、測定ホストとして仮想マシンを使用して、任意の物理インターフェースに接続されていない。実験では、物理的なネットワークはオプションです。
他のネットワークがあるかもしれません(例えば、ネットワーク管理トラフィック用)。しかし、このデータネットワークにのみ関心ガイド。
2つの物理ホスト
最初のホスト名は、host1
オープンのvSwitchとHypervisorがNICを持って実行されます。このユニークなネットワークカードは、eth0
データネットワークに接続します。OVSブリッジそれが属するので、することができないeth0
IPアドレスを割り当てます。
第二のホスト名Measurement Host
ホストを測定スループットVMを測定することができる任意のホストであってもよいです。このガイドでは、我々が使用netperf
率を測定するための無料のツールを、伝送速度はホストに異なるホストによって測定することができます。データネットワークに接続されている唯一の測定ホスト「のeth0」カード。eth0
IPアドレスは、どのアクセスできるhost1
ホスト上でVMを。
2つのVM
2つのVM(vm1
およびvm2
実行されている)host1
ホスト上で。
各VMは、(例えば、物理ホスト上でLinux用の表示装置のポートを有していますtap0
)。
注意:
Xenの/ XenServerの、LinuxデバイスへのVMのディスプレイポートの場合は、の名前に似たvif1.0
他のLinuxシステムでは、これらのポートを示してもよい。vnet0
、vnet1
待ってください。
設定手順
仮想マシンの両方のために、我々は、インタフェーステーブルを変更するInterface table
エントリポリシールールを設定します。設定するには、2つの値があります。
ingress_policing_rate
最大VMは、伝送速度(kbps)を可能にします
ingress_policing_burst
最大データレートのポリシーアルゴリズムパラメータ設定されたポリシーの表示が(KBで)インタフェースによって送信することができる超え。
VM1の次のコマンドを使用して、1 Mbpsでレート制限:
$ ovs-vsctl set interface tap0 ingress_policing_rate=1000
$ ovs-vsctl set interface tap0 ingress_policing_burst=100
同様に、VM2の速度が10Mbpsで、で制限host1
ホスト上で次のコマンドの入力:
$ ovs-vsctl set interface tap1 ingress_policing_rate=10000
$ ovs-vsctl set interface tap1 ingress_policing_burst=1000
VM1は現在のレート制限を表示するには、次のコマンドを実行します。
$ ovs-vsctl list interface tap0
テスト
上記の構成をテストするには、2つのVMホストおよび測定を確認して測定ホストがインストールされ、動作してnetperf
。のNetperfは、クライアント(のnetperf)とサーバ(ネットサーバー)のコンポーネントで構成されています。この例では、ホスト上で実行されている測定ネットサーバーを(通常のnetperf起動デーモンのインストールの形でネットサーバーはデフォルトの操作であることを意味し、)。
この例では、ホストのIP測定が10.0.0.100であることを前提としています。そして、それは2台の仮想マシンからアクセスすることができます。
「VM1」で次のコマンドを実行します。
$ netperf -H 10.0.0.100
これは、ホストへのTCPトラフィックVM1可能速度測定ブロックの送信になります。10秒後、値の出力範囲。我々はMbpsの(10 ^ 6ビット/秒)に「スループット」の値に興味を持っています。この値は、1 VM1に近くなければなりません。VM2に同じコマンドの結果が10に近いはずで実行。
トラブルシューティング
Linuxの使用オープンvSwitchのトラフィック制御例えば制限速度を実現するフローコントロール機能を。あなたは、レートの設定を制限する効果を参照してください、あなたのカーネルがコンパイル時に「侵入のqdisc」オプションを開くことを確認して、ユーザ空間ツールがインストールされていない場合は(、 、/sbin/tc
)。
追加情報
パケットがキューイングされていないオープンvSwitchの使用率制限政策、。これは、任意のパケットが所定の率を超えて下がります。そのようなTCPパケット損失などの重篤な反応を持っている契約のために非常に重要である、それが簡単に寛容であることを行うために、より大きなバーストサイズアルゴリズムを指定します。バーストサイズがMTU値(例えば、10 KB)よりも小さく設定避けます。
TCPトラフィックの戦略の総速度のかなりの割合の値に設定し、バーストサイズ(例えば、> 10%)、より近い完全な流れを容易にします。量は合計量の大部分を破裂するように設定されている場合、クライアントは、政策金利を設定し、実際の平均レートよりも若干高くなります。
UDPトラフィックの場合、バーストサイズがMTU値よりもわずかに大きく設定し、そのMTU値よりも大きいパケットを送信しない、ツールの性能は(そうでない場合、パケットは、パフォーマンスの低下が生じ、断片化されます)。たとえば、次のコマンドを実行し、のnetperf UDPトラフィックの長さが1000のバイトを送信し、強制することができます:
$ netperf -H 10.0.0.100 -t UDP_STREAM -- -m 1000