※필요조건
* 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 값에 영향을 미치며, 이 값은 리소스가 현재 실행 중인 노드에 남아 있는 정도를 결정
* 출처 -
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 |
---|