Linux에서 채널 본딩 모드의 차이점은 무엇입니까?


8

Linux에서는 여러 네트워크 인터페이스를 "본드"네트워크 인터페이스로 결합하여 장애 조치를 제공 할 수 있습니다.

그러나 몇 가지 모드가 있으며 그 중 일부는 스위치 지원이 필요하지 않습니다. 모든 모드를 사용할 수 있다는 점에서 스위치에 제한이 없습니다.

그러나 다른 모드에 대해 읽을 때 각 모드의 장단점을 즉시 명확하게 알 수는 없습니다.

  1. 일부 모드는 더 빠른 장애 조치를 제공합니까?
  2. 각 모드에 대한 CPU로드 영향은 어떻습니까?
  3. 중복성을 제공하지 않고 대역폭을 결합 할 수있는 모드는 무엇입니까?
  4. 그것에 제한이 있습니까?
  5. balance-rr에 스위치 지원이 필요합니까?
  6. 신뢰할 수 있음? 장기적인 경험은 무엇입니까?

당신은 읽기 커널 결합 하우투를 당신이하지 않은? 질문에 대답해야합니다.
the-wabbit

네, 그들이 어느 정도 하는지를 알려줍니다. 그러나 프로덕션 환경에서 이들이 얼마나 잘 수행되는지는 알려주지 않습니다. 어떤 사람들은 "스위치 지원이 필요하지 않다"고 말합니다. 다른 사람들은 의견이 없으며 추측하게합니다.
Matt

왜 downvote인지 확실하지 않습니다. 이것은 완벽하게 유효한 질문이며 주제에 맞지 않습니까?
Matt

다운 투표 및 / 또는 마지막 투표를 한 사람은 적어도 질문을 개선 할 기회를 얻을 수있는 이유를 제공하십시오.
Matt

귀하의 질문에 따라 요청 전에 문서를 많이 연구하거나 읽지 않은 것처럼 보이기 때문에 다운 투표를 의심합니다. 다운 투표 툴팁을 참조하십시오.
Zoredache

답변:


9
  1. 장애 조치의 가장 큰 요인은 링크 장애가 감지되는 속도입니다. 호스트에서 케이블을 분리하면 모두 잘 작동합니다. 그렇지 않으면 작동하지 않는 스위치에 라이브 링크를 남겨두면 대부분의 모드 (비콘 / keepalives를 지원하는 모드 제외)는 트래픽의 일부를 전송하지 않습니다.

  2. 일반적으로 네트워크 트래픽은 인터럽트로 인해 발생합니다. 다양한 해싱 알고리즘은 의미있는 차이를 만들지 않습니다.

  3. 활성 / 대기 모드 또는 브로드 캐스트 모드가 아닌 모드는 트래픽을 다양한 정도로 공유합니다. 일부 모드는 패킷 단위로 균형을 유지하고 다른 모드는 흐름 단위로 작동합니다. 전자는 부하를 더 고르게 분산시키고 후자는 실제 네트워크에서 훨씬 더 유용합니다 (읽기 : 기능적 / 안정적).

  4. 예-각 모드에는 제한이 있지만, 우리는 응용 프로그램에 대해 이야기하기 위해 더 많은 것을 알아야합니다.

  5. LACP / 802.3ad (모드 4) 만 스위치를 명시 적으로 지원해야합니다. 즉, 특정 패턴으로 스위치로 전송한다고해서 스위치가 동일한 방식으로 스위치를 전송한다는 의미는 아닙니다.

  6. 프로덕션에서 신뢰하는 유일한 모드는 802.3ad이며, 적절하게 구성된 스위치를 사용하면 올바른 링크 만 채널에 연결될뿐 아니라 트래픽 공유의 대칭성 및 예측 가능한 응답을 제공 할 수 있습니다. 링크가 다운되었습니다. 이 모드는 또한 일반적이지만 심각한 문제 (예 : 유니 캐스트 플러딩)를 피합니다. 액티브 / 스탠바이도 매우 일반적입니다. 특정 상황에서는 다른 모드가 필요할 수 있지만 IMO는 더 고통스러운 경향이 있습니다.

다른 흐름 / MAC / IP 기반 밸런싱 모드 또는 활성 / 대기 상태도 양호 할 수 있으며 관리되지 않는 스위치를 처리 할 때 필요할 수 있습니다.


10

이러한 점의 대부분은 /usr/src/linux/Documentation/networking/bonding.txt자주 사용하는 배포판의 Linux 소스 패키지 에있는 설명서 파일 에 자세히 설명되어 있습니다. 장애 조치 속도는 대부분의 모드에서 "miimon"매개 변수에 의해 제어되지만 너무 낮게 설정해서는 안됩니다. 어쨌든 정상적인 값은 1 초 미만입니다.

내가 완성한 최고의 부품은 다음과 같습니다.

   balance-rr or 0
       Round-robin policy: Transmit packets in sequential
       order from the first available slave through the
       last. This mode provides load balancing and fault
       tolerance. 


   active-backup or 1
       Active-backup policy: Only one slave in the bond is
       active.  A different slave becomes active if, and only
       if, the active slave fails. The bond's MAC address is
       externally visible on only one port (network adapter)
       to avoid confusing the switch.

       This mode provides fault tolerance. The "primary"
       option affects the behavior of this mode.

   balance-xor or 2
       XOR policy: Transmit based on the selected transmit
       hash policy.  The default policy is a simple [(source
       MAC address XOR'd with destination MAC address) modulo
       slave count].  Alternate transmit policies may be
       selected via the xmit_hash_policy option.

       This mode provides load balancing and fault tolerance.

   broadcast or 3
       Broadcast policy: transmits everything on all slave
       interfaces.  This mode provides fault tolerance.

   802.3ad or 4
       IEEE 802.3ad Dynamic link aggregation.  Creates
       aggregation groups that share the same speed and
       duplex settings.  Utilizes all slaves in the active
       aggregator according to the 802.3ad specification.

       Slave selection for outgoing traffic is done according
       to the transmit hash policy, which may be changed from
       the default simple XOR policy via the xmit_hash_policy
       option. Note that not all transmit policies may be 802.3ad
       compliant, particularly inregards to the packet mis-ordering
       requirements of section 43.2.4 of the 802.3ad standard.
       Differing peer implementations will have varying tolerances for
       noncompliance.

       Note: Most switches will require some type of configuration
       to enable 802.3ad mode.

   balance-tlb or 5
       Adaptive transmit load balancing: channel bonding that
       does not require any special switch support.  The
       outgoing traffic is distributed according to the
       current load (computed relative to the speed) on each
       slave.  Incoming traffic is received by the current
       slave.  If the receiving slave fails, another slave
       takes over the MAC address of the failed receiving
       slave.

   balance-alb or 6
       Adaptive load balancing: includes balance-tlb plus
       receive load balancing (rlb) for IPV4 traffic, and
       does not require any special switch support.

       When a link is reconnected or a new slave joins the
       bond the receive traffic is redistributed among all
       active slaves in the bond by initiating ARP Replies
       with the selected MAC address to each of the
       clients. The updelay parameter must
       be set to a value equal or greater than the switch's
       forwarding delay so that the ARP Replies sent to the
       peers will not be blocked by the switch.

balance-rr, active-backup, balance-tlb 및 balance-alb는 스위치 지원이 필요하지 않습니다.

balance-rr은 조각화 가격으로 성능을 향상시키고 일부 프로토콜 (CIFS)과 2 개 이상의 인터페이스에서 성능이 저하됩니다.

balance-alb 및 balance-tlb가 모든 스위치에서 제대로 작동하지 않을 수 있습니다. arp 문제가 종종있는 경우가 있습니다 (예를 들어, 일부 컴퓨터는 서로 연결되지 않을 수 있습니다). 안정적인 네트워킹을 위해 다양한 설정 (miimon, updelay)을 조정해야 할 수도 있습니다.

balance-xor는 스위치 구성을 요구하거나 요구하지 않을 수 있습니다. 당신은 인터페이스 그룹 (설정할 필요가 없습니다 HP와 시스코 스위치에 LACP)을하지만, 분명히 그것은 D - 링크, 넷기어와 후지쯔 전환에 필요는 없습니다.

802.3ad는 스위치 측에 LACP 그룹이 필요합니다. 성능 향상을 위해 전반적으로 가장 많이 지원되는 옵션입니다.

참고 : 어떤 작업을 하든지 하나의 네트워크 연결은 항상 하나의 물리적 링크를 통과합니다. 따라서 GigE 인터페이스를 집계 할 때 각 머신에 4 개의 집계 된 GigE 인터페이스 (사용중인 본딩 모드가 무엇이든)가 있더라도 머신 A에서 머신 B 로의 파일 전송은 1 기가비트 / s를 초과 할 수 없습니다.


802.3ad는 LACP 사용을 의무화하지 않습니다. LACP는 동적 링크 집계 구성을 위한 제어 프로토콜 이므로 LACP없이 정적 LA 설정을 완벽하게 수행 할 수 있습니다 .
the-wabbit

1
그러나 대부분의 스위치는 정적 링크 집계 구성 및 호출 집계 "LACP 모드"를 허용하지 않습니다.
wazoox

802.3ad는 정적 LA와 LACP를 모두 정의합니다. 스위치가 802.3ad를 준수한다고 주장하면 둘 다 구현해야합니다. LACP를 구현하고 정적 LA를 구현 한 모든 스위치 모델을 사용했습니다.
the-wabbit

1

커널 문서는 이러한 몇 가지 질문에 대답합니다.

이더넷 본딩


1
링크를 제공하는 것보다이 답변을 개선하는 데 시간을 보내십시오. 이 링크는 유용하지만 여기에 대한 답변은 문서에 대한 링크 일뿐입니다.
Zoredache

그 링크 주셔서 감사합니다. 섹션 12.1.1 단일 스위치 토폴로지에 대한 MT 본딩 모드 선택은 내가 추구 한 것입니다.
Matt

그래, 난 단지 ;-) 어떤 코멘트없이 링크를 붙여 이유
FINESEC
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.