블로그 이미지
redkite

카테고리

분류 전체보기 (291)
00.SI프로젝트 산출물 (0)
00.센터 운영 문서 (0)
01.DBMS ============.. (0)
01.오라클 (117)
01.MS-SQL (15)
01.MySQL (30)
01.PostgreSql (0)
01.DB튜닝 (28)
====================.. (0)
02.SERVER ==========.. (0)
02.서버-공통 (11)
02.서버-Linux (58)
02.서버-Unix (12)
02.서버-Windows (2)
====================.. (0)
03.APPLICATION =====.. (11)
====================.. (0)
04.ETC =============.. (0)
04.보안 (5)
====================.. (0)
05.개인자료 (1)
06.캠핑관련 (0)
07.OA관련 (1)
Total
Today
Yesterday

달력

« » 2025.2
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

공지사항

최근에 올라온 글

0034. [리눅스] 본딩

리눅스 bonding 은 윈도우의 티밍, AIX의 Etherchannel 과 같습니다.

아래의 설명은 제가 직접 필드에서 해봤으며, 검증된 자료입니다.

참고로 Active - Standby 방식입니다.

그외 다른 방식을 mode 값만 바꾸어 주면 됩니다.

0. 설정 방법
root로 로그인해서 아래 내용을 그대로 실행하시면 됩니다.
"#" 라인에 있는것이 실행명령이이며
그 아래 내용대로 내용전부를 고치거나 추가 하시면 됩니다.

1. bonding Device 생성(전체 내용을 아래와 같이 수정해 주십시요 또는 없다면 아래내용을 IP등에
내용을 알맞은 내용으로 수정 후 적어주시면 됩니다.)

# vi /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0
ONBOOT=yes
BOOTPROTO=none
IPADDR=x.x.x.x
NETMASK=x.x.x.x
GATEWAY=x.x.x.x
USERCTL=no

2. eth0를 bond0에 연결(전체 내용을 아래와 같이 수정해 주십시요.)
# vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no

3. eth1를 bond0에 연결(전체 내용을 아래와 같이 수정해 주십시요.)
# vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no

4. modprobe.conf에 bond0등록(아래 내용을 추가해 주십시요.)
# vi /etc/modprobe.conf

alias bond0 bonding
options bonding miimon=100 mode=1 primary=eth0 //현재 failover로 설정한상태(제가 테스트한결과 failover로 설정한부분에 primary를 설정하지 않으면 failback이 이루어지jjjjj지 않습니다. 참고하세요)


[기본 bonding설정 - 본딩디바이스 1개일때]

본딩 모드에 대한 부분은 맨페이지 확인하여 적용하시면 됩니다.

1. /etc/modprobe.conf 설정

alias bond0 bonding

2. /etc/sysconfig/network-scripts/ifcfg-bondX 설정 (bonding Master Device Set up)

DEVICE=bondX
IPADDR= 해당 IP
NETMASK= 해당 Netmask
GATEWAY= 해당 Gateway
ONBOOT=yes
BOOTPROTO=none
USERCTL=no


3. /etc/sysconfig/network-scripts/ifcfg-ethX 설정 (bonding Slave Device Set up)

DEVICE=ethX
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no


위와 같이 설정 후 현재 상태의 네트워크 환경 확인,

4. lsmod를 이용하여 bonding모듈설정 확인

5. /etc/init.d/network stop

6. modprobe -r bonding

7. /etc/init.d/network start

8. cat /proc/net/bonding/bondX 명령을 이용하여 현재 설정된 본딩 적용내용 확인 (설정 내용을 정확히 확인 바랍니다.)


[bonding설정 - 본딩디바이스 2개 이상일때]


1. /etc/modprobe.conf 설정

alias bond0 bonding
alias bond1 bonding
options bonding max_bonds=2

2. /etc/sysconfig/network-scritps/ifcfg-bond0

DEVICE=bond0
BOOTPROTO=none
IPADDR= 해당 IP
NETMASK= 해당 Netmask
ONBOOT=yes
TYPE=Ethernet
BONDING_OPTS="mode=1 miimon=100 use_carrier=0 primary=ethX"

3. /etc/sysconfig/network-scritps/ifcfg-bond1

DEVICE=bond1
BOOTPROTO=none
IPADDR= 해당 IP
NETMASK= 해당 Netmask
ONBOOT=yes
TYPE=Ethernet
BONDING_OPTS="mode=1 miimon=100 use_carrier=0 primary=ethX"


4. Bonding device route설정

보통 route add로 routing table를 올리게되면 부팅 후 network restart시
routing table가 지워짐니다. 이 부분을 아래와 같이 변경하여 적용 하시면
한결 편하실 것 입니다.

예>bond1에 route table추가
/etc/sysconfig/network-scripts/route-bond1
ADDRESS0=10.51.11.0
NETMASK0=255.255.255.0
GATEWAY0=192.168.153.20
ADDRESS1=192.168.200.0
NETMASK1=255.255.255.0
GATEWAY1=192.168.153.12


또는 route명령을 이용한 route설정

route add -net 172.20.160.0 gw 172.20.161.1 netmask 255.255.255.0 dev bond0
route add -net 172.20.164.0 gw 172.20.161.1 netmask 255.255.255.0 dev bond1

위와 같은 방법을 이용하여 route 설정을 합니다.

5. lsmod를 이용하여 bonding모듈설정 확인

6. /etc/init.d/network stop

7. Modprobe -r bonding

8. /etc/init.d/network start

9. cat /proc/net/bonding/bondX 명령을 이용하여 현재 설정된 본딩 적용내용 확인 (설정 내용을 정확히 확인 바랍니다.)


  1. bond0 사용(실행만 시켜주시면 됩니다.)
    # /etc/rc.d/init.d/network restart

    # /etc/rc.d/init.d/network restart

    6. ifconfig를 이용한 확인(실행만 시켜주시면 됩니다.)

    # ifconfig

###################

일반적으로 설정하는 본딩 모듈 로드는 아래의 방법을 이용한다.
# cat /etc/modprobe.conf
alias bond0 bonding
options bond0 miimon=100 mode=1

그리고 multi bonding의 경우에도 위와 동일한 방법으로 모듈을 로드할 수 있다.
# cat /etc/modprobe.conf
alias bond0 bonding
alias bond1 bonding
options bond0 miimon=100 mode=1
options bond1 miimon=100 mode=1
options bonding max_bonds=2

하지만 위의 방법을 통해서 본딩 모듈을 로드하는 경우에는 본딩의 한개의 본딩 모듈만 로드할 수 있으며 한개의 본딩 모듈은 항상 1개의 정책만을 사용하게된다.
따라서 다수의 본딩 모듈 정책을 사용할 경우 아래와 같은 방법으로 개별의 본딩 모듈을 로드해 주어야 한다.
# cat /etc/modprobe.conf
install bond0 /sbin/modprobe bonding -o bonding0 mode=balance-rr miimon=100
install bond1 /sbin/modprobe bonding -o bonding1 mode=active-backup miimon=100

각 개별에 대하여 모듈을 로드하여 bonding0과 bonding1의 서로 다른 정책을 가진 본딩 모듈을 로드하여 사용할 수 있다.
# /sbin/modprobe bond0
# /sbin/modprobe bond1

다수의 본딩 모듈을 사용하는 경우 유용하다.

위의 방법은 RHEL4 버전까지만 적용 가능하다 즉 RHEL5에서는 위의 방법이 불가능하다.
RHEL5부터는 "ifcfg-디바이스명" 파일에 아래의 파라미터로 설정하게 된다.
BONDING_OPTS="bra~~~"

또는 다른 방법으로 bonding에 대하여 /sys의 정보를 직접 수정하는 방식을 사용할 수도 있다.
아래의 방법으로 등록이 가능하다.

# cat /etc/modprobe.conf
options bonding max_bonds=2

# modprobe bonding
# echo balance-rr > /sys/class/net/bond0/bonding/mode
# echo 100 >/sys/class/net/bond0/bonding/miimon
# echo active-backup > /sys/class/net/bond1/bonding/mode
# echo 100 >/sys/class/net/bond1/bonding/miimon

위의 방법으로 본딩을 추가할 수도 있다. 별도의 "ifcfg-디바이스명"로 권리하지 않을 때 설정하는 내용으로 사용할 수 있다

'02.서버-Linux' 카테고리의 다른 글

[리눅스]Core 분석  (0) 2012.12.19
[리눅스]요약 정리  (0) 2012.12.19
[리눅스]메일서버 장애 대처  (0) 2012.12.19
[리눅스]디스크 에러 발생  (0) 2012.12.19
[리눅스]EXT3 파일시스템 최적화  (0) 2012.12.19
Posted by redkite
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함