Pacemaker 구성 4
목차
Pacemaker Constraints
Pacemaker 클러스터에서는 등록된 리소스에 대해서 제약조건을 설정 할 수 있습니다. 리소스에 제한을 두어 위치를 지정한 노드에서 시작하거나, 특정 리소스의 다음 순서에 시작되게 할 수 있습니다. 또 어떤 리소스가 같이 실행되어야 시작 할 수 있게도 설정이 가능합니다.
Constraints의 종류
Location Constraints:
위치 제약 조건으로 리소스를 원하는 위치에서 지정하여 시작 할 수 있게 해줍니다. 초기 Score 값을 지정하고 해당 Score 값이 높은 노드에서 최초 시작합니다. 리소스의 위치는 Score 와 resource-stickiness 값에 영향을 받습니다.
Ordering Constraints:
순서 지정 제약 조건으로 리소스의 순서를 정하는데 사용합니다. 특정 조건을 만족해야 순차적인 리소스 시작이 가능합니다.
Colocation Constraints:
리소스 배치의 개념을 가진 제약 조건으로 한 리소스의 위치가 다른 리소스의 위치에 따라 결정되도록 구성 할 수있습니다.
Pacemaker Constraint 등록
Location Constraints
- maintenance mode true 로 변경 / stonith 모니터링 false로 변경
# pcs property set maintenance-mode=true
# pcs property set stonith-enabled=false
- location constraints 설정
# pcs constraint location test_svc prefers c77_ha01.hb=200
# pcs constraint location test_svc prefers c77_ha02.hb=0
# pcs constraint location vip rule score=-INFINITY vip1 lt 1 or not_defined vip1
- maintenance mode false 로 변경 / stonith 모니터링 true로 변경
# pcs property set maintenance-mode=false
# pcs property set stonith-enabled=true
stonith-enabled=true / maintenance-mode=false 설정을 변경하는 이유는 안전하게 클러스터 설정을 하려는 이유입니다. stonith-enabled 설정을 변경하여, 특이사항이 발생하더라도 fencing을 통한 절체가 이루어지 않도록 합니다. maintenance-mode 또한 유지보수 모드로 모니터링을 중지하여, 리소스 fail 상황이 발생하더라도 리소스의 이동이 발생하지 않도록 합니다.
# pcs constraint location test_svc prefers c77_ha01.hb=200
# pcs constraint location test_svc prefers c77_ha02.hb=0
위의 설정을 확인해보면 test_svc 그룹의 location constraint는 c77_ha01.hb의 score 값을 200, c77_ha02.hb의 score 값에는 0을 주어 score 의 차이로 초기 리소스를 ha01 노드에서 시작하게 합니다. 앞서 설정했던 resource-stickiness=1000 이 score 의 가변 값이고 더 높은 score를 가지고 있는 곳에서 리소스가 시작하게 됩니다. 만약 ha01 노드에서 리소스 fail이 발생하면 ha02 노드에서 resource-stickiness 값이 1000이 증가하여 200 vs 1000 이 되므로 ha02로 리소스가 이동합니다.
# pcs constraint location vip rule score=-INFINITY vip1 lt 1 or not_defined vip1
위의 설정은 vip 리소스의 location constraint를 지정합니다. 해석하자면, ping 리소스의 이름은 vip1 의 값이 1보다 작거나 정의가 되어있지 않을 경우 score 값이 -INFINITY 로 변경되고 반대편 노드로 리소스가 이동합니다.
- score 의 우선순위
-INFINITY <음수 <0 <양수 <INFINITY
- pcs config show 정보를 통해 현재 설정되어 있는 리소스 보기
# pcs config show
Cluster Name: ha_cluster
Corosync Nodes:
c77_ha01.hb c77_ha02.hb
Pacemaker Nodes:
c77_ha01.hb c77_ha02.hb
Resources:
Group: test_svc
Resource: vip (class=ocf provider=heartbeat type=IPaddr2)
Attributes: cidr_netmask=24 ip=192.168.122.186 nic=eth0
Operations: monitor interval=10s timeout=20s (vip-monitor-interval-10s)
start interval=0s timeout=20s (vip-start-interval-0s)
stop interval=0s timeout=20s (vip-stop-interval-0s)
Clone: vip_ping-clone
Resource: vip_ping (class=ocf provider=pacemaker type=ping)
Attributes: debug=1 host_list=192.168.122.1 name=vip1 timeout=6
Operations: monitor interval=10 timeout=60 (vip_ping-monitor-interval-10)
start interval=0s timeout=60 (vip_ping-start-interval-0s)
stop interval=0s timeout=20 (vip_ping-stop-interval-0s)
Stonith Devices:
Resource: ipmifence1 (class=stonith type=fence_ipmilan)
Attributes: auth=password ipaddr=200.200.20.1 ipport=631 lanplus=1 login=admin passwd=growin pcmk_host_list=c77_ha01.hb
Operations: monitor interval=60s (ipmifence1-monitor-interval-60s)
Resource: ipmifence2 (class=stonith type=fence_ipmilan)
Attributes: auth=password ipaddr=200.200.20.1 ipport=632 lanplus=1 login=admin passwd=growin pcmk_host_list=c77_ha02.hb
Operations: monitor interval=60s (ipmifence2-monitor-interval-60s)
Fencing Levels:
Location Constraints:
Resource: test_svc
Enabled on: c77_ha01.hb (score:200) (id:location-test_svc-c77_ha01.hb-200)
Enabled on: c77_ha02.hb (score:0) (id:location-test_svc-c77_ha02.hb-0)
Resource: vip
Constraint: location-vip
Rule: boolean-op=or score=-INFINITY (id:location-vip-rule)
Expression: vip1 lt 1 (id:location-vip-rule-expr)
Expression: not_defined vip1 (id:location-vip-rule-expr-1)
Ordering Constraints:
Colocation Constraints:
Ticket Constraints:
Alerts:
No alerts defined
Resources Defaults:
failure-timeout=30s
migration-threshold=1
resource-stickiness=1000
Operations Defaults:
No defaults set
Cluster Properties:
cluster-infrastructure: corosync
cluster-name: ha_cluster
dc-version: 1.1.20-5.el7-3c4c782f70
have-watchdog: false
stonith-enabled: true
stonith-timeout: 30s
Quorum:
Options:
Pacemaker Constraint 삭제
- 기존 constraint 설정
# pcs constraint show --full
Location Constraints:
Resource: test_svc
Enabled on: c77_ha01.hb (score:200) (id:location-test_svc-c77_ha01.hb-200)
Enabled on: c77_ha02.hb (score:0) (id:location-test_svc-c77_ha02.hb-0)
Resource: vip
Constraint: location-vip
Rule: boolean-op=or score=-INFINITY (id:location-vip-rule)
Expression: vip1 lt 1 (id:location-vip-rule-expr)
Expression: not_defined vip1 (id:location-vip-rule-expr-1)
Ordering Constraints:
Colocation Constraints:
Ticket Constraints:
- constraint 삭제
- constraint 값 삭제
# pcs constraint remove location-test_svc-c77_ha02.hb-0
- 확인
# pcs constraint show --full
Location Constraints:
Resource: test_svc
Enabled on: c77_ha01.hb (score:200) (id:location-test_svc-c77_ha01.hb-200)
Resource: vip
Constraint: location-vip
Rule: boolean-op=or score=-INFINITY (id:location-vip-rule)
Expression: vip1 lt 1 (id:location-vip-rule-expr)
Expression: not_defined vip1 (id:location-vip-rule-expr-1)
Ordering Constraints:
Colocation Constraints:
Ticket Constraints:
contraint 삭제는 pcs constraint show --full 명령어를 통해 보여지는 id 값을 삭제하면 됩니다. 리소스 삭제와 다르게 id 값을 삭제하는 이유는 해당 제약 조건을 더 상세하게 나눌 경우 더 세밀하게 삭제를 하기 위함입니다.
Location Constraint를 추가 해봤습니다. 제약 조건의 경우 너무 다양한 조건을 걸 수 있으며, 특정 리소스의 위치에 따라 리소스의 위치가 정하게 될 수도 있으며 순서 제어도 가능합니다. 이번에 알아본 위치 제약 조건을 사용하면 특정 리소스의 초기 위치를 설정 할 수 있습니다.
이전 글 보기
[LINUX] Pacemaker Cluster (CentOS7, KVM, pacemaker) - 3
Ref.
https://grooveyou.tistory.com/56
'리눅스 > 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) - 3 (0) | 2024.04.05 |
[HA] Pacemaker Cluster (CentOS7, KVM, pacemaker) - 2 (0) | 2024.04.04 |
[HA] Pacemaker Cluster (CentOS7, KVM, pacemaker) - 1 (0) | 2023.08.29 |