Pacemaker 구성 1
목차
클러스터란 두대 이상의 서버들을 하나로 묶어서 하나의 서버로 동작하게 하는 것을 말합니다.
클러스터는 고가용성(High-availability, HA), 부하분산(load balance)등이 있습니다.
클라이언트들에게 서버 기반 정보를 지속적이고 더 높은 효율로 제공 받을 수 있게 하는 것에 목적이 있습니다.
시스템에서의 고가용성이란 운영 성능이 기준치에 맞게 충족되는 것을 말합니다. 특정 서버나 서비스의 종료 없이 지속적인 운영이 가능하게 하는 것을 말합니다. 추가로 문제가 생긴 서버나 서비스의 복구가 가능하고 정상화 할 수 있는 신뢰 높은 시스템을 뜻합니다.
고가용성 클러스터는 이중화 상태에서 fail-over 기능이 제공되어 한 노드에서의 장애가 발생해도 클러스터링에 의해 서비스의 문제가 없는 것을 말합니다. Pacemaker는 고가용성 클러스터로 아래는 Pacemaker를 구성하는 방법에 대해 소개하고자 합니다.
Pacemaker 구성에 필요한 것들
- KVM(HOST)에서 구성KVM , VMware 등 가상화 장비에서 VM 설치 후 진행 합니다. VM은 iscsi 서버, 클러스터 노드 2대로 구성, 총 3대로 구성합니다.
- VirtualBox에서도 구성은 가능하나, fencing 동작 추가가 어렵습니다.
- VM은 CentOS7.7로 구성되며, 네트워크는 Service, iscsi연동, HeartBeat로 구성했습니다.
- 순서대로 설치 시 바로 설치가 가능합니다.
- VM / HOST IP 정보
eth0 | eth1 | eth2 | |
node1(c77_ha01) | 192.168.122.184 | 200.200.10.184 | 200.200.20.184 |
node2(c77_ha02) | 192.168.122.185 | 200.200.10.185 | 200.200.20.185 |
storage(iscsi server) | 200.200.10.181 |
OS 설정 파일 수정
- 클러스터 노드로 사용할 node1, node2에 모두 동일하게 구성합니다.
[root@c77_ha01 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.122.181 iscsi
192.168.122.184 c77_ha01
192.168.122.185 c77_ha02
200.200.10.184 c77_ha01.iscsi
200.200.10.185 c77_ha02.iscsi
200.200.20.184 c77_ha01.hb
200.200.20.185 c77_ha02.hb
CentOS7 local repo 구성
- ISO에 포함되어 있는 PKG 사용을 위해 local repo를 구성
[CentOS 일 경우]
# vi /etc/yum.repos.d/local.repo
[Packages]
name=local
baseurl=file:///media
gpgcheck=0
enabled=1
# vi /etc/yum.repos.d/local.repo
[Packages]
name=Server
baseurl=file:///media/
enabled=1
gpgcheck=0
[ResilientStorage]
name=Server
baseurl=file:///media/addons/ResilientStorage/
enabled=1
gpgcheck=0
[HighAvailability]
name=Server
baseurl=file:///media/addons/HighAvailability/
enabled=1
gpgcheck=0
[RHEL 일 경우]
# vi /etc/yum.repos.d/local.repo
[Packages]
name=Server
baseurl=file:///media/
enabled=1
gpgcheck=0
[ResilientStorage]
name=Server
baseurl=file:///media/addons/ResilientStorage/
enabled=1
gpgcheck=0
[HighAvailability]
name=Server
baseurl=file:///media/addons/HighAvailability/
enabled=1
gpgcheck=0
방화벽 / Selinux disable
- 일반적으로 방화벽/Selinux 미사용을 기준으로 구성합니다.
# systemctl status firewalld
# systemctl disable firewalld
# systemctl stopfirewalld
# systemctl status firewalld
# getenforce
# cat /etc/sysconfig/selinux | grep SELINUX
SELINUX=disabled
SELINUXTYPE=targeted
# getenforce
시간 동기화를 위한 NTP 설정
- 클러스터에서 시간 동기화는 중요합니다. 시간 동기화가 틀어질 경우 서버 간 시간이 틀어져 리소스나 클러스터 연동의 TIME OUT이 발생 할 수 있습니다.
# vi /etc/ntp.conf
…
server [ntp server]
# systemctl status ntpd
# systemctl restart ntpd
# systemctl status ntpd
# ntpq -pn
KVM(HOST) Multicast 설정
- KVM(HOST) 에서 진행
HeartBeat 네트워크로 사용하는 대역에서 multicast로 통신이 가능해야합니다.
# cat /sys/devices/virtual/net/<virbr_interface>/bridge/multicast_querier
# echo 1 > /sys/devices/virtual/net/<virbr_interface>/bridge/multicast_querier
1
# netstat -g
클러스터 구성
- Pacemaker 관련 패키지 설치 및 데몬 활성화 (VM Node 동시 진행)
# yum install pacemaker corosync pcs lvm2-cluster psmisc policycoreutils-python bash-completion fence-agents-all
- Pacemaker resource 확인
# systemctl status corosync
# systemctl status pacemaker
# systemctl status pcsd
- hacluster 계정 비밀번호 생성
# echo 'password' | passwd --stdin hacluster
- pcsd 데몬 활성화
# systemctl enable --now pcsd
# systemctl status pcsd
- NODE1 에서 hacluster 사용자 인증 진행 (VM Node1에서만 진행)
# pcs cluster auth node1.hb node2.hb -u hacluster -p password
- Pacemaker 구성 (UDPU사용)
# pcs cluster setup --name ha_cluster c77_ha01.hb c77_ha02.hb --transport udpu --token 10000
- Pacemaker Start
# pcs cluster start --all
- Pacemaker 상태확인
[root@c77_ha01 ~]# pcs status
Cluster name: ha_cluster
Stack: corosync
Current DC: c77_ha02.hb (version 1.1.20-5.el7-3c4c782f70) - partition with quorum
Last updated: Thu Apr 4 11:11:04 2024
Last change: Tue Apr 2 17:28:37 2024 by root via cibadmin on c77_ha01.hb
2 nodes configured
1 resource configured
Online: [ c77_ha01.hb c77_ha02.hb ]
Full list of resources:
kdump-fence (stonith:fence_kdump): Started c77_ha01.hb
Daemon Status:
corosync: active/disabled
pacemaker: active/disabled
pcsd: active/enabled
- Corosync 통신 확인 (VM Node 동시 진행)
[root@c77_ha01 ~]# corosync-cfgtool -s
Printing ring status.
Local node ID 1
RING ID 0
id = 200.200.20.184
status = ring 0 active with no faults
[root@c77_ha02 ~]# corosync-cfgtool -s
Printing ring status.
Local node ID 2
RING ID 0
id = 200.200.20.185
status = ring 0 active with no faults
[root@c77_ha01 ~]# pcs status corosync
Membership information
----------------------
Nodeid Votes Name
1 1 c77_ha01.hb (local)
2 1 c77_ha02.hb
여기까지 Pacemaker 구성은 완료 됐습니다. 두 노드 간 Corosync를 통해서 클러스터 Member로 등록한 상태입니다. 추가로 Stonith 추가, Resource 추가를 통해서 설정을 완료하면 됩니다.
Ref.
https://www.redhat.com/ko/topics/linux/what-is-high-availability
'리눅스 > Pacemaker(HA Cluster)' 카테고리의 다른 글
[HA] STONITH - fence device 별 stonith-timeout 설정 (0) | 2024.10.08 |
---|---|
[HA] SBD Fencing Device 설정 (0) | 2024.10.07 |
[HA] Pacemaker Cluster (CentOS7, KVM, pacemaker) - 4 (0) | 2024.04.17 |
[HA] Pacemaker Cluster (CentOS7, KVM, pacemaker) - 3 (0) | 2024.04.05 |
[HA] Pacemaker Cluster (CentOS7, KVM, pacemaker) - 2 (0) | 2024.04.04 |