Linux에서 본딩 된 인터페이스와 관련하여 혼란스러운 동작을보고 있으며 누군가가 나를 위해 그것을 해결할 수 있기를 바랍니다.
두 대의 서버가 있습니다. 서버 1 (S1)에는 4x 1Gbit 이더넷 연결이 있습니다. 서버 2 (S2)에는 2x 1Gbit 이더넷 연결이 있습니다. 두 서버 모두 커널 3.11.0-15 (lts-saucy linux-generic 패키지에서)로 우분투 12.04를 실행하고 있습니다.
두 서버 모두 각각의 네트워크 인터페이스가 다음 구성 (in /etc/network/interfaces
) 으로 단일 bond0 인터페이스에 번들로 제공됩니다 .
bond-mode 802.3ad
bond-miimon 100
bond-lacp-rate fast
bond-slaves eth0 eth1 [eth2 eth3]
서버 사이에는 문제의 포트에서 LACP에 대해 올바르게 구성된 두 개의 HP 스위치가 있습니다.
이제 링크가 작동하고 있습니다. 네트워크 트래픽이 두 시스템간에 행복하게 흐릅니다. 그리고 모든 해당 인터페이스가 사용되므로 집계가 완전히 실패하는 것과 다릅니다. 그러나이 두 서버 사이에 가능한 한 많은 대역폭이 필요하며 ~ 2Gbit / s를 얻지 못합니다.
필자의 테스트에서 각 서버는 각 TCP 연결 (예 : iperf, scp, nfs 등)을 단일 슬레이브 인터페이스에 할당하는 것으로 보입니다. 본질적으로 모든 것이 최대 1 기가비트로 제한되어있는 것 같습니다.
을 설정 bond-xmit-hash-policy layer3+4
하면 iperf -c S1 -P2
두 개의 슬레이브 인터페이스를 보낼 수 있지만 서버 측에서는 여전히 하나의 슬레이브 인터페이스에서만 수신이 발생하므로 총 처리량은 1Gbit / s로 제한됩니다. 즉, 클라이언트는 ~ 40-50MB / s를 표시합니다 두 개의 슬레이브 인터페이스에서 서버는 하나의 슬레이브 인터페이스에서 ~ 100MB / s를 표시합니다. bond-xmit-hash-policy
전송을 설정하지 않으면 하나의 슬레이브 인터페이스로 제한됩니다.
LACP가 이러한 종류의 연결 번들링을 허용해야한다는 인상을 받았습니다. 예를 들어 단일 scp 전송으로 두 호스트간에 사용 가능한 모든 인터페이스를 사용할 수 있습니다.
LACP에 대한 나의 이해가 잘못 되었습니까? 아니면 어딘가에서 일부 구성 옵션을 놓쳤습니까? 조사에 대한 제안이나 단서는 대단히 감사하겠습니다!