channel bonding
채널 본딩이란 하나의 노드에 여러개의 network card를 하나의 IP로 묶어서 사용하는 방법을 말한다.
여기에는 두가지의 이점이 있다.
1. fault Fault tolerence
여러개 중 하나의 네트워크 카드가 고장이 났을때 나머지 끊어짐이 없이 이용이 가능하다.
2, load balance
여러개의 네트워크 카드를 이용하여 로드 밸런싱을 할 수 있다.
/etc/sysconfig/network-scripts/ifcfg-bond0 을 만들고 아래에 맞게 작성
DEVICE=bond0
USERCTL=no
ONBOOT=yes
IPADDR=*.*.*.*
BROADCAST=*.*.*.*
NETWORK=*.*.*.*
NETMASK=*.*.*.*
/etc/sysconfig/network-scripts/ifcfg-ethX (X는 랜카드 번호를 의미)
DEVICE=ethX
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=testserver
GATEWAY=11.14.92.1
GATEDEV=bond0 <- 기본 GATEWAY DEVICE를 bond0으로 잡아준다.(만약을 위해 해주자!)
모듈올리기
# insmod /lib/modules/'uname -r'/kernel/drivers/net/bonding/bonding.ko miimon=1000 mode=6
혹은
# modprobe bonding miimon=1000 mode=6
insmod와 modprobe의 차이는 insmod 같은 경우에는 직접 모듈을 찾아 올려줘야하는 것이고
modprobe는 그와 달리 알아서(의존성이 걸린 모듈까지 전부) 찾아서 올려주는 명령어다.
확인
# lsmod
Module Size Used by
bonding 65896 0
위와 같이 bonding이라는 모듈이 올라와 있으면 성공!
이후 자동(재부팅 시)으로 모듈을 올릴때
vi /etc/modprobe.conf
alias bond0 bonding
options bonding miimon=1000 mode=6
옵션
miimon
MII 링크 감시가 발생할 때 밀리(milli) 초 단위로 주파수를 기술한다. MII 링크 감시를 사용하지 않으려면 0 값을 준다. 100이 최초 시작할 때 적절한 값이 된다. 추가 정보를 위해서 고 가용성(High Availability) 부분을 참조하라. 기본값은 0 이다.
mode (기본값은 round-robin)
0
Round-robin 정책: 첫 번째 가능한 슬레이브부터 마지막까지 순차적으로 전송한다. 이 모드는 부하분산과 장애 감내를 제공한다.
1
Active-backup 정책: bond에서 하나의 슬레이브만 활성화된다. 다른 슬레이브는 활성화된 슬레이브가 fail된 경우에만 활성화 된다.
2
XOR 정책: [(출발지 MAC 주소와 도착지 MAC 주소의 XOR) modula 슬레이브 개수] 에 기초하여 전송한다. 이것은 각 도착지 MAC 주소에 대해서 동일한 슬레이브를 선택하게 된다. 이 모드는 부하분산과 장애감내를 제공한다.
3
Broadcast 정책: 모든 슬레이브 인터페이스에 모든 것을 전송한다. 이것은 장애감내를 제공한다.
5
transmit load 밸런스로써 보내는 패킷만 밸런스 한다.
4
802.3ad (link aggregation) – switch 에 aggregation 그룹생성이 필요하다.
6
receive와 transmit 패킷을 밸런스 한다. 이때 5,6은 하나의 스위치에 있을때만 동작한다.
본딩이 잘 되고 있는지 확인 하는 방법
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v2.6.3-rh (June 8, 2005) -> Bonding 버전
Bonding Mode: adaptive load balancing -> Bonding 모드
Primary Slave: None
Currently Active Slave: eth0 -> Active상태인 NIC
MII Status: up -> link 상태
MII Polling Interval (ms): 1000 -> fail시 전환
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:50:8b:b3:b0:88
Slave Interface: eth1
MII Status: down
Link Failure Count: 0
Permanent HW addr: 00:50:8b:b3:b3:5e
위 결과를 보면 eth0은 살아있고, eth1은 죽어있는 상태임을 알 수 있다.
# ifconfig
bond0 Link encap:Ethernet HWaddr 00:50:8B:B3:B0:88
inet addr:11.14.92.86 Bcast:11.14.92.55 Mask:255.255.255.0
inet6 addr: fe80::250:8bff:feb3:b088/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:191496 errors:0 dropped:0 overruns:0 frame:0
TX packets:118615 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:147344011 (140.5 MiB) TX bytes:8709361 (8.3 MiB)
eth0 Link encap:Ethernet HWaddr 00:50:8B:B3:B0:88
inet6 addr: fe80::250:8bff:feb3:b088/64 Scope:Link
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:191497 errors:0 dropped:0 overruns:0 frame:0
TX packets:118617 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:147344071 (140.5 MiB) TX bytes:8709541 (8.3 MiB)
eth1 Link encap:Ethernet HWaddr 00:50:8B:B3:B3:5E [출처] linux bonding|작성자 우주곰
UP BROADCAST SLAVE MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
'OS > LINUX' 카테고리의 다른 글
RPM src install (0) | 2008.06.24 |
---|---|
rpm 아키택쳐 버젼까지 확인방법 (0) | 2008.05.31 |
RPM Kernel 설치와 패치 방법 (0) | 2008.03.12 |
rpm으로 커널 업그레이드 하기 (0) | 2008.03.12 |
[linux] CentOS4 XManager 연결 가능하게 하기 (0) | 2008.03.10 |