CentOS 6.3 리눅스 이더넷 채널 본딩하기

 


네 중규모나 조금 큰 규모의 리눅스서버를 구성할때 가장 많이 쓴다는 CentOS 입니다

RHEL의 짝퉁판이죠 좋게 말하면 클론이구요 (합법적인 짝퉁 ^^)

조금 큰규모 서버 구성하실땐 꼭 CentOS를 쓰시더라구요

다른 배포판들도 요즘 많이 괜찮아졌는데 서버는 Redhat이라는게 이제 딱 박혔나봐요

(또 서버용으로 많이 쓰시는 건 Debian이 있죠)


그래도 레드햇계열은 방대한량의 데이터가 나와있어 참고할 것이 많다는게 젤 큰 것이려나요 

솔찍히 안정적이기도 하죠 ^^


여기서 본딩을 해볼텐데요(티밍=본딩=이더채널=트렁킹 다 같습니다 OS마다 좀 다르게 부르는 것일 뿐)

제가 지금 구성해 놓은 서버에서는 이걸 할 수 가 없어서


오픈소스이면서 리눅스를 구동하는데 있어서는 VMware에 절대 뒤지지 않는 Virtualbox로 설명하겠습니다


별로 보잘것 없는 사양의 VM을 생성하고 랜카드 4개를 박았습니다

4개는 되어야 본딩 할 맛이 안 나겠습니까 ㅎㅎ


실제 서버 운용하시는 분들은 이렇게 gnome 같은 xwindow는 설치를 잘 안하실 텐데요

여기서는 편의를 위해 설치 했습니다


ifconfig를 해보면 랜카드 4개가 잘 인식되어 있군요


본딩을 시작하기전에 꼭 깔려 있어야 하는게 있습니다 바로 ethtool인데요

아마 기본적으로 설치가 되어 있을 텐데 설치가 안되어 있다면 설치해 주시구요


touch 명령어로 빈 파일들을 생성해 주셔야 합니다

생성해 주셔야 할 파일들은

음 미리 다 생성해 놓고 하셔도 되니 다 적겠습니다

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

#touch /etc/sysconfig/network-scripts/ifcfg-eth0

#touch /etc/sysconfig/network-scripts/ifcfg-eth1

#touch /etc/modprobe.d/bonding.conf

요런 놈들을 만들어 주시면 되겠습니다 ifcfg-eth 는 본딩할 만큼 만들어 주시면 되겠습니다


저는 지금 센토스 깔고 바로하는거라 ifcfg-bond0이랑 bonding.conf 빼고는 전부 만들어져 있는데요 

이럴경우 그냥 진행 하시면 됩니다


네 vi 나 vim으로 ifcfg-bond0 파일을 열어 다음코드를 입력합니다

DEVICE=bond0

IPADDR=...  /* 자신의 아이피를 넣으면됩니다 */ 

NETMASK=○...  /* 넷마스크 */

GATEWAY=...○ /* 게이트웨이 */

DNS1=...○  /* DNS */

DNS2=...○ /* 보조 DNS */

USERCTL=no

BOOTPROTO=none

ONBOOT=yes

NM_CONTROLLED=no


/* 고정 아이피로 안하시려면 네트워크부분 싹 지우시고 BOOTPROTO를 dhcp로 해주시면됩니다

스샷처럼요 */

USERCTL=no 옵션을 넣어 줘도 좋겠죠



원래 안에 있던 내용은 싹다 날려 버립니다

DEVICE=eth0

USERCTL=no

ONBOOT=yes

MASTER=bond0

SLAVE=yes

BOOTPROTO=none

NM_CONTROLLED=no

그리고 위에 코드를 입력합니다



네 저렇게 vi 에디터로 입력해도 되지만 너무 많아서 입력하기 귀찮더군요

텍스트에디터로 열어서 ctrl + c , ctrl + v 해줍니다

그래도 디바이스 명은 고쳐주세요



저걸 다 고쳐 주셨다면

bonding.conf를 생성합니다

(아까 생성하셨다면 패스하세요)


그리고 이것 또한 vi 에디터로 열어서 수정해줍니다

alias bond0 bonding

options bond0 mode=6 miimon=100

빨간 글씨 부분은 마음에 드는 것으로 수정하셔야 하는데 0번 ~ 6번중에 선택하시면 됩니다


0. balance-rr : (Round Robin) Load Balancing, 송신할 패킷마다 사용하는 NIC을 바꾼다.


1. active-backup: Failover, bond내에서 한개의 Slave만 사용

포트문제가 생길경우 다른 Slave가 Enable


2. balance-xor : Load Balancing, 소스와 목적지의 MAC을 XOR 연산을 통해 사용할 NIC를 결정하여 분배


3. Broadcast : Fault-Tolerance, 모든 Slave으로 데이터전송(failover), 일반적으로는 잘 사용안함.


4. 802.3ad : Dynamic Link Aggregation, IEEE 802.3ad 프로토콜을 이용하여 동적 Aggregation 작성

대역폭 상승, 부하 분산, Failover 지원


5. balance-tlb(TLB) : 적응형 송신 부하 분산, 송신패킷 로드밸런싱, 송신시 부하가 낮은 NIC이용

수신은 특정 NIC이용


6. balance-alb(ALB) : 적응형 부하 분산, 송수신패킷 로드밸런싱, 송수신시 부하가 낮은 NIC를 사용



아 그리고 그 뒤에 나온 miimon에 대해서 설명을 드리자면

mii는 네트워크 인터페이스가 살아있는지 확인하는데 쓰는데요

mii링크를 얼마나 자주 감시 할지를 설정합니다 (단위 0.001초)

기본값은 0 이고 0으로 설정시 failover는 비활성화 됩니다

그리고 이제 거의 다 되었습니다 네트워크 파일을 수정해야 되는데요

/etc/sysconfig/network 를 vi에디터로 열어

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=자기호스트이름

GATEWAYDEV=bond0

들을 추가해 줍니다(있는건 내버려 두세요)



modprobe bonding  명령으로 본딩 설정을 적용시키고


 

service network restart  네트워크 서비스를 재시작 하시면 됩니다


본딩이 완료 되었습니다 달라진게 보이시나요?

bond0 인터페이스가 Master로 있고

나머지 NIC 들이 전부 노예로ㅋ 있습니다


cat /proc/net/bonding/bond0

으로 본딩 내용과 상태를 체크하실수 있습니다

4기가비트의 대역폭을 가지게 되었네요 ㅎ 


제 블로그도 잘 들어와 집니다 ㅎ

(근데 가상머신에서는 본딩하면 심각하게 느려집니다 ㅠ.ㅠ)

블로그 기본스킨이 다좋은데 색이 좀 어중간해서 CentOS 배경화면보고 영감을 받아 색을 좀 쨍 하게 했습니다 ㅎ


리눅스도 써보면 은근 매력적인 운영체제 입니다 많이 이용하세요.

Creative Commons License

Intel i350-T2 프리뷰


해외에서 주문한 I350-T2





오픈 해보면 드라이버 CD가 가장 먼저 보인다

열어보면 블리스터 포장에 I350-T2가 들어있다

기판

인텔 I350 칩셋을 자세히 보기위해 플래시를 터트렸다

I350 칩셋은 가상화에 엄청난 강점이 있다

원래  i350-T4 라는 포트 4개 짜리를 기반으로 만들어져 빈곳이 제법있다



PCI-Express 2.1 x4



정품인증 홀로그램이 있다



정품을 인증하기 위해서는 verify.yottamark.com에들어가면 확인할 수 있다


물론 내껀 정품이다



테스트를 위해 일반 PC에 꽂고 테스트를 해봤는데 발열이 좀 심하다. 저 PCB에 보면 홀이 2개 있는데 거기다가 칩셋 방열판을 붙여 줘야 할듯 싶다

홀 사이 거리는 45mm. 시중에 나와있는 방열판홀이랑 안맞는것 같다.


당연한 거지만 인터넷 속도는 전혀 달라지지 않았다

테스트를 위해 PC에 꽂고 Iperf 측정을 했는데 내장랜과의 차이가 전혀 없었다(내장랜도 인텔랜이라 차이가 없는 것일 수도...)

많은 사람들이 랜카드를 바꾸면 뭔가 달라질 것 이라고 생각하지만 그건 예전 이야기다. 100Mbps랜카드가 내장랜으로 달렸을 때 초기에는 adsl이나 vdsl을 이용해서 별 차이가 없었으나 이후 우리나라엔 100Mbps 인터넷이 100메가 인터넷이라면서 상용화가 되었고 그로인해 랜카드 대역폭을 꽉채우게 되면서 내장랜에 상당한 부하가 걸렸다. 그래서 내장랜 사망도 많았고 조금 후진 리얼텍 같은 랜카드는 인터넷의 본래 속도를 다 뽑아주지 못했다. 그때 좋은 랜카드를 꼽아주면 당연히 좋은 칩셋이 속도를 다 뽑아 주었고 그로인해 인터넷 속도가 원래속도가 나오게 되어 빨라졌다는 느낌을 주었다 (랜카드에 따라 심하게 차이가 나는 경우도 많았다...)


그러나 요즘은 보급형 PC에도 1Gbps 랜이 내장으로 기본장착된다. (서버/웍스사양에서는 이전부터 기가비트랜이 기본장착이었다) 그러나 우리나라의 일부 기가비트 인터넷 시범지역을 제외한 대부분은 겨우 100Mbps 인터넷을 쓰고 있다. NIC(Network Interface Card)의 대역폭 반도 못채우는 속도다 1/10 정도 채운다 그런데 랜카드가 과부하나 걸릴까..


그러므로 현재 인터넷상황에선 인텔이나 이나 브로드컴이나 아테로스나 리얼텍이나 그게 그거다. 리얼텍같은 경우 약간의 핑이 튀거나 불안정한 현상이 있을 수 있지만 PC사양에선 그리 중요한 문제도 아니고

인텔 랜카드가 인터럽트 완화기능이 있어 CPU 리소스를 조금 잡아 먹는다는데 역시 PC사양에서 그리 체감할 정도도 아니다. PC사양에서 리소스 먹어봤자 얼마나 먹을 것이며 안정성이 크게 중요하지도 않으니...


외장랜을 쓰는 가장 큰 이유 2개는 고장나면 바꿀 수 있다와 교체해도 쓰던 설정을 그대로 쓸 수 있다가 아닐까.

(온보드 랜을 메인으로 쓰다가 보드 교체했을시 재설정을 해야한다면... 사실 이런이유로 온보드랜은 안쓰는게 맘도 편하고 몸도 편하다.)


그러므로 서버환경도 아니고 랜포트에 문제도 없는데 굳이 랜카드를 바꿀 필요는 아직은 없다.


그러나 가정환경에서도 온보드 랜을 사용시 핑이 튀거나 랜포트가 모자랄 경우 혹은 워크로드가 높아지면 연결이 끊기는 현상이 있는 경우, 가상화를 이용하는 경우에는 좋은 선택이다.

워크로드가 올라가서 부하가 많이 걸릴때도 안정적으로 연결을 유지한다.


그럼 인터넷도 100Mbps인데 기가비트 랜을 왜 사냐고 묻는다면 간단하다 외부로 가는 라인은 100Mbps이지만 내부 네트워크는 기가비트를 사용할 수 있다. 즉 PC1과 PC2, 그리고 NAS 가 기가비트로 연결되어있다면

PC1이나 PC2에서는 기가비트의 속도로 NAS의 자료를 다운/업로드하거나 스트리밍 받을 수 있다 서버나 클라이언트중 둘중하나가 HDD로 구성되어 있다면 소용은 없겠지만 대신 연결의 안정성은 확보할 수 있다


PS. 저는 PC부품들 절대 중고나라에서 팔지 않습니다

급히 워터마크를 다 찍긴 했는데

장터에서 제 부품사진이 도용 당하니까 기분이 나쁘군요 ㅡ.,ㅡ

Creative Commons License
크리에이티브 커먼즈 라이선스
NEORAY에 의해 작성된 Intel i350-T2 프리뷰은(는) 콘텐츠에 한하여 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.