고가용성 시스템 구성을 위해 L4 스위치를 많이 사용한다. 하지만 리눅스에는 L4 스위치가 하는 역할을 대신 할수있는 오픈소스가 많이 존재한다. 대표적인게 Zen,Haproxy,ipvsadm, crossroads 등이 있다. 이중에서 오늘은 crossroads 라는 오픈소스에 대해서 한번 알아보도록 하겠다.
crossroads 는 L4 장비가 수행하는 기본적인 로드밸런스 기능을 가지고있다. 2대이상의 서버가 서비스중에 1대가 장애가 발생할경우 나머지 1대의 서버로 자동으로 TCP 연결이 되도록 구성되어있다.
B1,B2,B3 는 서로 데이터가 공유되고 있으며, 클러스터, glusterfs, nfs 등 데이터 공유가 되고있는 상태다.
![L4 스위치 없이 Load Balancing(로드밸런싱) 구성하기](https://falltip.com/wp-content/uploads/2023/08/L4-스위치-없이-Load-Balancing로드밸런싱-구성하기-1.png)
설치방법도 간단하며 잘 활용하면 load balancing 을 구성하여 쉽게 사용할수 있다.
XR crossroads Gateway Server : 192.168.0.8
WEB 1 : 192.168.0.2:80
WEB 2 : 192.168.0.4:80
WEB1과 WEB2는 동일하게 셋팅 된 서버 이다. 데이터 동기화는 글러스터, NFC, rsync 등 여러방법을 이용하여 동기화를 진행시켜놓는다.
3대의 서버 모두 SUlinux 2014 R6 64bit 버전을 이용하여 설치하였다.
설치방법
gcc 컴파일러가 필요하다. 아래와 같이 설치해준다.
yum install gcc gcc-c++ make
하지만 sulinux 가 설치되어있다면 gcc 는 설치 하지 않아도 된다.
wget https://crossroads.e-tunity.com/downloads/crossroads-stable.tar.gz
tar xvf crossroads-stable.tar.gz
cd crossroads-2.74
make install
에러없이 정상적으로 설치가 완료되면 아래의 파일을 만들어 준다.
vi /etc/xrctl.xml
1.0<94> encoding=<94>UTF-8<94>?>
true /tmp
M-test
192.168.0.8:7777
tcp
0:8010
yes
0
0
0
0
192.168.0.2:80 192.168.0.4:80
xrctl 명령을 이용하여 서비스를 시작한다.
xrctl start
Service Tecmint: started
xrctl status
Service Tecmint: running
7777 port 가 80 port 연결될수있도록. 주소창에 포트번호 없이 접근.
iptables -A PREROUTING -t nat -i eth0 -p tcp –dport 80 -j REDIRECT –to-port 7777
netstat -lnp 명령어로 열려있는 포트를 확인한다.
7777포트는 XR Server에서 설정한 포트이며 8010포트는 관리자 페이지용 포트이다.
tcp 0 0 192.168.0.8:7777 0.0.0.0:* LISTEN 17081/xr-M-test
tcp 0 0 0.0.0.0:8010 0.0.0.0:* LISTEN 17081/xr-M-test
관리자 모니터링 페이지 http://서버아이피:8010 으로 접속한다.
![L4 스위치 없이 Load Balancing(로드밸런싱) 구성하기](https://falltip.com/wp-content/uploads/2023/08/L4-스위치-없이-Load-Balancing로드밸런싱-구성하기-2-1024x626.png)
http://192.168.0.8 로 접속을 하게되면 WEB1, WEB2 로 load balancing 가 이뤄 지고있다.
L4 장비가 없을경우 DNS로드발란싱, IPVSADM등을 이용해서 서버구성이 가능하며 이번에 crossroads로 구성해 보았다.
기가급 L4장비는 비싼편인데 오픈소스를 활용해서도 로드발란싱 구성이 가능하다는걸 알아보기 위해서 설치하였다.
설치가 쉬우며, 관리가 쉽다는 장점이 있지만, 그만큼 기능은 부족한 면이 있다. 단순 DNS 라운드로빈 방식 보다는 이게 좀더 이점은 있는거 같다.