■ LVS 란?

 Linux Virtual Server의 약자이며, 말 그대로 리눅스 가상 서버입니다. HA(고가용성) 서버를 구축하기 위해 리눅스 환경의 서버를 로드 밸런싱 할수 있도록 도와줍니다. 

 (L4 스위치를 이용한 운영이 가장 좋습니다만, 가격적인 부분이 부담스러워 사용하는 경우가 대부분 일것같습니다.)

 

■ 구축 환경

※ OS
- CentOS Linux release 7.9.2009 (Core)
- 실제로 테스트 당시에는, Public IP를 사용하였으니 참고 바랍니다.


※ 구성에 사용되는 데몬
- Corosync : 클러스터 인프라 지원(Quorum 관리, 메세지 관리 등)
- Pacemaker : 클러스터 자원 관리자
- PCS : Corosync / pacemaker 관리하는 Management 데몬
- ldirectord : 원격 서비스를 모니터링하고, LVS를 제어하는 데몬

 

■ Pacemaker 설치 (LVS-Master, Slave 모두 설치)

Pacemaker 관련 내용은 추가로 업데이트할 예정이며, 설치 및 설정에 관한 내용만 게시하였습니다.

 

1. /etc/hosts 에 호스트 등록

→ IP 같은 경우 환경에 맞게 수정 부탁드립니다.

192.168.0.250 lvsm
192.168.0.251 lvss

 

2. /etc/sysctl.conf에 아래의 설정 추가

# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1

#sysctp -p

 

3. 주요 패키지 설치

# yum install -y pacemaker corosync pcs psmisc policycoreutils-python
# systemctl enable pcsd
# systemctl enable corosync
# systemctl enable pacemaker

 

4.  PCS 데몬 구동 및 노드간 통신을 위해 관리계정 (hacluster) 패스워드 설정

→ 노드간 로그인을 통해 corosync 구성을 동기화 하거나, 다른 노드에서 클러스터 실행 및 중지 작업 수행에 必

 ※ Master, Slave 모두 동일한 패스워드로 설정

# systemctl start pcsd
# password hacluster
# echo 'hklvstest' | passwd --stdin hacluster

 

5. Cluster Node 인증 설정 ( Master 에서만 진행 )

 → 방화벽이 올라와 있을 경우 아래의 포트를 오픈해준 후 진행해야 인증이 가능

※ Open이 필요한 방화벽 포트
◇ TCP : 2224, 3121, 21064

◇ UDP : 5405

# pcs cluster auth lvsm lvss

Username: hacluster
Password:
lvsm: Authorized
lvss: Authorized

 

6. Cluster 구성 및 활성화

# pcs cluster setup --name lvs_cluster lvsm lvss



# pcs cluster start --all

# pcs cluster enable --all
→ 노드간 통신은 UDP 포트를 이용하여 통신




 

7. Cluster 기본 셋팅

STONITH(Fencing Device) : 의도치 않은 동시 엑세스로 인한 데이터 손상을 보호함.
→ 클러스터 장애 시 해당 node를 끊어 공유 데이터의 무결성을 보장.
no-quorum-policy : 클러스터에 quorum이 없을 때의 수행작업을 설정.


# pcs property set stonith-enabled=false
→ Fencing Device 기능 비활성화

# pcs property set no-quorum-policy=ignore
→ 2개의 node로 구성 시 일반적으로 사용하는 옵션이며, 해당 설정이 안되어 있을 경우, 클러스터 간에 failover 시 부자연스러울 수 있음.

 

8. Resource 등록

 자신이 사용할 VIP를 입력하여, 리소스 등록

# pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=[VIP] cidr_netmask=32 nic=eth0:1 op monitor interval=30s

 

■ ldirectord 설치 (LVS-Master, Slave 모두 설치)

로드 밸런싱을 위해 설치합니다.

 

1. ldirectord 설치

# cd /usr/local/src/;wget --content-disposition https://packagecloud.io/s_mcleod/pacemaker/packages/el/7/ldirectord-4.0.1-1.84.caee.el7.centos.x86_64.rpm/download.rpm

# yum -y install ldirectord-4.0.1-1.84.caee.el7.centos.x86_64.rpm

 

2. ldirectord 설정 추가 

 IP 같은 경우 환경에 맞도록 수정해서 넣어줍니다.

 

※ [LVS Server]

# vi /etc/ha.d/ldirectord.cf
checktimeout=10
checkinterval=10
autoreload=no
quiescent=no


# HTTP Service
virtual = [VIP]:80
real=[RealServer1 IP]:80 gate 10
real=[RealServer2 IP]:80 gate 10

service=http
scheduler=wlc
persistent=3600
protocol=tcp
checkport=80
checktype=connect

※ [Real Server]

 

# vi /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
IPADDR=[VIP]
NETMASK=255.255.255.255
ONBOOT=no

# 해당 설정을 하지 않을경우, lo:0에서 VIP의 MAC주소를 가져오려는 시도가 계속됩니다.
# vi /etc/sysctl.conf

net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.eth0.arp_announce = 2

# sysctp -p

 

3. ldirectord Resource 추가

# pcs resource create ldirectord lsb:ldirectord op monitor interval="20" timeout="10"

 

4. VIP, ldirectord 순으로 실행되기 위해 colocation 설정 추가.

# pcs constraint colocation add VirtualIP with ldirectord


→ lvss에 (-)INFINITY 값을 부여하여 마스터 서버에서 리소스를 가져가게 설정이 됨.

 

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

PDNS 이중화 구성  (0) 2022.03.28
Pacemaker + DRBD 를 이용한 이중화 구성  (0) 2022.03.24

+ Recent posts