Secret Poten

CentOS 본딩 설정하기(bonding) 본문

리눅스/CentOS

CentOS 본딩 설정하기(bonding)

potentail 2016. 10. 5. 01:21

웰컴백~


이번 포스팅은 네트워크 본딩에 대해서 포스팅 해볼까 합니다.

본딩이란 무엇인가? 부터 시작해서


CentOS6.8 버젼으로 본딩을 직접 해보도록 하겠습니다.



본딩(bonding)이란 무엇인가?

시작하기전 제일먼저 고민해야하는 문제입니다.

본딩이란 무엇이며 어떤용도로 사용하는지 혹은 이것을 통해 얻는 이익은 무엇인지를 알아야합니다.


본딩(bondig)이란

랜카드 여러개를 하나로 묶음으로써 부하분산 혹은 다른 랜카드 고장시 대처할수 있는 용도로

쉽게 말하자면 보험 혹은 합동에 가깝게 생각하시면 될거같습니다.


※보험을 예로들면

예를 하나들어 A랜카드와 B랜카드가 있다고 가정을 합시다.

만약 A랜카드가 고장이 나게되면 서버는 더이상 동작을 하지못하게 됩니다.

하지만 본딩을 설정해뒀다면 B랜카드가 대신 A의 자리를 매꿔 줄수있죠.


※합동을 예로들면

A랜카드와 B랜카드가 있습니다.

A랜카드의 일처리률은 50 B랜카드의 일처리률도 50이라고 가정합니다.

만약에 들어온 일감이 80 이라고 가정합시다.

이때 A랜카드 혼자서 80을 전부 처리를 못합니다. 혹은 느리게 처리가 되겠죠.

하지만 B랜카드와 함께 힘을합쳐 80을 서로 40씩 나누어서 일을 한다고 생각해봅시다.

그렇게되면 일을 좀 더 빨리 끝낼수가 있죠?


이것의 본딩의 개념입니다.


부하분산 혹은 다른랜카드가 고장났을시의 대처입니다.


오늘 해볼 본딩의개념은 보험에 가깝겠군요.

(다른 레벨로도 직접 테스트를 해보시는게 좋습니다.)


VMWare에 랜카드 추가하기

제일먼저 본딩을 설정할려면 2개이상의 랜카드가 필요합니다.

따로 설명할것은 없어보입니다.


이런식으로 랜카드를 추가하실수 있습니다.

랜카드 총3개를 만들어줍시다.



bond설정파일 생성

제일먼저 cd명령어를 통해서 랜카드가 있는곳으로 가봅시다.


cd /etc/sysconfig/network-scripts


여기서 bond설정파일을 만들면 됩니다.


vi ifcfg-bond0

※bond[?] ?안에는 아무 숫자나 상관없습니다.


파일이 정상적으로 만들어졌습니다.

그러면 설정파일에 내용을 입력해봅시다.


※VI사용방법을 모르시는 분들은 아래 포스팅을 확인해주세요

2016/09/03 - [리눅스/CentOS] - 9. CentOS 제8장 + vi사용법 (vi명령어 정리)



DEVICE=bond0

ONBOOT=yes

IPADDR=192.168.100.1

NETMASK=255.255.255.0

GATEWAY=192.168.100.254



모두 작성하였으면 저장하고 나와줍시다.


추가 하였던 랜카드 설정파일 수정

ifcfg-eth1,ifcfg-eth2 를 추가했었죠.

이 두개의 설정파일을 바꿔 줍시다.


vi ifcfg-eth[0~2]

설정파일을 만들어 줍니다.

그리고 아래와 같이 입력해줍시다.

DEVICE=eth[0~2]

ONBOOT=yes

MASTER=bond0

SLAVE=yes



위와같이 작성한후 저장하고 나와줍시다.

eth0~2도 모두 만든뒤 DEVICE만 변경한후 저장하고 나와주시면 됩니다.


cd /etc/modprobe.d

본딩 설정파일을 만들기위해 위 경로로 이동하여 줍시다.


vi bonding.conf

설정파일을 만든후 내용을 입력해주도록 합시다.

alias bond0 bonding

options bond0 mode=1 miimon=500


위 설정을 잠시 설명하지면 mode는 본딩의 모드를 말합니다.

이건 위에서 설명드렸듯이 보험을 선택하느냐 합동을 선택하느냐의 차이가 되겠지요


 0

 balance-rr

송신할 패킷마다 사용하는 랜카드를 바꾼다. 

 1

active-backup 

bond랜카드 내에 한개의 랜카드만 사용합니다. 만약 사용중인 랜카드에 이상이 생길경우 bond내의 다른 랜카드로 교체됩니다.

 2

balance-xor 

목적지의 MAC을 XOR연산을 통해 사용할 랜카드를 결정합니다. 

 3

broadcast 

모든 bond랜카드로 데이터를 전송합니다. (3 모드는 잘사용하지 않습니다) 

 4

802.3ad 

IEEE 802.3ad 프로토콜을 이용하여 Aggregation을 작성합니다.
대역폭이 상승하고 부하분산이 됩니다.

Failover도 지원합니다. 

 5

balance-tlb(TLB) 

적응형 송신 부하분산.
로드밸런싱으로 송신시 부하가 낮은 랜카드를 사용합니다. 

 6

balance -alb(ALB)

적응형 부하 분산.
5번과 비슷합니다. 


0,1번을 사용하시면 적당하지 않을까싶네요

(다른 모드는 회사상황에 맞게되는거지만 직접적으로 다른모드는 확인하기어렵기때문에 이부분에대해서는 자세하게 설명이 불가능합니다. 직접 본드 모드를 설정한후 확인해보시는게 좋을거 같습니다)


miimon은 랜카드가 제대로 동작하는지 확인하는 옵션입니다.

밀리세컨드 단위로 작동합니다.

기본값은 0입니다.

0일경우 비활성화 됩니다.



모두 작성하였으면 저장하고 나와주시면 됩니다.


vi /etc/sysconfig/network

마지막으로 설정파일을 수정해줍시다.

NETWORKING=yes

HOSTNAME=test

GATEWAYDEV=bond0



이것으로 본딩은 모두 마쳤습니다.


데몬을 재시작하여 설정파일을 다시 불러들입니다.


service network restart

서비스를 재시작 해주시면 됩니다.


그리고 나서 ifconfig로 확인을 해봅시다.


ifconfig



여기까지 문제없이 잘되면 모두 성공하신 겁니다!!!


하지만 이 포스팅을 쓰기위해 많은 오류를 겪어 보았습니다...


연결 활성화가 실패했습니다.


데몬을 재시작할려하면 자꾸 오류가 뜹니다.

어째서 인지 모르지만 자꾸 저기서 막혀버렸답니다 ㅎㅎ....


NetworkManager라는 네트워크 설정기능과 network가 충돌하여 발생하는것이랍니다.

NetworkManager를 중지한뒤 네트워크를 설정하고 데몬을 재실행하면 해결할수있습니다.


# service NetworkManager stop        

# chkconfig NetworkManager off       
# chkconfig network on                     
//# system-config-network  ※이부분은 위에서 해결하였으므로 패스    

# service network restart                  

↑출처

http://dcmru.tistory.com/2511003


이로써 도움을 많이 받게 되버린거 같습니다 ㅎㅎ...


어쨋든 저 연결 활성화가 실패했습니다 덕분에 얼마나 쌩노가다를 했는지;;


그러면 마지막으로 랜카드가 비활성화 되어버렸을때 다음 랜카드가제대로 활성화되는지 확인해봅시다.


먼저 cat /proc/net/bonding/bond0 명령어로 본딩설정을 확인합니다.


cat /proc/net/bonding/bond0


어째 0번부터 안받아 들이네요....


ifdown명령어를 통해 eth1랜카드를 비활성화 시켜보겠습니다.


ifdown eth1


그리고 한번더 cat을 사용하여 본딩내용을 확인합니다.


cat /proc/net/bonding/bond0


eth0이 자동으로 eth1을 대신해서 올라가게 됩니다.


서버는 24시간 가동이라는 전제가 붙기때문에 안전성이 그만큼 중요한 컴퓨터입니다.

그래서 본딩이나 백업의 개념이 더욱이 중요해지는것이지요.


연결 활성화가 실패하였습니다 때문에 얼마나 골머리를 앓았는지....


-HardWare SetUp-

CPU : Intel i7-6700k

RAM : Samsung DDR4 8GB X 4 (32GB)

HDD : Seagate 1TB X 3 (3TB HDD)

SSD : Samsung SSD 128GB

VGA : Asus GTX1080 8GB

MB : Asus Z170-A STCOM

Case : Thermaltake Core X9

PSU : Micronics Performance II HV 850W Bronze

Other : PSIONIC Custom Water Cooler (CPU set), LED Cooler (EA 12)


그외 궁금한점은

공지사항을 잘보시고 오픈채팅으로 물어봐주시면 감사하겠습니다

공지사항 바로가기


Comments