RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
'linux bonding'에 해당되는 글 1
2009.07.24  linux bonding  

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 
          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)

우주곰:지구곰이 아닙니다.
지구곰이 아닙니다.
Categories (190)
Information (5)
About uzoogom (5)
My Advanced Linux (73)
Learning Linux (96)
OperatingSystem (5)
Databases (4)
Tips! (1)
OpenSource (1)
«   2018/04   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
  1. 2012/12 (2)
  2. 2012/04 (3)
  3. 2012/03 (6)
  4. 2012/02 (6)
  5. 2012/01 (2)