Centos에서 본딩구성하기
시작하는말
안녕하세요, 고니입니다.
기존에 작성했던 컨텐츠들 업데이트를 하면서 문서의 리팩토링(Refactoring)을 진행해보려고 합니다.
Bonding 소개
여려개의 NIC를 논리적인 NIC로 묶어서 대역폭을 확장하거나 Active/Standby 형태로 가용성을 보장하기 위해 사용하는 기술이고
가상화환경에 올라간 VM이나 Public Cloud환경에서는 대부분 사용할 필요는 없으나, Bare-metal환경에서는 아직 유용하게 활용되고 있는 방법입니다.
-
Bonding 구성
모드 방 식 0 - Balance-Round robin
- 설정된 모든 NIC가 활성화가 되어 NIC별로 순차적으로 데이터를 전송하는 방식
- 장점 : 모든 NIC의 대역폭을 합산하기 때문에 높은 대역폭을 유지,
- 단점 : NIC의 link상태를 고려하는 방식은 없기 때문에 특정 NIC의 링크가 끊어진 경우 패킷손실 가능성이 존재합니다
1 - Active-Standby
- 하나의 NIC가 활성화, 나머지는 Standby로 구성되어 데이터를 전송하는 방식
- 장점 : 높은 고가용성을 보장
- 단점 : 하나의 NIC만 활성화가 되기 때문에 네트워크 대역폭이 증가하진 않습니다.
2 - balance-xor
- 기본적인 데이터 전송은 Bonding mode 0과 비슷하지만 xor연산을 이용해 특정 해시 알고리즘을 사용하여 링크에 분산시키는 방식
- bonding mode 0과 동일한 장/단점을 지니고 있습니다.
3 - broadcast
- 모든 트래픽을 모든 NIC로 전송하는 방식입니다.
- 장점 : 특정 NIC가 Down되어도 활성화된 NIC에서 데이터 전송을 할 수 있기 때문에 높은 고가용성 보장
- 단점 : 동일한 데이터의 중복전송이 이루어지기 때문에 높은 네트워크 비용이 발생할 수 있습니다.
4 - 802.3ad, LACP(Link Aggregation Control Protocol)를 사용하여 NIC를 묶고, 트래픽을 분산합니다.
- 장점 : 높은 고가용성을 제공하여, 링크상태를 감지하여 조절합니다.
- 단점 : LACP를 지원하는 Switch장비가 필요합니다. (Switch장비에서 논리적으로 Group으로 구성이 필요합니다)
- Balance-Round robin
Bonding 구성하기
|
|
- 커널에 boding module 인식 확인
# 본딩정보 커널 인식 $> modprobe bonding # 본딩정보 확인 $ lsmod | grep bond bonding 152979 0
- eth0에 본딩 선언
$> vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ONBOOT=yes MASTER=bond0 SLAVE=yes USERCTL=no BOOTPROTO=none
- eth1에 본딩 선언
$> vi /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 ONBOOT=yes MASTER=bond0 SLAVE=yes USERCTL=no BOOTPROTO=none
- 본딩 NIC 설정
$> vi /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 BOOTPROTO=static ONBOOT=yes IPV6INIT=no IPADDR=192.168.10.221 NETMASK=255.255.255.0 BONDING_OPTS="mode=1 miimon=100" #mode값을 원하는 값으로 변경하면 됨.
- 네트워크 서비스 재시작
$> systemctl restart network (Centos7 이상 버전인 경우 사용) $> /etc/init.d/network restart (Centos 6이하 버전인 경우에만 사용)
- 본딩구성정보 확인
$> cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.1.2 (January 20, 2007) Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: eth0 MII Status: up MII Polling Interval (ms): 80 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth0 MII Status: up Link Failure Count: 0 Permanent HW addr: 00:XX:XX:XX:XX:c2 Slave Interface: eth1 MII Status: up Link Failure Count: 0 Permanent HW addr: 00:XX:XX:XX:XX:c4