Bonding 활용 : 복수개의 랜카드를 묶어 대역폭을 확보 하기.
1. Bonding 이란?
여러장의 이더넷 카드를 묶어 하나의 ip를 부여하여 대역폭을 확보 및 네트워크 장애 가능성에 대응하는 방법 입니다. 이론상으로는 Boding으로 묶은 랜카드의 숫자만큼 대역폭을 추가로 확보하는 것이 가능합니다.
Bonding 의 장점 :
- 이론상으로, Bonding 에 사용되는 랜카드의 대역폭의 합에 해당하는 대역폭을 사용할수 있다.
- 복수개의 랜카드중 일부가 단선등으로 Network 연결이 끊어져서 나머지 Network 네트워크 연결은 유지된다,
2. Bonding 작업을 위한 사전 체크 사항
- 복수개의 동일 타입 랜카드 준비
- 커널에서 Bonding driver support 여부가 체크되어야 함.(Network device support -> <*> Bonding driver support, 체크되지 않을 켱우 커널을 다시 컴파일 해야 함.)
- Bonding에 사용될 랜카드는 모두 동일 네트워크 스위치에 연결.(네트워크 스위치는 스위칭허브여야 제대로 기능을 발휘함)
- 레드햇 리눅스라면 iputils-xxx.rpm 패키지를 설치.(ifenslave 사용을 위함. 일반적으로 기본으로 설치되어 있음.)
[iputils-xxx.rpm 패키지 설치 확인 방법]
# rpm -qf /sbin/ifenslave
iputils-20000418-6
# rpm -ql iputils
/bin/ping
/sbin/ifenslave <- ifenslave 설치를 확인 할 것
...
...
...(이하 생략)
3. Bonding 설정 방법(본 예제에서는 랜카드 2개를 사용함.)
Step 1 : /etc/modules.conf (또는 /etc/conf.modules) 파일에 다음의 내용이 들어가도록 수정합니다.
alias bond0 bonding
alias eth0 3c59x ## <-- 1번째 랜카드 이더넷
alias eth1 3c59x ## <-- 2번째 랜카드 이더넷
Step 2 : /etc/sysconfig/network 파일에 다음의 내용이 들어가도록 수정합니다.
NETWORKING=yes
HOSTNAME=[서버의 hostname]
GATEWAY=[서버가 사용할 Gateway]
GATEDEV=bond0
Step 3 : /etc/sysconfig/network-scripts/bond0 파일을 생성하여 다음의 내용이 들어가도록 작성합니다.
DEVICE=bond0
onBOOT=yes
BOOTPROTO=static
BROADCAST=XXX.XXX.XXX.255 <- 브로드 캐스트 IP 설정
NETWORK=XXX.XXX.XXX.0 <- 네트워크 IP 설정
NETMASK=255.255.255.XXX <- netmask 설정
IPADDR=XXX.XXX.XXX.XXX <- 서버 IP 설정
Step 4 : ifcfg-eth0/ifcfg-eth1 파일에 다음의 내용이 들어가도록 수정합니다.
/etc/sysconfig/network-scripts/ifcfg-eth0 (1번째 랜카드)
DEVICE=eth0
onBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
/etc/sysconfig/network-scripts/ifcfg-eth0 (2번째 랜카드)
DEVICE=eth1
onBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
Step 5 : 관련 module 설정/Load
[커널 2.4.XX]
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
Step 6: network 스크립트 재 시작하면 완료