KERNEL-DOC
[ Bonding에 대한 FAQ ]
1. SMP에서도 정상적으로 동작하는가?
예. 예전 2.0.xx 채널 bonding 패치는 SMP에서 정상 작동하지 않는다. 새로운 드라이버는 처음부터 SMP를 고려하여 설계되었다.
2. bonding과 같이 잘 동작하는 네트웍 카드 어떤 것이 있는가?
어떤 종류의 이더넷(Ethernet) 카드(예를 들어 인텔 EtherExpress PRO/100과 3com 3c905b와 같이 여러 카드를 혼용할 수도 있다)와도 동작할 수 있다.
또한 기가빗 이더넷(gigabit ethernet) 카드와도 bond할 수 있다.
대부분의 모드는 장치가 같은 속도가 되지 않아도 된다.
3. 얼마나 많은 bonding 장치를 가질 수 있는가?
제한이 없다.
4. 얼마나 많은 슬레이브가 bonding 장치를 가질 수 있나?
당신의 시스템에 설치할 수 NIC 숫자 또는 리눅스가 지원하는 네트워크 인터페이스의 개수로 제한된다.
리눅스는 시스템에서 장착할 수 있는 개수만큼의 네트워크 카드 개수를 지원한다.
5. 슬레이브의 링크가 다운이 되면 어떤 일이 일어나는가?
만일 당신의 이더넷 카드가 MII 또는 ETHTOOL 링크 상태 감시를 지원한다면, 그리고 MII 감시가 드라이버에서 가능하였다면
(모듈 파라미터에서 기록된 것을 참고하라), adverse 결론은 없을 것이다. 이러한 bonding 드라이버는 어떻게 MII 정보를 얻고,
링크 상태에 따라서 어떻게 슬레이브를 사용 가능하게 하거나 사용 가능하지 않게 하는지를 알고 있다.
MII 상태를 지원하지 않는 이더넷 카드에 대해서, bonding이 정확하게 동작하게 하기 위해서 arp_interval과 arp_ip_target 파라미터가 기술되어야 한다.
만일 패킷이 정해진 arp_interval 동안 보내지거나 받아지지 않으면, ARP 요청이 주고 받는 패킷을 생성하기 위해 목표로 보내어 진다.
만일 이러한 시간 간격 후에, 성공적인 보내기/받기가 이루어지지 않는다면, 순서상 다음 슬레이브가 활성 슬레이브가 될 것이다.
만일 mii_monitor와 arp_interval 중 하나가 설정되지 않았다면, bonding 드라이버는 이러한 상황을 잘 처리하지 못할 것이다.
드라이버는 패킷을 계속 보낼 것이다. 하지만 어떤 패킷은 잃어버릴 것이다. 재전송은 심각한 성능의 저하를 가져온다(두 슬레이브중 하나가
fail되었을 때, 50% 패킷을 잃어버릴 것이다. 이것은 TCT와 UDP 모두 큰 문제이다).
6. bonding이 고 가용성을 위해서 사용될 수 있는가?
만일 MII 감시를 사용하고, 모든 카드가 MII 링크 상태 보고를 지원한다면, 가능하다. 더 자세한 정보는 고 가용성 부분을 참고하라.
7. 어떤 스위치/시스템과 함께 잘 작동하는가?
Round-robin과 XOR 모드에서, trunking을 지원하는 시스템과 잘 동작한다.
가장 많이 사용되는 스위치들은 현재 대부분 지원하고, 그 외의 스위치들도 잘 동작한다.
고급 balance mode 는 ((balance-tlb and balance-alb) 특별한 스위치가 필요하지는 않는다.
다만 특정 모드별 지정된 특징을 지원하는 device drivers 가 필요하다.
802.3ad mode 에서는 , 시스템이 IEEE 802.3ad Dynamic Link Aggregation 를 지원해야 한다.
현재 대부분의 스위치들은 802.3ad를 지원한다.
active-backup 모드에서, 어떤 L2 스위치로 잘 작동해야 한다.
8. bonding 장치는 어디서 MAC 주소를 가져오는가?
만일 ifconfig를 사용하여 명백하게 설정하지 않는다면, bonding 디바이스의 MAC 주소는 첫 번째 슬레이브 디바이스로부터 가져온다.
MAC 주소는 bonding 디바이스가 다운되거나 재설정될 때까지 다른 모든 슬레이브에 전달되고, 고정된다(첫 번째 슬레이브가 제거된다고 하더라도)
만일 MAC 주소를 변경하려면 ifconfig를 사용하여 설정할 수 있다.
# ifconfig bond0 hw ether 00:11:22:33:44:55
MAC 주소는 디바이스를 내리고 올리거나, 슬레이브(또는 슬레이브의 순서)를 변경하여 변경될 수 있다.
# ifconfig bond0 down ; modprobe -r bonding
# ifconfig bond0 .... up
# ifenslave bond0 eth...
이 방법은 추가될 다음 슬레이브로부터 주소를 자동으로 가져올 것이다.
슬레이브 MAC 주소를 되돌려놓으려면, bond로부터 슬레이브 디바이스를 제거하고(‘ifenslaver ?d bond0 eth0’),
정지시키고(‘ifconfig eth0 down’), 드라이버를 내리고(예를 들어 ‘rmmod 3c59x’), eeprom으로부터 MAC 주소를 다시 읽어와야 한다.
만일 드라이버가 여러 개의 디바이스에 의해서 공유되고 있다면, 그 모든 디바이스를 다운시켜야 한다.
또다른 해결책은 부팅시에 MAC 주소를 살펴보고(dmesg 또는 tail /var/log/messages), ifconfig를 사용하여 수동으로 설정한다
# ifconfig eth0 down
# ifconfig eth0 hw ether 00:20:40:60:80:A0
9. 어떤 전송정책이 사용될 수 있는가?
- 슬레이브의 순서에 기초한 round-robin, 출력 디바이스는 다음 사용 가능한 슬레이브에 따라서 선택된다. 패킷의 출발지와 목적지와는 상관없다.
- 주어진 시간에 하나 또는 꼭 하나만의 디바이스가 전송하는 것을 보장하는 Active-backup 정책은 두 개의 허브를 사용하여 고 가용성 솔루션을 구축하는데 유용하다.(고 가용성 부분을 참고하라).
- 슬레이브 개수에 기초한(src hw addr XOR dst hw addr) XOR. 이 정책은 각 목적지 hw 주소에 대해서 동일한 슬레이브를 선택한다.
- Broadcast 정책은 모든 슬레이브 인터페이스에서 모든 것을 전송한다.
항상 해당 서버 버젼에 맞는 kernel-doc을 참고하고 해당 요소들을 고려하기 바랍니다.