Linuxでのボンディングされたインターフェースに関していくつかの混乱した動作が見られます。誰かが私のためにそれを片付けてくれることを期待して、状況をそこに捨てたいと思います。
2台のサーバーがあります。サーバー1(S1)には4つの1ギガビットイーサネット接続があります。サーバー2(S2)には、2つの1ギガビットイーサネット接続があります。カーネル3.11.0-15(lts-saucy linux-genericパッケージから)を使用していますが、どちらのサーバーもUbuntu 12.04を実行しています。
両方のサーバーには、それぞれのネットワークインターフェイスがすべて、次の構成(単一の)で単一のbond0インターフェイスにバンドルされています/etc/network/interfaces
。
bond-mode 802.3ad
bond-miimon 100
bond-lacp-rate fast
bond-slaves eth0 eth1 [eth2 eth3]
サーバー間には、問題のポートでLACP用に正しく構成されている(私が思う)いくつかのHPスイッチがあります。
これでリンクが機能します。ネットワークトラフィックは両方のマシンとの間でスムーズに送受信されます。そして、それぞれのインターフェースがすべて使用されているため、集約が完全に失敗しているわけではありません。ただし、これらの2つのサーバー間で可能な限り多くの帯域幅が必要であり、期待する最大2Gbit / sが得られません。
私のテストでは、各サーバーが各TCP接続(iperf、scp、nfsなど)を単一のスレーブインターフェイスに割り当てているように見えます。基本的に、すべてが最大1ギガビットで制限されているようです。
を設定するとbond-xmit-hash-policy layer3+4
、iperf -c S1 -P2
2つのスレーブインターフェースでの送信に使用できますが、サーバー側では、まだ1つのスレーブインターフェースでのみ受信が行われているため、合計スループットは1Gbit / sに制限されます。つまり、クライアントは〜40-50MB / sを示します2つのスレーブインターフェイスでは、サーバーは1つのスレーブインターフェイスで最大100MB / sを示します。bond-xmit-hash-policy
送信を設定しないと、スレーブインターフェースも1つに制限されます。
LACPはこの種の接続バンドリングを許可し、たとえば、単一のscp転送が2つのホスト間で利用可能なすべてのインターフェースを利用できるようにするべきだという印象を受けました。
LACPについての私の理解は間違っていますか?または、どこかにいくつかの設定オプションを見逃しましたか?調査のための提案や手がかりは大歓迎です!