이번에는 랜카드 2개를 묶어 하나의 ip를 부여한 다음, 대역폭을 2배로 사용하는 방법에 대해서 강좌를 쓰겠습니다. 요즘 UTP케이블을 사용한 Giga(1000MB/Sec) 랜카드가 많이 나왔습니다. 테스트 결과 150M/Sec 의 성능정도밖에 내지 못했습니다. 그러나 본 강좌에서 사용되는 bonding는 대역폭의 2배 200M/Sec 가 나왔습니다. 물론 Giga bit 에 맞는 케이블을 사용하지 않았는지는 모르지만, 사용된 케이블은 카테고리 6 이였습니다. 현재는 스위치및 허브가 100M 이고, giga bit은 고가입니다. 많은 분들께 도움이 되었으면 좋겠다는 마음으로 이렇게 강좌를 써 내려갑니다.
1. Bonding 이란? 여러장의 이더넷 카드를 묶어 하나의 ip를 부여하여 그만큼 대역폭을 확보하는 방법 입니다. 물론 케이블 불량을 대비한 고장대비 방법이라고도 볼 수 있습니다.
2. 준비운동. 랜카드 2장 (난 100M 짜리 2장을 준비했습니다.. ) 커널에서 : Network device support 에서 Bonding driver support 가 채크되어야 합니다..(RedHat은 기본)
3. /etc/sysconfig/network 파일 echo 'NETWORKING=yes HOSTNAME=fileserver GATEWAY=192.168.0.1 GATEDEV=bond0 '>/etc/sysconfig/network
위와같이 그대로 입력하면 설정이 바뀝니다. 물론. 중간에"HOSTNAME=호스트이름" 으로 변경하시기 바랍니다. 그리고 "GATEWAY=게이트웨이아이피" 로설정하시기 바랍니다.
4.bond0 설정 echo 'DEVICE=bond0 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.0.100 NETMASK=255.255.255.0 NETWORK=192.168.0.0 ' > /etc/sysconfig/network-scripts/bond0 이 부분은 서버의 ip를 셋팅합니다. "IPADDR=서버아이피"를 설정하시고, "NETWORK=네트웍아이피"를 설정하시기 바랍니다.
5. ifcfg-ethXX 설정 echo 'DEVICE=eth0 ONBOOT=yes USERCTL=no MASTER=bond0 SLAVE=yes BOOTPROTO=none '> /etc/sysconfig/network-scripts/ifcfg-eth0 이 부분은 묶일 물리적 장치를 정합니다. eth0 는 첫번째 랜카드입니다. 위와같이 설정합니다.
echo 'DEVICE=eth1 ONBOOT=yes USERCTL=no MASTER=bond0 SLAVE=yes BOOTPROTO=none '> /etc/sysconfig/network-scripts/ifcfg-eth1 eth1번 은 2번째 랜카드이며 위와같이 설정합니다.
강좌에서 사용된 이더넷카드는 2개 입니다. 하지만, 그 이상을 사용하시려면, 계속 추가 한 다음, eth2, eth3 계속 설정해 주면 끝납니다. 위와같이.
6. 모듈로 binding driver 을 올렸다면, eth0와 eth1 전에 모듈을 올려야 합니다.. alias bond0 bonding alias eth0 8139too alias eth1 8139too
커널 2.4.XX 에서 /etc/modules.conf - 그런다음 insmod 로 모듈을 올려 준다. insmod bonding
커널 2.6.XX /etc/modprobe.conf modprobe bonding ## 위와같이 모듈을 인식시켜 줍니다. ifconfig eth0 up 0.0.0.0 ifconfig eth1 up 0.0.0.0 ## 위 방법은 안될때 하는 방법입니다. (생략했을때 문제 생기면 하시기 바랍니다.)
ifenslave bond0 eth0 ifenslave bond0 eth1 위왁같은 명령으로 bond0에 eth0와 eth1을 슬레이브로 등록시킵니다.
7. network 스크립트 재 시작.(꼭 로컬에서 하시기 바랍니다.~~)
8. 삽질의 결론 1. 단점 : - 같은 스위치에 꽂혀야 한다. - 서버가 못따라 주면 생각만큼 성능이 나오지 않는다. 2. 장점 : - 이론상 속도 2배 (또는 그 이상~~) - 둘 중에 선 하나 뽑아두 통신 ~~ 잘한다. (리던던시 기능)
이렇게 강좌를 마칩니다. 물론 하나의 간단한 팁이며.. 알고계시면 많은 되리라 생각하고 강좌를 마무리합니다. 혹시 본 강좌에 개선점이 있으면 아래의 메일 주소로 메일 한통 부탁드립니다.
2005.10.28 : 전현규님의 개선사항으로 아래 내용 추가합니다. 혹시 부팅할 때 잘 올라오지 않는다면, 아래와 같이 수정해 보시기 바랍니다.
RedHat의 경우, /etc/init.d/network 파일에서, # Bring up xDSL and CIPE interfaces 이 라인 바로 이전에, if [ -x /etc/sysconfig/network-scripts/ifup ]; then echo "Bringing up eth0 and eth1..." /etc/sysconfig/network-scripts/ifup eth0 /etc/sysconfig/network-scripts/ifup eth1 fi
|