이번 포스팅은 사설망 구축(랜카드 2개)하여 서버간 통신 속도 높이는 방법을 작성해볼까 합니다.

 

개요

현재 서버는 총 4대로 모두 MySQL (Maria DB) 서버로 사용중에 있습니다.
4개 모두 CentOS7 설치되어 있습니다.
Server1이 master 서버이고 server 2, 3, 4는 slave 서버로 사용중에 있습니다.
아직 테스트 중이라서 사무실 안에 4대 모두 위치 시켜 놓은 상태입니다.
데이터를 서버간 옮기는 작업이 빈번한 상태인데 scp 기준으로 11Mbps 정도 속도가 나옵니다.

이번에 server4를 추가하면서 MySQL DATA를 옮기는데 scp기준으로 하루 꼬박 걸렸습니다.
무슨 작업 한번 하려고 하면 데이터 옮기는 시간으로 다 잡아먹는 상황이라 사설망을 구축하여 속도 좀 늘려봐야겠습니다.

 

네트워크 구성도

 

위의 그림은 이번에 적용할 네트워크 구성도입니다.

기존 LAN카드는 외부망으로 사용하고 LAN2를 사설망으로 구축하여 서버끼리의 통신은 사설망으로 하자는것이 이번 구성의 취지입니다.

결론부터 말씀 드리면 기존 LAN1끼리 통신하는 것은 scp기준으로 11Mbps 속도가 나왔습니다.
사설망 구축하니 110Mbps 속도나 나왔습니다. 정확히 10배 빨라졌습니다. 웃음.
하루 걸렸던 작업이 2시간 걸린다는 소리입니다. 저 완전 신났습니다.
준비물로는 기가 지원하는 랜카드 4개, 기가 지원하는 8포트 허브 1개 구입했습니다.

그림과 같이 각 서버에 랜카드 추가해주시고, 허브에 각 서버의 랜선 꽂으시면 됩니다. 하드웨어 구성은 끝났습니다.
핵심은 기가 지원하는 장비를 사용해야 한다는 점과 LAN2는 외부망 연결 없이 서버끼리 연결한다는 점입입니다.

 

Centos7 세팅하기

하드웨어(랜카드) 추가했다는 가정하에 설명드립니다.

 

1. 추가된 랜카드 확인

$ ifconfig 

enp0s31f6: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
  inet xxx.xxx.xxx.xxx  netmask xxx.xxx.xxx.xxx  broadcast xxx.xxx.xxx.xxx
  inet6 fe80::c568:a456:2f54:bc2  prefixlen 64  scopeid 0x20<link>
  ether xx:xx:xx:xx:xx:xx  txqueuelen 1000  (Ethernet)
  RX packets 6490  bytes 630640 (615.8 KiB)
  RX errors 0  dropped 0  overruns 0  frame 0
  TX packets 1680  bytes 266322 (260.0 KiB)
  TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  device interrupt 16  memory 0xf7100000-f7120000 

enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
  inet 192.168.0.4  netmask 255.255.255.0  broadcast 192.168.0.255
  inet6 fe80::2e0:4cff:fe15:9774  prefixlen 64  scopeid 0x20<link>
  ether 00:e0:4c:15:97:74  txqueuelen 1000  (Ethernet)
  RX packets 577  bytes 188522 (184.1 KiB)
  RX errors 0  dropped 0  overruns 0  frame 0
  TX packets 530  bytes 89990 (87.8 KiB)
  TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
   inet 127.0.0.1  netmask 255.0.0.0
   inet6 ::1  prefixlen 128  scopeid 0x10<host>
   loop  txqueuelen 1  (Local Loopback)
   RX packets 95  bytes 7900 (7.7 KiB)
   RX errors 0  dropped 0  overruns 0  frame 0
   TX packets 95  bytes 7900 (7.7 KiB)
   TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

위에서 'ifconfig' 출력값은 모든 세팅 끝난다음의 화면입니다.
제가 캡쳐를 못했네요. Ip 등 몇가지가 다르긴 한데 설명하는데 문제가 없어서 그냥 가겠습니다.

일반적으로 랜카드는 eth0, eth1 과 같은 이름을 명명합니다.
Centos7 OS 설치 시 네트워크 기본값으로 설치를 했더니 'enp0s31f6' 이름으로 구성되었습니다.
랜카드 추가후 아무것도 안 건드리니 마찬가지로 'enp2s0' 이름으로 구성되었습니다.
'enp0s31f6' 은 'eth0'과 같고, 'enp2s0' 은 'eth1'과 같다고 보시면 됩니다. 저는 기본값 그대로 나두기로 했습니다.
결국 ifconfig로 확인하니 'enp2s0' 이름으로 추가된 랜카드가 구성된것을 확인 할 수 있습니다.
Centos7을 기본으로 설치하셨다면 ifconfig명령어가 없습니다. 저는 별도로 설치한 것입니다.
ifconfig가 없을 경우에는 'ip add'로 확인하시면 됩니다. 

 

2. 설정파일 (enp2s0 파일은 없음 / 처음 만들었음)

$ vi /etc/sysconfig/network-scripts/ifcfg-enp2s0
  
DEVICE=enp2s0
  HWADDR=00:E0:4C:21:19:16
  TYPE=Ethernet
  ONBOOT=yes
  IPADDR=192.168.0.1
  NETMASK=255.255.255.0
  NM_CONTROLLED=yes

'/etc/sysconfig/network-scripts'에 가보면 'ifcfg-enp0s31f'는 있는 반면에 'ifcfg-enp2s0' 파일은 없습니다.
놀라시지 마시고 파일 생성하신 후에 위의 내용 붙여 넣으시면됩니다.

파일명은 'ifconfig'에서 확인한 이름을 'ifcfg-' 다음에 붙이시면 됩니다.

  • DEVICE : 'ifconfig'를 통해 확인한 이름 
  • HWADDR : 'ifconfig' 시 'ether' 부분에 나온 16진수 값
  • IPADDR : 10.10.10.1 등 아무 값이나 사용하실 수 있지만 잘 모르겠다 싶으면 '192.168.0.1~254' 적어줍니다.

 

3. 네트워크 리스타트

$ systemctl restart network

 

4. 확인

$ ifconfig

 

 

결론

지금까지 살펴본 외부망 + 사설망 구축은 서버간의 통신 시 빠른 속도를 보장받기 위한 용도가 주 목적입니다.
웹서버를 구성했다 하면 DB connect 시 192.168.0.x 식으로 사설망 주소를 사용하시면 속도도 빠르고 보안 상으로도 이득을 보실 수 있습니다.

즉, DB서버뿐 아니라 사용중인 모든 서버를 사설망 구성하는것이 이롭습니다.

위에서도 말했지만 scp기준으로 네트워크 파일 카피 시 구성전에는 11Mbps였고, 구성후에는 110Mbps로 10배 빠른 속도를 보이고 있습니다.
저희가 사용중인 IDC에서도 위와 비슷한 방식을 사용하고 있습니다. 즉, 실 운영서버에서도 사용 가능한 방법입니다.

그럼 다들 즐거운 IT JOB 하시길 바랍니다.

 


본 글은 나의 다른 블로그(폐쇄예정) 에서 작성한 글을 이관한 포스팅입니다. (2017년 11월 6일 작성)

'OS > Linux' 카테고리의 다른 글

(centos8) rsync 자주 사용되는 명령어(옵션)  (0) 2022.10.25
[CentOS7] LVM이용한 하드디스크 추가  (0) 2022.10.25