SAP HANA

SAP HANA 이중화 구성 Pacemaker RA(Resource Agent) 설명 및 구성 방법

덩덩 2020. 2. 28. 13:17

1. SAP HANA Pacemaker 이중화 관련 RA(Resource Agent, 리소스 에이전트) 이해

 

SAP에서는 SAP HANA 고가용성을 위해 Host Failover, System Replication, Storage Replication 제공하고 있습니다.

중에서 가장 많이 쓰이는 것은 System Replication인데, Primary DB에서 Fail 발생하면 수동으로 Takeover 해주어야 하는 단점이 있습니다. 이를 자동화해주기 위해서 SUSE에서 Pacemaker Resource Agent(RA) 만들었습니다.

 

1.1 SAPHanaTopology RA

SAP HANA 토폴로지를 분석합니다. , 클러스터 노드의 상태, System Replication 구성 현황 등을 확인하고, 노드들끼리 공유합니다.

모든 노드가 상태 정보를 가지고 있어야 하기 때문에, Pacemaker Clone 리소스 타입을 사용합니다.

 

1.2 SAPHana RA

System Replication으로 이중화 구성된 SAP HANA System Master/Slave 구분하고, 상태 점검 이상이 발생할 경우 SAP HANA 인스턴스를 시작/중지합니다.

Master/Slave 가지 상태로 구분하기 위해 Pacemaker Multi State 리소스 타입을 사용합니다.

 

2. SAP HANA Pacemaker 이중화 관련 RA 구성 방법

 

2.1 사전 조건

SAP HANA DB 호스트 2대가 SUSE Linux Enterprise Server for SAP Application 운영체제로 구성되어 있어야

SAP HANA 설치 방법 (hdblcm 커맨드 사용) 포스팅 참고

동일한 SID 구성되어야

SAP HANA DB Replication 구성되어 있어야

SAP HANA System Replication 설정 포스팅 참고

Pacemaker 이중화 구성되어 있어야

Linux Pacemaker Cluster 구성 포스팅 참고

아래 패키지가 설치되어 있어야

zypper install -t pattern ha_sles

zypper install SAPHanaSR SAPHanaSR-doc

 

2.2 Pacemaker Resource 구성 방법

모든 노드에 대해 유지보수 모드 (Maintenance Mode) 변경

saphanadb01:~ crm configure property maintenance-mode=true

 

SAPHanaTopology 리소스 에이전트 구성

saphanadb01:~ crm configure primitive rsc_SAPHanaTopology_H00_HDB00 ocf:suse:SAPHanaTopology \

  operations \$id="rsc_H00_HDB00-operations" \

  op monitor interval="10" timeout="600" \

  op start interval="0" timeout="600" \

  op stop interval="0" timeout="300" \

  params SID="H00" InstanceNumber="00"

 

SAPHanaTopology 리소스 에이전트를 Clone 리소스로 구성하여 노드에서 모두 기동되도록 사용

saphanadb01:~ crm configure clone cln_SAPHanaTopology_H00_HDB00 rsc_SAPHanaTopology_H00_HDB00 \

  meta is-managed="true" clone-node-max="1" target-role="Started" interleave="true"

 

SAPHana 리소스 에이전트 구성

saphanadb01:~ crm configure primitive rsc_SAPHana_H00_HDB00 ocf:suse:SAPHana \

  operations \$id="rsc_saphana_H00_HDB00-operations" \

  op start interval="0" timeout="3600" \

  op stop interval="0" timeout="3600" \

  op promote interval="0" timeout="3600" \

  op monitor interval="60" role="Master" timeout="700" \

  op monitor interval="61" role="Slave" timeout="700" \

  params SID="H00" InstanceNumber="00" PREFER_SITE_TAKEOVER="true" \

  DUPLICATE_PRIMARY_TIMEOUT="7200" AUTOMATED_REGISTER="false"

 

SAPHana 리소스 에이전트를 Multi State 리소스로 구성하여 2개의 노드 하나는 Master Role, 하나는 Slave Role 가지도록 구성

saphanadb01:~ crm configure ms msl_SAPHana_H00_HDB00 rsc_SAPHana_H00_HDB00 \

  meta is-managed="true" notify="true" clone-max="2" clone-node-max="1" \

  target-role="Started" interleave="true"

 

클러스터에서 사용하는 Virtual IP 없다면 생성

saphanadb01:~ crm configure primitive rsc_ip_H00_HDB00 ocf:heartbeat:IPaddr2 \

  meta target-role="Started" is-managed="true" \

  operations \$id="rsc_ip_H00_HDB00-operations" \

  op monitor interval="10s" timeout="20s" \

  params ip="192.168.45.140"

 

리소스 에이전트들 간에 시작 순서 설정 (SAPHanaTopology RA 시작된 SAPHana RA 시작)

saphanadb01:~ crm configure order ord_SAPHana_H00_HDB00 Optional: cln_SAPHanaTopology_H00_HDB00 \

  msl_SAPHana_H00_HDB00

 

SAPHana 리소스 에이전트 상태 초기화

saphanadb01:~ crm resource cleanup rsc_SAPHana_H00_HDB00

 

위에서 설정했던 유지보수 모드(Maintenance Mode) 해제

saphanadb01:~ crm configure property maintenance-mode=false

 

Pacemaker 기본 설정값 변경 (노드가 죽었다 다시 살아나도 리소스 에이전트 소유권이 다시 넘어가지 않도록 설정)

saphanadb01:~ crm configure rsc_defaults resource-stickiness=1000

Pacemaker 기본 설정값 변경 (노드 헬스 체크 실패가 일어나야 Migration 동작할 설정)

saphanadb01:~ crm configure rsc_defaults migration-threshold=5000

 

SAPHana 리소스의 상태가 제대로 동작하지 않는 이슈가 있어서 노드2(saphanadb02) 호스트를 재부팅했더니 이슈 해결됨

 

참고자료:

https://docs.microsoft.com/ko-kr/azure/virtual-machines/workloads/sap/sap-hana-high-availability

https://clusterlabs.org/pacemaker/doc/en-US/Pacemaker/1.1/html/Pacemaker_Explained/s-resource-multistate.html

https://clusterlabs.org/pacemaker/doc/en-US/Pacemaker/1.1/html/Pacemaker_Explained/s-resource-clone.html

https://clusterlabs.org/pacemaker/doc/en-US/Pacemaker/1.1/html/Clusters_from_Scratch/_controlling_resource_start_stop_ordering.html

https://blogs.sap.com/2018/10/23/hana-scale-up-ha-with-system-replication-automated-failover-using-suse-hae-on-sles-12-sp-3-part-1/