web-dev-qa-db-ja.com

2つのインターフェースを結合すると速度が2倍になりますか?

Centos 6.5を実行する2つのLinuxボックスがあり、それぞれに2つのインターフェースが結合され、lacp構成のポートを持つCisco 2960-Sスイッチにリンクされています。

スイッチの構成

port-channel load-balance src-dst-mac
!
interface Port-channel1
 switchport access vlan 100
 switchport mode access
!
interface Port-channel2
 switchport access vlan 100
 switchport mode access
!
interface FastEthernet0
 no ip address
!
interface GigabitEthernet0/1
 switchport access vlan 100
 switchport mode access
 speed 1000
 duplex full
 spanning-tree portfast
 channel-protocol lacp
 channel-group 1 mode active
!
interface GigabitEthernet0/2
 switchport access vlan 100
 switchport mode access
 speed 1000
 duplex full
 spanning-tree portfast
 channel-protocol lacp
 channel-group 1 mode active
!
interface GigabitEthernet0/3
 switchport access vlan 100
 switchport mode access
 speed 1000
 duplex full
 spanning-tree portfast
 channel-protocol lacp
 channel-group 2 mode active
!
interface GigabitEthernet0/4
 switchport access vlan 100
 switchport mode access
 speed 1000
 duplex full
 spanning-tree portfast
 channel-protocol lacp
 channel-group 2 mode active
!

両方のLinux側で、カーネルボンディングモジュールを構成とともにロードしました

alias bond0 bonding
options bond0 miimon=100 mode=4 lacp_rate=1

ここでの問題は、トラフィックグラフを監視しながら、あるサーバーから別のサーバーに多くのファイルを転送して、速度がボンディングインターフェイスの1 Gb /秒の速度を超えていないことを示すことですbond0

構成に問題はありますか?速度を2Gb/sに倍増すべきではありませんか?

6
Ammar Lakis

LACPは、単一のストリーム/スレッドの複数のインターフェース間でパケットを分割しません。たとえば、単一のTCPストリームは常に同じNICでパケットを送受信します。

参考のために次の投稿を参照してください。

リンク集約(LACP/802.3ad)最大スループット

お役に立てれば。

11
Mike Naylor

リンクアグリゲーションが機能する方法は、ハッシュアルゴリズムを使用して、どのパケットがどのポートから送信されるかを決定することです。

同じ送信元MACアドレスから同じ宛先MACアドレスへのパケットは、常に同じポートから送信されます。

一部のリンク集約実装は、ハッシュの一部としてレイヤー3(IPアドレス)およびレイヤー4(TCP/UDPポート番号)の使用をサポートしていますが、これはそれほど一般的ではありません。

これが、あるサーバーから別のサーバーにファイルを転送するときに1ギガビット/秒しか得られない理由です。

OSとスイッチの両方がレイヤー3をサポートする場合は、複数のIPアドレスを使用することで速度を上げることができます。ただし、ハッシュアルゴリズムの動作方法により、両方のストリームが同じリンクに送信される可能性は50/50です。

6
Allan Jude

ネットワークボンディングについての私の理解は、1つの接続のメンバーインターフェイスのリンク速度を超えることはできないということです。接続は、確立後、ボンド内の1つのインターフェースに固定されます。

ただし、接続は2つのインターフェース間で分割されます。サーバーAからサーバーBへの2つの接続が実行されている場合、接続は異なるインターフェイス間を移動するため、帯域幅の範囲でボトルネックになることはありません。複数の接続を使用する合計帯域幅は2Gb/sである必要がありますが、各接続は最大1Gb/sに制限されます。

3
Gadgeteering

Linuxで使用されているハッシュアルゴリズムを検討する価値もあります。ボンドドライバーの一部のバージョンは、非常に単純なハッシュアルゴリズムを使用しています。たとえば、Linux 3.6.5のl2ハッシュは、送信元および宛先MACの最後のバイトのxorであり、多くの状況でトラフィックの不均衡を引き起こします。ハッシュアルゴリズムをl2 + l3に変更すると、非常に役立ちます。

1
Mike Pumford