[리눅스]본딩 작업
리눅스 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 명령을 이용하여 현재 설정된 본딩 적용내용 확인 (설정 내용을 정확히 확인 바랍니다.)
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 |