본문 바로가기
오픈소스/pacemaker

02. RHEL8 HA(Pacemaker) 구축

by 핸조 2023. 4. 10.

※필요조건

 * Service ip -> 외부접속용, OS용.. 등등..

 * Heartbeat ip  -> 양노드간 상태확인 

 * VIP(Virtual IP) -> 이중화 

 * iSCSI Shared Volume ip -> 스토리지간 공유 볼륨

  * Management ip -> Fence 

 

1. Pacemaker 패키지 설치

**모든 Node 에서 수행**
# yum install -y pcs fence-agents-all

- RHEL7에서는 iso 파일에 포함되어 있었지만, RHEL8 버전 부터는 HA repo 따로 구성 필요.

 

2. 별칭등록

# vim /etc/hosts

##service ip##
ip  hostname
ip  hostname


##Heartbeat ip##
ip hb-hostname
ip hb-hostname

 

3. 클러스터(node1, node2) 인증

**cluster 계정확인** 
# cat /etc/passwd | grep hacluster
hacluster:x:189:189:cluster user:/home/hacluster:/sbin/nologin

**패스워드 설정** // node1,2 설정 필요
passwd hacluster

**Cluster 간 인증** // node1에서만 수행
# pcs host auth mki01-hb mki02-hb
Username: hacluster
Password:
mki01-hb: Authorized
mki02-hb: Authorized

- 서로를 알아야 하기 때문에 pacemaker 패키지 설치 시 등록된 hacluster 계정으로 사용 및 인증

 

4. Cluster 등록

** Clsuter 등록 **
# pcs cluster setup mkha-cluster --start mki01-hb mki02-hb

** 생성된 Cluster 확인 **
# pcs status
Cluster name: mkha-cluster
Cluster Summary:
  * Stack: corosync
  * Current DC: mki01-hb (version 2.1.2-4.el8-ada5c3b36e2) - partition with quorum
  * Last updated: Mon Apr 10 00:04:59 2023
  * Last change:  Thu Apr  6 17:10:08 2023 by root via cibadmin on mki01-hb
  * 2 nodes configured
  * 6 resource instances configured

Node List:
  * Online: [ mki01-hb ]
  * Online: [ mki02-hb ]

 

5. VIP 및 resoucre 생성 전 fence disable

** fence disable **
# pcs property set stonith-enabled=false

- pacemaker 구성 중 fence 작업 방지

 

6.Constraint 설정

** 리소스 값 설정 **
# pcs resource defaults update resource-stickiness=1000

# pcs resource defaults
Meta Attrs: rsc_defaults-meta_attributes
resource-stickiness=1000

** 위치 제한 조건 구성 **
# pcs constraint location mki01-g prefers mki01-hb=500    
# pcs constraint location mki02-g prefers mki02-hb=500

# pcs constraint location mki01-fence prefers mki01-hb
# pcs constraint location mki02-fence prefers mki02-hb

# pcs constraint config
Location Constraints:
  Resource: mki01-g
    Enabled on:
      Node: mki01-hb (score:500)
  Resource: mki01-vip
    Constraint: location-mki01-vip
      Rule: score=-INFINITY
        Expression: ethmonitor-eno1 ne 1
  Resource: mki02-g
    Enabled on:
      Node: mki02-hb (score:500)
  Resource: mki02-vip
    Constraint: location-mki02-vip
      Rule: score=-INFINITY
        Expression: ethmonitor-eno1 ne 1

- 다른 node 로 리소스가 넘어 가지 않도록 값을 1000으로 설정 ((구글링 시 값 1000은 Clusterlabs 에서 권고 값))

- 위치 제한 조건 -> 리소스를 실행할 수 있는 노드를 결정합니다. 리소스가 지정된 노드를 선호하는지 방지할지 여부를 결정하는 위치 제한 조건을 구성 할 수 있으며, 위치 제한 조건 외에도 리소스를 실행하는 노드에는 해당 리소스의 resource-stickiness 값에 영향을 미치며, 이 값은 리소스가 현재 실행 중인 노드에 남아 있는 정도를 결정

 * 출처 -

 

12장. 리소스를 실행할 수 있는 노드 확인 Red Hat Enterprise Linux 8 | Red Hat Customer Portal

Access Red Hat’s knowledge, guidance, and support through your subscription.

access.redhat.com

 

7. VIP resource 및 VIP Monitoring 생성

** VIP 리스소 생성 **
# pcs resource create mki01-vip IPaddr2 ip=192.168.242.118   cidr_netmask=23    nic=eno1 op monitor interval=30 --group mki01-g
# pcs resource create mki02-vip IPaddr2 ip=192.168.242.119   cidr_netmask=23    nic=eno1 op monitor interval=30 --group mki02-g

** VIP Monitoring 생성 **
#  pcs resource create mki-vip-monitor ocf:heartbeat:ethmonitor interface=eno1  clone

** 생성된 리소스 확인 **

# pcs status
 * Clone Set: mki-vip-monitor-clone [mki-vip-monitor]:
 * Started: [ mki01-hb mki02-hb ]

 

8. Auto Failback 방지

** node 1 **
# pcs constraint location mki01-vip rule score=-INFINITY ethmonitor-eno1 ne 1

** node 2 **
# pcs constraint location mki02-vip rule score=-INFINITY ethmonitor-eno1 ne 1

 

9. stonith 생성

** 어느 노드에서 수행되어도 상관 없음** 
# pcs stonith create mki01-fence fence_ipmilan ip=20.20.20.10 username=admin password=hpinvent pcmk_host_list=mki01-hb pcmk_reboot_action=reboot pcmk_monitor_timeout=60s pcmk_delay_base=8s lanplus=1 auth=password power_wait=20 
# pcs stonith create mki02-fence fence_ipmilan ip=20.20.20.20  username=admin password=hpinvent pcmk_host_list=mki02-hb pcmk_reboot_action=reboot pcmk_monitor_timeout=60s lanplus=1 auth=password power_wait=20

stonith 즉, 서버의 Management 정보를 등록하여 cluster 장애 발생한 node에 대해 fence를 작동시킴.

2대의 Cluster에 동일하게 옵션을 주면 장애 발생 시 death match (서로죽임) 이 발생 되기 떄문에 보통 active node에 dealy 옵션을 부여하여, fence 작동을 늦춤.

 

* 이로써 Pacemaker 구축이 끝났습니다. 정상적으로 잘 구축이 되었는지 test 확인 방법은...

1. pcs daemon stop

2. rebooting

3. NMI 발생

4. Heartbeat ip down 

 

10. 추가 명령어

crm_mon -A // pcs status 실시간 모니터링


pcs resource relocate run mki02-g // resource move 


pcs cluster sync // 설정 동기화

 pcs property set maintenance-mode=true // 유지보수모드
 
 pcs property config // property 설정 값 확인
 
 pcs cluster config update // corosync 및 clsuter 설정 변경 시 update

 

'오픈소스 > pacemaker' 카테고리의 다른 글

01. RHEL8.6 HA(Pacemaker) 이론  (0) 2023.03.30