본문 바로가기

Linux

CentOS 7, 8 에서 이중화 설정 방법 (pcs, pacemaker)

반응형

이중화를 설정하기 위해서 서버 2대를 준비합니다.

필자의 경우 CentOS 7으로 준비하였습니다.

 

 

1. 각 서버에 호스트명을 설정합니다.

 

1번 서버에 krujyit1

2번 서버에 krujyit2라고 설정하겠습니다.

 

hostnamectl 명령어로 호스트명을 설정 해준 뒤

/etc/hosts 파일 내에 아래와 같이 추가합니다. (1,2번 서버 모두 적용)

[1번 서버 IP] [1번 서버 호스트명] 

[2번 서버 IP] [2번 서버 호스트명] 

 

다 설정한 후

uname -n 명령어로 자신의 호스트명이 변경되었는지 확인해줍니다.

 

 

bash (1번 서버)
# hostnamectl set-hostname krujyit1 
# vi /etc/hosts

 192.168.99.231 krujyit1
 192.168.99.232 krujyit2
:wq

# uname -n

 

1번 서버 호스트명 설정

bash (2번 서버)
# hostnamectl set-hostname krujyit2
# vi /etc/hosts

 192.168.99.231 krujyit1
 192.168.99.232 krujyit2
:wq

# uname -n

2번서버 호스트명 설정

 

 

 

 

2. 각 서버에 이중화 모듈을 설치 

 

1번, 2번 서버 모두 해당

bash (CentOS 7)
# yum -y install pcs fence-agents-all pcp-zeroconf
bash (CentOS 8)
# dnf config-manager --set-enabled ha
# dnf -y install pcs fence-agents-all pcp-zeroconf

※ yum이나 dnf에서 설치 중 오류가 뜰 경우

   /etc/resolv.conf 파일에서 

  nameserver 8.8.8.8   <- 구글 DNS가 설정이 되어 있는지 확인해 준다. (다른 외부 DNS 주소도 가능)

 

yum 명령어
yum으로 설치 완료

 

 

 

 

3. 이중화 계정인 hacluster의 비밀번호를 설정합니다.

1번, 2번 서버 모두 해당

bash
# passwd hacluster

 

이중화 계정 비밀번호 설정

 

 

 

 

4.  이중화 pcs 서비스를 시작, 등록합니다.

1번, 2번 서버 모두 해당

bash
# systemctl start pcsd
# systemctl enable pcsd

 

pcs 이중화 서비스 시작, 등록

 

 

 

 

 

5. 리눅스 기본 방화벽을 비활성화합니다.

1번, 2번 서버 모두 해당

bash
# systemctl stop firewalld
# systemctl disable firewalld

# vi /etc/selinux/config
SELINUX=enforcing -> disabled

 

방화벽 비 활성화

 

 

 

/etc/selinux/config 파일

 

 

 

6. 1번 서버(krujyit1) 서버에 pacemaker 환경 설정합니다.

1번 서버에만 해당 (2번 서버는 자동으로 설정됨)

 

 

bash (CentOS 7)
# pcs cluster auth krujyit1 krujyit2

Username : hacluster
Password : 3번에서 설정한 암호 입력

# pcs cluster setup --name hacluster krujyit1 krujyit2
# pcs cluster start --all

# pcs status
bash (CentOS 8)
# pcs host auth krujyit1 krujyit2

Username : hacluster
Password : 3번에서 설정한 암호 입력

# pcs cluster setup hacluster krujyit1 krujyit2
# pcs cluster start --all

# pcs status

 

노드간 인증

 

이중화 설정

 

환경설정 적용

 

이중화 상태 확인

두 개의 노드 모두 Online 상태로 나오게 되면 정상입니다.

 

 

 

 

 

 

 

7. 각 서버에 pacemaker, corosync 이중화 서비스 시작, 등록합니다.

1번, 2번 서버 모두 해당

bash
# systemctl start corosync.service
# systemctl enable corosync.service
# systemctl start pacemaker.service
# systemctl enable pacemaker.service

# systemctl list-unit-files | grep corosync.service
# systemctl list-unit-files | grep pacemaker.service
# systemctl list-unit-files | grep pcsd.service

 

이중화 서비스 시작, 등록
이중화 프로그램이 시작프로그램에 등록 된 것을 확인

 

 

8. 1번 서버(krujyit1)에 VIP를 설정해줍니다.

1번 서버에만 해당 (2번 서버는 자동으로 설정됨)

 

bash
# pcs property set stonith-enabled=false
# crm_verify -L -V

# pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.99.230 cidr_netmask=24 nic=ens33 op monitor interval=30s 

# ip addr | grep secondary

 

pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=[설정할 VIP] cidr_netmask=[VIP의 subnet] nic=[통신에 사용하는 NIC 카드] op monitor interval=30s 

 

※ VIP, netmask, nic를 정확하게 입력해 주어야 설정 가능합니다!!

VIP 설정 과정

 

VIP가 올라 온 것을 확인

 

 

설정된 VIP로 통신이 가능한 지 확인합니다.

추가로 1번 서버를 재 부팅할 때,

2번 서버가 VIP를 가지고 있는지 확인하면 완료입니다.

정상 통신하는 것을 확인

 

반응형