SAP HANA scale-Up System Replication High Availability 배포


Red Hat Enterprise Linux for SAP Solutions 9

"Advanced Next Generation Interface" SAP HANA 리소스 에이전트 ("angi")를 사용하여 스케일 업 HANA 시스템 복제 자동화를 위한 HA 클러스터 생성

Red Hat Customer Content Services

초록

확장 환경에 맞게 SAP HANA 시스템 복제를 구성하고 Pacemaker 클러스터를 설치합니다. 고가용성을 위해 RHEL for SAP Solutions 구성 요소를 사용하여 HANA 인스턴스를 보다 효율적으로 관리합니다.

Red Hat 문서에 관한 피드백 제공

문서 개선을 위한 의견에 감사드립니다. 어떻게 개선할 수 있는지 알려주십시오.

Jira를 통해 피드백 제출 (계정 필요)

  1. Jira 웹 사이트에 로그인되어 있는지 확인하십시오.
  2. 피드백을 제공하려면 이 링크를 클릭합니다.
  3. 요약 필드에 설명 제목을 입력합니다.
  4. 설명 필드에 개선을 위한 제안을 입력합니다. 문서의 관련 부분에 대한 링크를 포함합니다.
  5. 대화 상자 하단에서 생성 을 클릭합니다.

1장. SAP HANA 확장 시스템 복제 소개

두 개의 동일한 HANA 인스턴스 간 SAP HANA 시스템 복제를 구성하면 데이터베이스의 기본 복원력이 가능합니다. 기본 인스턴스의 오류가 발생하는 경우 서비스 복구를 자동으로 처리하는 고급 고가용성을 위해 Pacemaker 클러스터에서 이러한 두 인스턴스를 구성할 수 있습니다.

1.1. 용어

  • 노드

    HA 클러스터 설정의 호스트 또는 시스템(클러스터 멤버라고도 함)

  • cluster

    클러스터는 RHEL HA 애드온에서 Pacemaker 클러스터 관리자를 사용하는 고가용성 설정입니다. 두 개 이상의 멤버 또는 노드로 구성됩니다.

  • 인스턴스

    하나의 HANA 사이트에 속한 SAP HANA 시스템 세트 단일 호스트(스케일 업) HANA 환경에서는 하나의 HANA site가 하나의 HANA 인스턴스로 구성됩니다. 다중 호스트(scale-out) HANA 구성에서 각 HANA 사이트는 두 개 이상의 HANA 인스턴스로 구성됩니다.

  • 기본 설정

    기본 HANA 인스턴스 또는 기본 사이트는 활성 HANA 인스턴스 또는 사이트인 인스턴스를 나타냅니다. 단일 호스트 설정(scale-up)에서 이는 하나의 시스템입니다. 다중 호스트(scale-out) 설정에서 기본 인스턴스가 하나의 HANA 사이트의 여러 시스템에서 확장되고 시스템은 부하를 분산하는 HANA 환경에서 서로 다른 역할을 갖습니다.

  • Secondary

    보조 HANA 인스턴스 또는 보조 사이트는 SAP HANA 시스템 복제 메커니즘을 통해 기본 HANA 인스턴스와 동기화되도록 구성된 SAP HANA 인스턴스 또는 사이트를 나타냅니다. 이 인스턴스는 기본 인스턴스의 메모리 내 데이터를 미리 로드하고 기본 인스턴스가 실패하는 경우 이를 처리할 준비가 되어 있습니다.

1.2. 성능에 최적화된 SAP HANA 확장 HA

성능에 최적화된 것은 각 노드에서 CPU 및 RAM과 같은 대부분의 리소스를 제어할 수 있는 단일 SAP HANA 인스턴스만 실행 중임을 의미합니다. 즉, SAP HANA 인스턴스는 가능한 한 많은 성능으로 실행할 수 있습니다.

SAP HANA 2.0 SPS1 이상의 성능 최적화 SAP HANA 시스템 복제 설정을 사용하면 보조 시스템에 대한 읽기 액세스를 구성하여 기본 인스턴스의 부하를 줄일 수도 있습니다. 자세한 내용은 Active/Active(Read Enabled) 구성에 대한 SAP 문서를 참조하십시오.

1.3. SAP HANA HA용 클러스터 리소스 에이전트

SAP HANA HA 설정에 대한 HA(고가용성) 클러스터 구성은 예상되는 동작을 위해 기능을 결합하는 여러 리소스 에이전트에서 작동합니다. Advanced Next Generation Interface 리소스 에이전트는 스케일업 및 스케일 아웃 환경에서 동일합니다. 업스트림에서는 SAPHanaSR-angi 라고도 합니다.

RHEL에서 이 생성의 결합 리소스 에이전트는 sap-hana-ha 패키지로 제공됩니다.

  • SAPHanaTopology

    SAPHanaTopology 리소스 에이전트는 SAP HANA 환경에서 상태 정보를 가져와서 클러스터 속성에 저장합니다. 또한 에이전트는 HANA 인스턴스를 시작, 중지 및 모니터링하는 데 필요한 로컬 SAP HostAgent 를 시작하고 모니터링합니다. SAP HANA의 구성 프로세스는 시스템 복제 후크라는 구성 프로세스에서 저장된 속성에 복제 상태 정보를 추가합니다. 수집된 환경 데이터를 기반으로 리소스 에이전트는 클러스터 노드의 전용 상태 점수를 정의합니다. 이 점수는 클러스터에서 다른 사이트로 시스템 복제 전환을 시작해야 하는지를 결정하는 데 사용됩니다.

  • SAPHanaController

    SAPHanaController 리소스 에이전트는 SAP HANA 환경을 모니터링하고 관리합니다. HANA 인스턴스가 실패하는 경우 리소스는 자동 스위치에 대한 명령을 가져와 실행하는 복구 작업을 결정하거나 시스템 복제의 활성 사이트를 변경합니다.

  • SAPHanaFilesystem

    SAPHanaFilesystem 리소스 에이전트는 SAP HANA 파일 시스템에서 경로에 대한 읽기 및 쓰기 액세스를 확인하고 파일 시스템 액세스와 관련된 문제를 찾을 때 기본 HANA 인스턴스에서 작업을 수행합니다. 이로 인해 장애 조치 및 서비스 복구 속도가 크게 빨라질 수 있습니다.

    이 리소스 에이전트를 사용하는 것은 선택 사항이지만 기본 노드를 펜싱하여 기본 SAP HANA 스토리지 오류 발생 시 더 빠른 페일오버를 트리거하는 것이 좋습니다. 이는 기본 노드에서만 작업을 수행하고 HANA 시스템 복제가 동기화된 경우에만 수행됩니다. 이 리소스는 파일 시스템의 경로만 모니터링하므로 파일 시스템을 마운트하거나 마운트 해제하지 않습니다. 파일 시스템 자체를 관리하려면 다른 메커니즘을 사용해야 합니다. 자세한 내용은 /etc/fstab 파일을 참조하십시오.

    참고

    RHEL 버전에 새로운 리소스 에이전트를 사용할 수 있는지 확인합니다. SAP HANA scale-Up 및 scale-Out System Replication HA 솔루션에 대해 지원되는 최소 패키지 버전을 확인합니다.

1.4. SAP HANA HA/DR 공급자 후크

현재 버전의 SAP HANA는 HANA 인스턴스가 시스템 복제 손실 또는 설정 등 특정 이벤트에 대한 알림을 보낼 수 있는 후크 형태로 API를 제공합니다. 각 이벤트마다 HANA 인스턴스는 HA/DR 공급자라고도 하는 구성된 후크를 호출합니다. 후크는 HANA가 보내는 이벤트를 처리하는 사용자 지정 Python 스크립트이며 스크립트는 이벤트 정보를 기반으로 다양한 작업을 트리거할 수 있습니다.

특정 이벤트에 대한 추가 작업을 트리거하는 데 필요한 기능을 활성화하려면 HA/DR 공급자 정의를 HANA 글로벌 구성에 추가해야 합니다.

srConnectionChanged() 후크 메서드의 HanaSR

srConnectionChanged() 후크를 처리하려면 HanaSR 후크가 필요합니다. 이 방법은 HANA 시스템 복제 상태의 변경 사항을 알리는 데 기본 HANA 인스턴스에서 사용됩니다. 기본 HANA 인스턴스는 HANA 시스템 복제 관련 이벤트가 발생할 때 HanaSR HA/DR 공급자를 호출합니다. 그런 다음 후크 스크립트 HanaSR.py 에서 시스템 복제 상태 세부 정보에 대한 srConnectionChanged() 이벤트를 구문 분석하고 결과적으로 srHook 클러스터 속성을 업데이트합니다. 이 속성은 리소스 에이전트가 가로 상태를 평가하고 결정을 내리는 데 사용됩니다. 시스템 복제 또는 동기화 상태의 값은 클러스터가 동일한 노드에서 실패한 기본 인스턴스를 복구하는지 또는 보조 노드에 대한 인수를 트리거하는지 여부를 정의합니다. 이 작업은 시스템 복제가 완전히 동기화될 때만 트리거됩니다. 즉, HANA 사이트 간에 HANA 데이터가 일관되게 유지됩니다.

중요

적절한 기능을 위해 srConnectionChanged() 후크 메서드를 활성화하고 HA 클러스터 설정을 완전히 지원하도록 HanaSR 후크를 구성해야 합니다.

srServiceStateChanged() 후크 메서드의 ChkSrv

HANA 인스턴스가 HANA 인덱스 서버 프로세스 문제를 감지하면 내부 메커니즘을 통해 hdbindexserver 서비스를 중지하고 다시 시작하여 문제에서 복구됩니다.

그러나 특히 매우 큰 HANA 인스턴스의 경우 hdbindexserver 서비스는 이 복구 프로세스의 중지 단계에 시간이 오래 걸릴 수 있습니다. HANA는 이 서비스 성능 저하를 HANA 환경에서 오류로 보고하지만 해당 시간 동안 인스턴스에서 다른 것이 실패하는 경우 데이터 일관성에 위험이 있습니다. 예측할 수 없는 서비스 복구 시간을 개선하기 위해 대신 영향을 받는 전체 HANA 인스턴스를 중지하거나 종료하도록 ChkSrv 후크를 구성할 수 있습니다.

자동 장애 조치가 활성화된 설정(PREFER_SITE_TAKEOVER=true)에서 보조 노드가 정상 상태인 경우 인스턴스 중지가 발생합니다. 그렇지 않으면 인스턴스 복구가 로컬로 수행되지만 강제 로컬 인스턴스 재시작은 프로세스를 가속화합니다.

HANA 인스턴스는 이벤트가 발생할 때 ChkSrv 후크를 호출합니다. 후크 스크립트 ChkSrv.pysrServiceStateChanged() 후크 메서드를 처리하고 이벤트 세부 정보에 적용되는 필터 결과에 따라 작업을 실행합니다. 이렇게 하면 ChkSrv.py 후크 스크립트는 HANA hdbindexserver 프로세스를 식별하고 HANA에 의해 실패한 후 원하는 인스턴스 종료의 일부로 중지되고 재시작할 수 있습니다. 후크 스크립트가 실패로 인해 이벤트가 발생했는지 확인할 때 구성된 작업이 트리거됩니다.

ChkSrv.py 후크 스크립트에는 인덱스 서버 실패 이벤트가 감지될 때 발생하는 작업을 정의하는 여러 옵션이 있습니다.

  • 무시

    이 작업은 구문 분석된 이벤트 및 의사 결정 정보를 전용 로그 파일에 쓰기만 하면 됩니다. 이 기능은 중지 또는 종료 작업을 활성화할 때 후크 스크립트가 수행할 작업을 테스트하고 확인하는 데 유용합니다.

  • 중지

    이 작업은 sapcontrol 명령을 통해 인스턴스에 대해 정상 StopSystem 을 실행합니다.

  • kill

    이 작업은 구성할 수 있는 기본 신호 9를 사용하여HDB kill- <signal> 명령을 실행합니다. 결과는 stop 을 사용할 때와 동일하지만 더 빨라질 수 있습니다.

참고

모든 인덱스 서버 오류는 HANA에 의해 개별적으로 처리됩니다. 모든 단일 indexserver 문제에 대해 동일한 프로세스가 항상 트리거됩니다.

srServiceStateChanged() 후크를 활성화하는 것은 선택 사항입니다.

1.5. SAP HANA 고가용성에 대한 지원 정책

Red Hat은 솔루션의 다음 구성 요소를 지원합니다.

  • SAP 지침에 따라 RHEL에서 SAP HANA를 실행하기 위한 기본 OS 구성
  • RHEL HA 애드온
  • SAP HANA 시스템 복제를 위한 Red Hat HA 솔루션

2장. HA 클러스터 설정 계획

HANA 환경의 HANA 시스템 복제 자동화를 위한 HA 클러스터 구성에 대한 모든 요구 사항이 충족되도록 설정을 신중하게 계획합니다.

2.1. SAP HANA HA용 서브스크립션 및 리포지토리

HA(고가용성) 클러스터의 SAP HANA 솔루션은 전용 리포지토리에서 제공됩니다. 모든 관련 콘텐츠에 액세스하려면 RHEL for SAP Solutions 서브스크립션이 필요합니다. 이 서브스크립션에는 RHEL HighAvailability 리포지토리가 포함됩니다.

  • 고가용성

    RHEL HA 애드온의 콘텐츠는 High Availability라는 리포지토리에 저장됩니다. 리포지토리 ID는 rhel-9-for-<arch>-highavailability-e4s-rpms 로 표시됩니다.

  • SAP 솔루션

    SAP HANA 특정 콘텐츠가 포함된 리포지토리의 이름입니다. 리포지토리 ID는 rhel-9-for-<arch>-sap-solutions-e4s-rpms 로 표시됩니다.

& lt;arch& gt;는 특정 하드웨어 아키텍처를 나타냅니다.

  • x86_64
  • ppc64le

RHEL for SAP Solutions 서브스크립션의 일부로 활성화된 리포지토리 목록의 예:

[root]# dnf repolist
Updating Subscription Management repositories.
repo id                                     repo name
rhel-9-for-x86_64-appstream-e4s-rpms        Red Hat Enterprise Linux 9 for x86_64 - AppStream - Update Services for SAP Solutions (RPMs)
rhel-9-for-x86_64-baseos-e4s-rpms           Red Hat Enterprise Linux 9 for x86_64 - BaseOS - Update Services for SAP Solutions (RPMs)
rhel-9-for-x86_64-highavailability-e4s-rpms Red Hat Enterprise Linux 9 for x86_64 - High Availability - Update Services for SAP Solutions (RPMs)
rhel-9-for-x86_64-sap-netweaver-e4s-rpms    Red Hat Enterprise Linux 9 for x86_64 - SAP NetWeaver - Update Services for SAP Solutions (RPMs)
rhel-9-for-x86_64-sap-solutions-e4s-rpms    Red Hat Enterprise Linux 9 for x86_64 - SAP Solutions - Update Services for SAP Solutions (RPMs)
Copy to Clipboard Toggle word wrap

2.2. OS 요구 사항

OS 수준의 최소 Linux 커널 버전 및 기타 SAP HANA 요구 사항에 대한 정보는 SAP Note 3108302 - SAP HANA DB: Recommended OS Settings for RHEL 9 를 참조하십시오.

RHEL 9 for SAP Solutions 설치에 설명된 대로 호스트 OS를 배포합니다.

루트 권한

HANA 설치 및 클러스터 HA 설정을 위해 root 사용자 또는 모든 sudo 명령을 실행할 수 있는 권한이 있는 사용자가 필요합니다.

2.3. 스토리지 요구사항

SAP HANA 마스터 가이드 에서 SAP HANA 데이터베이스의 크기 조정에 대한 정보를 찾을 수 있습니다.

두 노드 간에 HANA 시스템 복제를 사용하여 SAP HANA 환경을 확장하려면 두 시스템에 HANA 데이터베이스에 대해 동일한 파일 시스템 공간이 있는지 확인해야 합니다. 특정 HANA 구성에 따라 로컬 데이터베이스 백업 파일 및 로그 세그먼트에 필요한 공간을 계획합니다.

2.4. 네트워크 요구 사항

SAP HANA 관리 가이드에서 SAP HANA 네트워크 아키텍처 고려 사항에 대한 정보를 찾을 수 있습니다.

HA 클러스터에서 SAP HANA 시스템 복제 설정의 경우 HANA 네트워크 트래픽과 별도의 클러스터 통신 트래픽에 대한 전용 네트워크 및 연결을 구성하는 것이 좋습니다.

2.5. HA 클러스터 요구 사항

fencing

RHEL HA 애드온을 사용하여 지원되는 HA 클러스터 설정의 경우 각 클러스터 노드에서 펜싱 또는 STONITH 장치를 구성해야 합니다. 사용할 수 있는 펜싱 또는 STONITH 장치는 클러스터가 실행 중인 플랫폼에 따라 다릅니다. 펜싱 에이전트에 대한 권장 사항은 RHEL High Availability Clusters - Fencing/STONITH에 대한 지원 정책을 확인하거나 하드웨어 또는 클라우드 공급자를 참조하여 해당 플랫폼에서 지원되는 차단 장치를 확인합니다.

참고

fence_scsi 또는 fence_mpath 를 펜싱/STONITH 메커니즘으로 사용하려면 HA 클러스터에서 완전히 관리하는 클러스터 노드 간에 공유 스토리지가 필요합니다. SAP 환경에 이러한 공유 디스크 설정이 포함되지 않은 경우 이러한 펜싱 옵션을 사용하는 것은 지원되지 않습니다.

쿼럼

일반적으로 쿼럼 장치는 짝수의 노드가 있는 클러스터에 권장됩니다. 2-노드 클러스터에는 특히 자체적으로 분할 상황을 처리하는 내부 메커니즘이 있습니다. 이 경우 쿼럼 장치는 선택 사항입니다. 쿼럼 장치를 사용하면 클러스터에서 분할 위치에서 유지되는 노드를 보다 효과적으로 확인할 수 있습니다.

쿼럼 장치를 설정하는 옵션은 플랫폼, 인프라 및 구성에 따라 다릅니다.

2.6. SAP HANA 계획

sap-hana-ha 패키지는 SAP HANA 2.0 SPS05 rev 59.04 이상의 설정을 지원하는 결합된 리소스 에이전트를 제공합니다.

HANA 설정을 준비하려면 계획된 환경의 설치 및 구성에 필요한 매개변수 목록을 정의할 수 있습니다.

Expand
표 2.1. 표 2.1: SAP HANA 구성 매개변수 예

매개변수

예시 값

cluster node1 FQDN

node1.example.com

클러스터 노드2 FQDN

node2.example.com

SID

RH1

SAP 인스턴스 번호

02

기본 HANA 사이트 이름

DC1

보조 HANA 사이트 이름

DC2

HANA SYSTEMDB 사용자 암호

<HANA_SYSTEM_PASSWORD>

HANA 관리 사용자

rh1adm

3장. 2-노드 HA 클러스터 설정을 위한 SAP HANA 설치

3.1. 스케일 업 SAP HANA 인스턴스 설치

모든 노드에 동일한 SID 및 인스턴스 번호를 사용하여 HANA 인스턴스를 설치합니다. 인스턴스 설정은 동일해야 합니다.

사전 요구 사항

프로세스

  1. 설치 미디어가 포함된 디렉터리로 이동합니다. 예를 들면 /sapmedia/hana:

    [root]# cd /sapmedia/hana
    Copy to Clipboard Toggle word wrap
  2. 설치 미디어의 압축을 풉니다.

    [root]# unzip IMDB_SERVER20_*.ZIP
    Copy to Clipboard Toggle word wrap
  3. 압축 해제된 설치 미디어의 경로로 이동합니다.

    [root]# cd /sapmedia/hana/DATA_UNITS/HDB_LCM_LINUX_<arch>
    Copy to Clipboard Toggle word wrap
  4. 대화형 설치를 위해 SAP HANA Lifecycle Management 툴(HDBLCM)을 실행합니다.

    [root]# ./hdblcm
    Copy to Clipboard Toggle word wrap

    대화형 모드에서 설치 프로그램에서 시스템 ID(SID), 설치 번호(인스턴스), 데이터 및 로그 볼륨의 파일 시스템 위치 등을 비롯한 모든 필수 정보를 요청합니다.

  5. 모든 노드에서 1-4단계를 반복합니다.

검증

  1. < sid>adm 사용자로 전환합니다.

    [root]# su - rh1adm
    Copy to Clipboard Toggle word wrap
  2. 사용자 < sid>adm:으로 HANA 인스턴스 런타임 정보를 확인합니다.

    rh1adm $ HDB info
    USER          PID     PPID  %CPU        VSZ        RSS COMMAND
    rh1adm      17897    17895   0.0       8972       5248 -sh
    rh1adm      24461    17897   0.0       7524       3840  \_ /bin/sh /usr/sap/RH1/HDB02/HDB info
    rh1adm      24490    24461   0.0      10104       3456      \_ ps fx -U rh1adm -o user:8,pid:8,ppid:8,pcpu:5,vsz:10,rss:10,args
    rh1adm      12924        1   0.0     581456      40072 hdbrsutil  --start --port 34203 --volume 3 --volumesuffix ...
    rh1adm      12284        1   0.0     581376      40000 hdbrsutil  --start --port 34201 --volume 1 --volumesuffix ...
    rh1adm      12193        1   0.0       9028       3028 sapstart pf=/usr/sap/RH1/SYS/profile/RH1_HDB02_node1
    rh1adm      12200    12193   0.0     476372      87652  \_ /usr/sap/RH1/HDB02/node1/trace/hdb.sapRH1_HDB02 -d -nw -f /usr/sap/RH1/HDB02/node1/daemon.ini pf=/usr/sap/RH1/SYS/profile/RH1_HDB02_node1
    rh1adm      12222    12200   9.6   19986956   16126960      \_ hdbnameserver
    rh1adm      12787    12200   0.3    1464980     214468      \_ hdbcompileserver
    rh1adm      12790    12200  94.0    7669612    6970948      \_ hdbpreprocessor
    rh1adm      12828    12200  12.7   19716232   14994012      \_ hdbindexserver -port 34203
    rh1adm      12831    12200   1.1    4995088    1465724      \_ hdbxsengine -port 34207
    rh1adm      13269    12200   0.4    2660096     461776      \_ hdbwebdispatcher
    rh1adm      12016        1   0.0     499404      58336 /usr/sap/RH1/HDB02/exe/sapstartsrv pf=/usr/sap/RH1/SYS/profile/RH1_HDB02_node1
    Copy to Clipboard Toggle word wrap
  3. 또한 상태 ok에 대한 landscapeHostConfiguration.py 출력을 확인할 수 있습니다.

    rh1adm $ cdpy; python landscapeHostConfiguration.py
    | Host  | Host   | Host   | Failover | Remove | Storage   | Storage   | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host   | Host   | Worker  | Worker  |
    |       | Active | Status | Status   | Status | Config    | Actual    | Config   | Actual   | Config     | Actual     | Config      | Actual      | Config | Actual | Config  | Actual  |
    |       |        |        |          |        | Partition | Partition | Group    | Group    | Role       | Role       | Role        | Role        | Roles  | Roles  | Groups  | Groups  |
    | ----- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------ | ------ | ------- | ------- |
    | node1 | yes    | ok     |          |        |         1 |         1 | default  | default  | master 1   | master     | worker      | master      | worker | worker | default | default |
    
    overall host status: ok
    Copy to Clipboard Toggle word wrap
  4. 모든 노드에서 단계를 반복합니다. HANA 프로필에는 < SID>_HDB<instance>_<node > 형식의 개별 노드 이름이 포함되어 있습니다.

3.2. SAP HANA 인스턴스 자동 시작 비활성화

클러스터는 HA 클러스터 설정에서 HANA 인스턴스의 시작 및 종료를 제어합니다. 인스턴스 자체를 자동으로 시작하지 않도록 HANA 인스턴스 프로필을 구성해야 합니다.

프로세스

  1. HANA 인스턴스 프로필 디렉터리로 이동합니다.

    [root]# cd /usr/sap/<SID>/SYS/profile
    Copy to Clipboard Toggle word wrap
  2. 인스턴스 프로필을 편집합니다.

    [root]# vi <SID>_HDB<instance>_<hostname>
    Copy to Clipboard Toggle word wrap

    Autostart0 으로 설정되어 있는지 확인합니다.

  3. HA 클러스터의 일부로 관리할 각 HANA 인스턴스에 대해 1-2단계를 반복합니다.

검증

  • HA 클러스터에서 관리할 모든 HANA 인스턴스의 인스턴스 프로필에 Autostart = 0 이 설정되어 있는지 확인합니다.

    [root]# grep Autostart /usr/sap/RH1/SYS/profile/*
    /usr/sap/RH1/SYS/profile/RH1_HDB02_node1:Autostart = 0
    Copy to Clipboard Toggle word wrap

4장. SAP HANA 시스템 복제 구성

클러스터에서 HANA 인스턴스를 구성하려면 먼저 SAP HANA 시스템 복제를 구성하고 테스트해야 합니다. HANA 시스템 복제 설정에 대한 SAP 지침에 따라 SAP HANA 시스템 복제: 구성 을 따르십시오.

4.1. SAP HANA 시스템 복제 설정의 사전 요구 사항

SAP HANA 구성

SAP HANA는 두 노드에 모두 동일하게 설치 및 구성되어야 합니다.

호스트 이름 확인

두 시스템 모두 두 시스템의 FQDN을 확인할 수 있어야 합니다. DNS 없이 FQDN을 확인할 수 있도록 하려면 /etc/hosts 에 배치할 수 있습니다.

SAP HANA 확장 시스템에 대한 /etc/hosts 항목의 예:

[root]# cat /etc/hosts
...
192.168.0.11 node1.example.com node1
192.168.0.12 node2.example.com node2
Copy to Clipboard Toggle word wrap
참고

호스트 이름 | SAP 도움말 포털 에서는 SAP HANA는 소문자가 있는 호스트 이름만 지원합니다.

SAP HANA log_mode

시스템 복제가 작동하려면 SAP HANA log_mode 변수를 기본값인 normal 으로 설정해야 합니다.

두 노드에서 HANA 관리자 < sid>adm 로 현재 log_mode 를 확인합니다.

rh1adm $ hdbsql -u system -p '<HANA_SYSTEM_PASSWORD>' -i ${TINSTANCE} \
"select value from "SYS"."M_INIFILE_CONTENTS" where key='log_mode'"
VALUE "normal"
1 row selected
Copy to Clipboard Toggle word wrap

4.2. 초기 HANA 인스턴스 백업 수행

계획된 SAP HANA 시스템 복제 설정에 대한 기본 인스턴스에 SAP HANA 인스턴스의 초기 백업이 있는 경우에만 HANA 시스템 복제를 활성화할 수 있습니다.

SAP HANA 도구를 사용하여 백업을 만들고 수동 절차를 건너뛸 수 있습니다. 자세한 내용은 SAP HANA 관리 가이드 - SAP HANA 데이터베이스 백업 및 복구를 참조하십시오.

사전 요구 사항

  • SAP HANA 관리 사용자 < sid>adm 용으로 백업 파일이 저장되는 쓰기 가능한 디렉터리가 있습니다.
  • 백업 파일이 저장되는 파일 시스템에 사용 가능한 충분한 여유 공간이 있습니다.

프로세스

  1. 선택 사항: 적절한 경로에 백업 전용 디렉터리를 생성합니다. 예를 들면 다음과 같습니다.

    [root]# mkdir <path>/<SID>-backup
    Copy to Clipboard Toggle word wrap

    & lt;path >를 초기 백업 파일에 충분한 여유 공간이 있는 시스템의 경로로 바꿉니다.

  2. 예를 들어 대상 디렉터리가 HANA 사용자가 소유하거나 쓸 수 없는 경우 사용자 < sid>adm 으로 백업 경로의 소유자를 변경합니다.

    [root]# chown <sid>adm:sapsys <path>/<SID>-backup
    Copy to Clipboard Toggle word wrap
  3. 나머지 단계에서는 <sid>adm 사용자로 변경합니다.

    [root]# su - <sid>adm
    Copy to Clipboard Toggle word wrap
  4. SYSTEMDB 의 백업을 < sid>adm 사용자로 생성합니다. 백업이 저장될 파일의 경로를 지정합니다. 대상 파일 시스템에 사용 가능한 공간이 충분한지 확인한 다음 백업을 생성합니다.

    rh1adm $ hdbsql -i ${TINSTANCE} -u system -p '<HANA_SYSTEM_PASSWORD>' -d SYSTEMDB \
    "BACKUP DATA USING FILE ('<path>/${SAPSYSTEMNAME}-backup/bkp-SYS')"
    0 rows affected (overall time xx.xxx sec; server time xx.xxx sec)
    Copy to Clipboard Toggle word wrap
    • TINSTANCESAPSYSTEMNAME 은 < sid>adm 사용자 쉘 환경의 일부인 환경 변수입니다. TINSTANCE 는 인스턴스 번호이고 SAPSYSTEMNAME 은. 둘 다 < sid>adm 사용자와 관련된 인스턴스 값으로 자동으로 설정됩니다.
    • & lt;path >를 < sid>adm 사용자에게 쓰기 액세스 권한이 있고 여유 공간이 충분한 경로로 바꿉니다.
  5. 모든 테넌트 데이터베이스의 백업을 < sid>adm 사용자로 생성합니다. 백업이 저장될 파일의 경로를 지정합니다. 대상 파일 시스템에 사용 가능한 공간이 충분한지 확인합니다. 테넌트 DB 백업을 생성합니다.

    rh1adm $ hdbsql -i ${TINSTANCE} -u system -p '<HANA_SYSTEM_PASSWORD>' -d SYSTEMDB \
    "BACKUP DATA FOR ${SAPSYSTEMNAME} USING FILE ('<path>/${SAPSYSTEMNAME}-backup/bkp-${SAPSYSTEMNAME}')"
    0 rows affected (overall time xx.xxx sec; server time xx.xxx sec)
    Copy to Clipboard Toggle word wrap

    & lt;path >를 < sid>adm 사용자에게 쓰기 액세스 권한이 있고 여유 공간이 충분한 경로로 바꿉니다.

검증

  1. 생성된 백업 파일을 나열합니다. 초기 백업을 저장하기 위해 /hana/log/RH1-backup 을 디렉터리로 사용하는 경우를 예로 들 수 있습니다.

    rh1adm $ ls -lh /hana/log/RH1-backup/
    total 7.2G
    -rw-r-----. 1 rh1adm sapsys 156K May  8 08:40 bkp-RH1_databackup_0_1
    -rw-r-----. 1 rh1adm sapsys  81M May  8 08:40 bkp-RH1_databackup_2_1
    -rw-r-----. 1 rh1adm sapsys 3.6G May  8 08:40 bkp-RH1_databackup_3_1
    -rw-r-----. 1 rh1adm sapsys 160K May  8 08:35 bkp-SYS_databackup_0_1
    -rw-r-----. 1 rh1adm sapsys 3.6G May  8 08:35 bkp-SYS_databackup_1_1
    Copy to Clipboard Toggle word wrap
  2. HANA 명령 hdbbackupcheck 를 사용하여 생성한 각 인스턴스 백업 파일의 심각도를 확인합니다.

    rh1adm $ for i in $(ls /hana/log/RH1-backup/*); do hdbbackupcheck $i; done
    ...
    Loaded library 'libhdblivecache'
    Backup '/hana/log/RH1-backup/RH1_databackup_0_1' successfully checked.
    Loaded library 'libhdbcsaccessor'
    ...
    Loaded library 'libhdblivecache'
    Backup '/hana/log/RH1-backup/system_databackup_0_1' successfully checked.
    Loaded library 'libhdbcsaccessor'
    Loaded library 'libhdblivecache'
    Backup '/hana/log/RH1-backup/system_databackup_1_1' successfully checked.
    Copy to Clipboard Toggle word wrap

문제 해결

  • < sid>adm 사용자가 대상 디렉터리에 쓸 수 없기 때문에 백업이 실패합니다.

    * 447: backup could not be completed: [2001003]
    createDirectory(path= '/tmp/RH1-backup/', access= rwxrwxr--, recursive= true):
    Permission denied (rc= 13, 'Permission denied') SQLSTATE: HY000
    Copy to Clipboard Toggle word wrap

    < sid>adm 사용자가 backup 명령에 정의한 대상 디렉터리 내에 파일을 생성할 수 있는지 확인합니다. 예를 들어 절차의 2단계를 사용하여 권한을 수정합니다.

  • 대상 파일 시스템이 공간이 부족하기 때문에 백업이 실패합니다.

    * 447: backup could not be completed: [2110001]
    Generic stream error: $msg$ - , rc=$sysrc$: $sysmsg$.
    Failed to process item 0x00007fc5796e0000 - '<root>/.bkp-RH1_databackup_3_1'
    ((open, mode= W, file_access= rw-r-----, flags= ASYNC|DIRECT|TRUNCATE|UNALIGNED_SIZE,
    size= 4096), factory= (root= '/tmp/RH1-backup/' (root_access= rwxr-x---,
    flags= AUTOCREATE_PATH|DISKFULL_ERROR, usage= DATA_BACKUP, fs= xfs, config=
    (async_write_submit_active=on,async_write_submit_blocks=all,async_read_submit=on,num_submit_queues=1,num_completion_queues=1,size_kernel_io_queue=512,max_parallel_io_requests=64,min_submit_batch_size=16,max_submit_batch_size=64))
    SQLSTATE: HY000
    Copy to Clipboard Toggle word wrap

    대상 디렉터리가 있는 파일 시스템의 사용 가능한 공간을 확인합니다. 파일 시스템 크기를 늘리거나 백업 파일에 사용 가능한 공간이 충분한 다른 경로를 선택합니다.

4.3. 기본 HANA 복제 인스턴스 구성

계획된 시스템 복제 설정의 초기 기본 인스턴스가 될 시스템에서 HANA 시스템 복제를 활성화합니다.

사전 요구 사항

프로세스

  1. 초기 기본 인스턴스가 되는 HANA 인스턴스에서 시스템 복제를 활성화합니다. 첫 번째 또는 기본 노드에서 & lt;sid>adm 로 명령을 실행합니다.

    rh1adm $ hdbnsutil -sr_enable --name=<DC1>
    nameserver is active, proceeding ...
    successfully enabled system as system replication source site
    done.
    Copy to Clipboard Toggle word wrap
    • & lt;dc1& gt;을 기본 HANA 사이트 이름으로 바꿉니다.

검증

  • 시스템 복제 상태를 < sid>adm 으로 확인하고 현재 노드가 mode로 표시되는지 확인합니다. primary, site idsite name 이 기본 인스턴스 사이트 정보로 채워집니다.

    rh1adm $ hdbnsutil -sr_stateConfiguration
    System Replication State
    ~~~~~~~~
    
    mode: primary
    site id: 1
    site name: DC1
    done.
    Copy to Clipboard Toggle word wrap

4.4. 보조 HANA 복제 인스턴스 구성

HANA 시스템 복제 설정을 완료하려면 보조 HANA 인스턴스를 기본 인스턴스에 등록해야 합니다.

사전 요구 사항

  • 기본 인스턴스와 동일한 SID 및 인스턴스 번호를 사용하여 보조 노드에 SAP HANA를 설치했습니다.
  • 클러스터 노드 간에 root ssh 키를 구성했습니다.
  • 보조 노드에서 2개의 터미널을 열었습니다. 하나는 root 사용자용이고 하나는 < sid>adm 사용자용 입니다.

프로세스

  1. 보조 HANA 인스턴스를 중지하고 node2 에서 &lt ;sid>adm 사용자로 실행합니다.

    rh1adm $ HDB stop
    …
    Stop
    OK
    Waiting for stopped instance using: /usr/sap/<SID>/SYS/exe/hdb/sapcontrol -prot NI_HTTP -nr <instance> -function WaitforStopped 600 2
    …
    
    WaitforStopped
    OK
    hdbdaemon is stopped.
    Copy to Clipboard Toggle word wrap
  2. HANA가 시스템 복제 암호화의 키를 저장하는 디렉터리로 변경합니다.

    [root]# cd /usr/sap/<SID>/SYS/global/security/rsecssfs
    Copy to Clipboard Toggle word wrap
  3. HANA 시스템 PKI 파일 SSFS_<SID>.KEY 를 기본 HANA 인스턴스에서 보조 인스턴스로 복사합니다.

    [root]# rsync -av node1:$PWD/key/SSFS_<SID>.KEY key/
    Copy to Clipboard Toggle word wrap
  4. PKI 파일 SSFS_<SID>.DAT 를 기본 HANA 인스턴스에서 보조 인스턴스로 복사합니다.

    [root]# rsync -av node1:$PWD/data/SSFS_<SID>.DAT data/
    Copy to Clipboard Toggle word wrap
  5. < sid>adm 사용자 터미널에서 보조 HANA 인스턴스를 기본 인스턴스에 등록합니다.

    rh1adm $ hdbnsutil -sr_register --remoteHost=node1 \
    --remoteInstance=${TINSTANCE} --replicationMode=sync \
    --operationMode=logreplay --name=<DC2>
    adding site ...
    collecting information ...
    updating local ini files ...
    done.
    Copy to Clipboard Toggle word wrap
    • & lt;dc2& gt;를 보조 HANA 사이트 이름으로 바꿉니다.
    • 시스템 복제의 요구 사항에 따라 replicationModeoperationMode 의 값을 선택합니다.
    • TINSTANCE 는 HANA 인스턴스 프로필을 읽고 사용자 < sid>adm 에 대해 자동으로 설정된 환경 변수입니다. 변수 값은 HANA 인스턴스 번호입니다.
  6. 보조 HANA 인스턴스를 시작합니다. node2 에서 <sid>adm 으로 실행합니다.

    rh1adm $ HDB start
    
    ...
    Starting instance using: /usr/sap/<SID>/SYS/exe/hdb/sapcontrol -prot NI_HTTP -nr <instance> -function StartWait 2700 2
    
    ...
    Copy to Clipboard Toggle word wrap

검증

  1. 시스템 복제가 보조 인스턴스에서 실행 중이고 모드가 5단계에서 hdbnsutil -sr_register 명령에서 replicationMode 매개변수에 사용한 값과 일치하는지 확인합니다. node2에서 & lt;sid>adm 으로 실행합니다.

    rh1adm $ hdbnsutil -sr_stateConfiguration
    
    System Replication State
    ~~~~~~~~
    
    mode: sync
    site id: 2
    site name: DC2
    active primary site: 1
    
    primary masters: node1
    done.
    Copy to Clipboard Toggle word wrap
  2. 두 인스턴스에서 사용자 < sid>adm 으로 HANA 인스턴스의 Python 스크립트 디렉터리로 변경합니다. 이 작업을 수행하는 가장 쉬운 방법은 인스턴스 설치 중에 SAP HANA가 채우는 < sid>adm 사용자 쉘에 내장된 별칭인 cdpy 를 사용하는 것입니다.

    rh1adm $ cdpy
    Copy to Clipboard Toggle word wrap

    이 예제에서는 현재 디렉터리를 /usr/sap/RH1/HDB02/exe/python_support/ 로 변경합니다.

  3. 두 인스턴스에서 설정된 HANA 시스템 복제의 현재 상태를 표시합니다.

    1. 기본 인스턴스에서 시스템 복제 상태는 항상 모든 세부 정보와 함께 표시됩니다.

      rh1adm $ python systemReplicationStatus.py
      |Database |Host     |Port  |Service Name |Volume ID |Site ID |Site Name |Secondary |Secondary |Secondary |Secondary |Secondary     |Replication |Replication |Replication    |Secondary    |
      |         |         |      |             |          |        |          |Host      |Port      |Site ID   |Site Name |Active Status |Mode        |Status      |Status Details |Fully Synced |
      |-------- |-------- |----- |------------ |--------- |------- |--------- |----------|--------- |--------- |--------- |------------- |----------- |----------- |-------------- |------------ |
      |SYSTEMDB |node1    |30001 |nameserver   |        1 |      1 |DC1       |node2     |    30001 |        2 |DC2       |YES           |SYNC        |ACTIVE      |               |        True |
      |RH1      |node1    |30007 |xsengine     |        2 |      1 |DC1       |node2     |    30007 |        2 |DC2       |YES           |SYNC        |ACTIVE      |               |        True |
      |RH1      |node1    |30003 |indexserver  |        3 |      1 |DC1       |node2     |    30003 |        2 |DC2       |YES           |SYNC        |ACTIVE      |               |        True |
      
      status system replication site "2": ACTIVE
      overall system replication status: ACTIVE
      
      Local System Replication State
      ~~~~~~~~~~
      
      mode: PRIMARY
      site id: 1
      site name: DC1
      Copy to Clipboard Toggle word wrap
      • ACTIVE 는 HANA 시스템 복제가 정상 상태이고 완전히 동기화됨을 의미합니다.
      • 시스템 복제가 보조 사이트에서 업데이트되는 동안 SYNCING 이 표시됩니다(예: 보조 인스턴스가 새 기본 인스턴스가 되는 경우).
      • INITIALIZING 은 시스템 복제를 처음 활성화하거나 전체 동기화가 트리거된 후 표시됩니다.
    2. 보조 인스턴스에서 systemReplicationStatus.py 의 출력이 덜 상세합니다.

      rh1adm $ python systemReplicationStatus.py
      this system is either not running or not primary system replication site
      
      Local System Replication State
      ~~~~~~~~~~
      
      mode: SYNC
      site id: 2
      site name: DC2
      active primary site: 1
      primary masters: node1
      Copy to Clipboard Toggle word wrap

4.5. HANA 시스템 복제 테스트

클러스터 설정을 진행하기 전에 HANA 시스템 복제를 철저히 테스트하는 것이 좋습니다. 올바른 시스템 복제 동작을 확인하면 HA 클러스터가 나중에 시스템 복제를 관리할 때 예기치 않은 결과를 방지할 수 있습니다.

다른 테스트의 측정된 시간을 포함하는 클러스터 리소스 구성에서 시간 초과 값을 사용하여 클러스터 리소스 작업에 미리 시간 초과되지 않도록 합니다.

또한 HANA 구성에서 다양한 매개변수 값을 테스트하여 특정 활동이 클러스터 컨트롤 외부에서 수동으로 수행할 때 걸리는 시간을 측정하여 성능을 최적화할 수도 있습니다.

비현실적인 데이터 로드 및 크기로 테스트를 수행합니다.

전체 복제

  • 기본 키와 동기화가 동기화될 때까지 새로 등록된 보조 서비스가 시작된 후 동기화가 얼마나 오래 걸릴 수 있습니까?
  • 동기화 시간을 개선할 수 있는 매개 변수가 있습니까?

연결 손실

  • 다시 동기화될 때까지 기본 인스턴스와 보조 인스턴스 간에 연결이 손실된 후 얼마나 오래 걸릴 수 있습니까?
  • 재연결 및 동기화 시간을 개선할 수 있는 매개 변수가 있습니까?

takeover

  • 주에서 가져온 후 보조 인스턴스를 완전히 사용할 수 있는 기간은 얼마나 됩니까?
  • 일반적인 테이크와 " 핸드셰이크를 사용한 이해"의 시간은 어떻게 됩니까?
  • 사용 시간을 개선할 수 있는 매개 변수가 있습니까?

데이터 일관성

  • 이 작업을 수행한 후 사용자가 만든 데이터가 사용 가능하고 정확합니까?

클라이언트 다시 연결

  • takeover 후 클라이언트가 새 기본 인스턴스에 다시 연결할 수 있습니까?
  • 클라이언트가 인수 후 새 기본에 액세스하는 데 시간이 얼마나 걸리습니까?

1차는 보조가 됨

  • 새 보조 서버로 등록된 후 새 primary와 다시 동기화될 때까지 얼마나 오래 걸리나요?
  • 구성된 경우 클라이언트가 읽기 작업을 위해 새로 등록된 보조 데이터베이스에 액세스할 때까지 시간이 얼마나 걸리나요?

5장. Pacemaker 클러스터 구성

5.1. 기본 클러스터 구성 배포

다음 기본 클러스터 설정은 SAP HANA 시스템 복제를 관리하기 위한 Pacemaker 클러스터 설정을 시작하기 위한 최소 단계를 설명합니다.

복잡한 구성의 설정 및 옵션에 대한 자세한 내용은 RHEL HA 애드온 설명서를 참조하십시오(예: 여러 링크가 있는 고가용성 클러스터 만들기 ).

사전 요구 사항

  • HANA 시스템 복제 환경을 설정하고 제대로 작동하는지 확인했습니다.
  • 이 클러스터의 노드가 될 모든 시스템에 RHEL High Availability 리포지토리를 구성했습니다.
  • 계획된 환경에 따라 펜싱 및 쿼럼 요구 사항을 확인했습니다. 자세한 내용은 HA 클러스터 요구 사항을 참조하십시오.

프로세스

  1. 고가용성 리포지토리에서 Red Hat High Availability Add-On 소프트웨어 패키지를 설치합니다. 모든 클러스터 노드에서 설치를 설치하고 실행할 차단 에이전트를 선택합니다.

    1. 클러스터 패키지 및 모든 차단 에이전트를 설치합니다.

      [root]# dnf install pcs pacemaker fence-agents-all
      Copy to Clipboard Toggle word wrap
    2. 또는 환경에 따라 클러스터 패키지와 특정 차단 에이전트만 설치합니다.

      [root]# dnf install pcs pacemaker fence-agents-<model>
      Copy to Clipboard Toggle word wrap
  2. 모든 클러스터 노드에서 pcsd 서비스를 시작하고 활성화합니다.

    [root]# systemctl enable --now pcsd.service
    Copy to Clipboard Toggle word wrap
  3. 선택 사항: firewalld 서비스를 실행하는 경우 Red Hat High Availability Add-On에 필요한 포트를 활성화합니다. 모든 클러스터 노드에서 이 작업을 실행합니다.

    [root]# firewall-cmd --add-service=high-availability
    [root]# firewall-cmd --runtime-to-permanent
    Copy to Clipboard Toggle word wrap
  4. hacluster 사용자의 암호를 설정합니다. 동일한 암호를 사용하여 각 노드에서 명령을 반복합니다.

    [root]# passwd hacluster
    Copy to Clipboard Toggle word wrap
  5. 클러스터의 각 노드에 대해 사용자 hacluster 를 인증합니다. 첫 번째 노드에서 이 작업을 실행합니다.

    [root]# pcs host auth <node1> <node2>
    Username: hacluster
    Password:
    <node1>: Authorized
    <node2>: Authorized
    Copy to Clipboard Toggle word wrap
    • /etc/hosts 파일에 정의된 대로 FQDN이 있거나 없는 노드 이름을 입력합니다.
    • 프롬프트에 hacluster 사용자 암호를 입력합니다.
  6. 이름으로 클러스터를 생성하고 클러스터 구성원의 이름(예: node1node 2)에 정규화된 호스트 이름을 제공합니다. 이렇게 하면 노드 모두에서 클러스터 구성이 전파되고 클러스터가 시작됩니다. 첫 번째 노드에서 이 명령을 실행합니다.

    [root]# pcs cluster setup <cluster_name> --start <node1> <node2>
    No addresses specified for host 'node1', using 'node1'
    No addresses specified for host 'node2', using 'node2'
    Destroying cluster on hosts: 'node1', 'node2'...
    node2: Successfully destroyed cluster
    node1: Successfully destroyed cluster
    Requesting remove 'pcsd settings' from 'node1', 'node2'
    node1: successful removal of the file 'pcsd settings'
    node2: successful removal of the file 'pcsd settings'
    Sending 'corosync authkey', 'pacemaker authkey' to 'node1', 'node2'
    node1: successful distribution of the file 'corosync authkey'
    node1: successful distribution of the file 'pacemaker authkey'
    node2: successful distribution of the file 'corosync authkey'
    node2: successful distribution of the file 'pacemaker authkey'
    Sending 'corosync.conf' to 'node1', 'node2'
    node1: successful distribution of the file 'corosync.conf'
    node2: successful distribution of the file 'corosync.conf'
    Cluster has been successfully set up.
    Starting cluster on hosts: 'node1', 'node2'...
    Copy to Clipboard Toggle word wrap
  7. 시스템 시작 시 클러스터를 자동으로 시작하여 corosyncpacemaker 서비스를 활성화합니다. 노드를 재시작한 후 클러스터 시작을 수동으로 제어하려면 이 단계를 건너뜁니다. 하나의 노드에서 실행합니다.

    [root]# pcs cluster enable --all
    node1: Cluster Enabled
    node2: Cluster Enabled
    Copy to Clipboard Toggle word wrap

검증

  • 클러스터 상태를 확인합니다. 클러스터 데몬 서비스가 원하는 상태인지 확인합니다.

    [root]# pcs status --full
    Cluster name: node1-node2-cluster
    
    WARNINGS:
    No stonith devices and stonith-enabled is not false
    
    Cluster Status:
     Cluster Summary:
       * Stack: corosync (Pacemaker is running)
       * Current DC: node1 (version ) - partition with quorum * Last updated: * on node1 * Last change: ** by hacluster via hacluster on node1
       * 2 nodes configured
       * 0 resource instances configured
    
    ...
    
    PCSD Status:
      node1: Online
      node2: Online
    
    Daemon Status:
      corosync: active/enabled
      pacemaker: active/enabled
      pcsd: active/enabled
    Copy to Clipboard Toggle word wrap

다음 단계

5.2. 일반 클러스터 속성 구성

리소스의 불필요한 페일오버를 방지하려면 클러스터 리소스 기본값을 조정해야 합니다.

프로세스

  • 클러스터 리소스 기본값을 업데이트하여 리소스의 불필요한 페일오버를 방지합니다. 한 클러스터 노드에서 명령을 실행하여 클러스터 구성에 변경 사항을 적용합니다.

    [root]# pcs resource defaults update \
    resource-stickiness=1000 \
    migration-threshold=5000
    Copy to Clipboard Toggle word wrap
    • resource-stickiness=1000 은 리소스가 실행되는 위치에서 계속 실행되도록 권장합니다. 이렇게 하면 클러스터가 간단한 내부 상태 표시기를 기반으로 리소스를 이동하지 못합니다.
    • migration-threshold=5000 을 사용하면 5000 오류가 발생한 후 노드에서 리소스를 다시 시작할 수 있습니다. 이 제한을 초과하면 오류가 지워질 때까지 노드에서 리소스가 차단됩니다. 이렇게 하면 관리자가 반복된 오류의 원인을 조사하고 카운터를 재설정할 때까지 몇 가지 실패 후 리소스 복구를 수행할 수 있습니다.

검증

  • 리소스 기본값이 설정되어 있는지 확인합니다.

    [root]# pcs resource defaults
    Meta Attrs: build-resource-defaults
      migration-threshold=5000
      resource-stickiness=1000
    Copy to Clipboard Toggle word wrap

5.3. systemd 기반 SAP 시작 프레임워크 구성

systemd 통합은 SAP HANA 2.0 SPS07 버전 70 이상에 대해 RHEL 9에 SAP HANA 설치의 기본 동작입니다. HA 환경에서는 클러스터 설정에 관련된 다양한 systemd 서비스를 통합하기 위해 추가 수정을 적용해야 합니다.

HANA 인스턴스 systemd 서비스를 올바른 순서로 관리하도록 pacemaker systemd 서비스를 구성합니다.

사전 요구 사항

  • systemd 통합을 사용하여 HANA 인스턴스를 설치하고 모든 노드에서 확인합니다. 예를 들면 다음과 같습니다.

    [root]# systemctl list-units --all SAP*
      UNIT              LOAD      ACTIVE   SUB     DESCRIPTION
      SAPRH1_02.service loaded    active   running SAP Instance SAPRH1_02
      SAP.slice         loaded    active   active  SAP Slice
    ...
    Copy to Clipboard Toggle word wrap

프로세스

  1. pacemaker 서비스 드롭인 파일의 /etc/systemd/system/pacemaker.service.d/ 디렉터리를 생성합니다.

    [root]# mkdir /etc/systemd/system/pacemaker.service.d/
    Copy to Clipboard Toggle word wrap
  2. 다음 콘텐츠를 사용하여 pacemaker 서비스의 systemd 드롭인 파일을 생성합니다.

    [root]# cat << EOF > /etc/systemd/system/pacemaker.service.d/00-pacemaker.conf
    [Unit]
    Description=Pacemaker needs the SAP HANA instance service
    Wants=SAP<SID>_<instance>.service
    After=SAP<SID>_<instance>.service
    EOF
    Copy to Clipboard Toggle word wrap
    • &lt ;SID&gt;를 HANA SID로 바꿉니다.
    • &lt ;instance& gt;를 HANA 인스턴스 번호로 바꿉니다.
  3. systemctl 데몬을 다시 로드하여 드롭인 파일을 활성화합니다.

    [root]# systemctl daemon-reload
    Copy to Clipboard Toggle word wrap
  4. 다른 클러스터 노드에서 1~3단계를 반복합니다.

검증

  1. HANA 인스턴스의 systemd 서비스를 확인하고 로드 되었는지 확인합니다.

    [root]# systemctl status SAPRH1_02.service
    ● SAPRH1_02.service - SAP Instance SAPRH1_02
         Loaded: loaded (/etc/systemd/system/SAPRH1_02.service; disabled; preset: disabled)
         Active: active (running) since xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
       Main PID: 5825 (sapstartsrv)
          Tasks: 841
         Memory: 88.6G
            CPU: 4h 50min 2.033s
         CGroup: /SAP.slice/SAPRH1_02.service
                 ├─ 5825 /usr/sap/RH1/HDB02/exe/sapstartsrv pf=/usr/sap/RH1/SYS/profile/RH1_HDB02_node1
                 ├─ 5986 sapstart pf=/usr/sap/RH1/SYS/profile/RH1_HDB02_node1
                 ├─ 5993 /usr/sap/RH1/HDB02/node1/trace/hdb.sapRH1_HDB02 -d -nw -f /usr/sap/RH1/HDB02/node1/daemon.ini pf=/usr/sap/RH1/SYS/profile/RH1_HDB02_node1
    ...
    Copy to Clipboard Toggle word wrap
  2. SAP HANA 인스턴스 서비스가 이제 pacemaker 서비스에 알려져 있는지 확인합니다.

    [root]# systemctl show pacemaker.service | grep SAP
    Wants=SAPRH1_02.service resource-agents-deps.target dbus-broker.service
    After=... SAPRH1_02.service rsyslog.service
    Copy to Clipboard Toggle word wrap

    SAP<SID>_<instance>.serviceAfter=Wants= 목록에 나열되어 있는지 확인합니다.

5.4. SAP HANA HA 구성 요소 설치

Red Hat Enterprise Linux 9의 <arch> - SAP Solutions(RPM) 리포지토리의 sap-hana-ha RPM 패키지는 HANA 시스템 복제 설정을 관리하기 위한 HA 클러스터를 설정하기 위한 리소스 에이전트 및 기타 SAP HANA 특정 구성 요소를 제공합니다.

중요

sap-hana-ha 패키지는 RHEL 9.4 이후만 사용할 수 있습니다. 이전 RHEL 9 릴리스에서 HANA HA에 대한 클러스터를 구성하는 경우 대신 RHEL HA 애드온을 사용하여 SAP HANA scale-Up System Replication 자동화의 지침을 따르십시오.

프로세스

  • 모든 클러스터 노드에 sap-hana-ha 패키지를 설치합니다.

    [root]# dnf install sap-hana-ha
    Copy to Clipboard Toggle word wrap

검증

  • 패키지가 설치되었는지 모든 노드에서 확인합니다.

    [root]# rpm -q sap-hana-ha
    sap-hana-ha-<version>.<release>.noarch
    Copy to Clipboard Toggle word wrap

5.5. srConnectionChanged() 후크 메서드의 HanaSR HA/DR 공급자 구성

SAP HANA 2.0 SPS0 이상을 사용하여 HA 클러스터 설정에서 HANA 인스턴스를 구성하는 경우 클러스터 설정을 진행하기 전에 SAP HANA srConnectionChanged() 후크 메서드를 활성화하고 테스트해야 합니다.

사전 요구 사항

  • sap-hana-ha 패키지가 설치되어 있습니다.
  • 아직 클러스터에서 HANA 인스턴스를 관리하지 않습니다. 그렇지 않으면 유지 관리 절차를 사용하여 SAP HANA 인스턴스 업데이트 프로세스를 사용하여 후크 스크립트 구성 중에 클러스터가 중단되지 않도록 합니다.

프로세스

  1. < sid>adm 사용자로 모든 노드에서 HANA 인스턴스를 중지합니다.

    rh1adm $ HDB stop
    Copy to Clipboard Toggle word wrap
  2. HANA 인스턴스가 완전히 중지되었는지 모든 노드에서 < sid>adm 로 확인합니다.

    rh1adm $ sapcontrol -nr ${TINSTANCE} -function GetProcessList | column -s ',' -t
    ...
    name                  description   dispstatus   textstatus   starttime   elapsedtime   pid
    hdbdaemon             HDB Daemon    GRAY         Stopped                                5381
    Copy to Clipboard Toggle word wrap
    • &lt ;instance& gt;를 HANA 인스턴스 번호로 바꿉니다.
  3. < sid>adm 사용자 쉘에 내장된 명령 alias cdcoc 를 사용하여 < sid>adm 사용자로 HANA 구성 디렉토리로 변경합니다. 이렇게 하면 /hana/shared/<SID>/global/hdb/custom/config/ 경로로 자동 변경됩니다.

    rh1adm $ cdcoc
    Copy to Clipboard Toggle word wrap
  4. SAP HANA 인스턴스의 global.ini 파일을 업데이트하여 HanaSR 후크를 구성합니다. 모든 HANA 인스턴스 노드에서 구성 파일을 편집하고 다음 구성을 추가합니다.

    [ha_dr_provider_hanasr]
    provider = HanaSR
    path = /usr/share/sap-hana-ha/
    execution_order = 1
    
    [trace]
    ha_dr_hanasr = info
    Copy to Clipboard Toggle word wrap

    execution_order1 로 설정하여 HanaSR 후크가 항상 가장 높은 우선 순위로 실행되도록 합니다.

  5. 선택 사항: hdbindexserver 실패에 대한 작업을 수행하기 위해 선택적 ChkSrv 후크를 구성하려면 동시에 global.ini 에 변경 사항을 추가할 수 있습니다. srServiceStateChanged() 후크 메서드의 ChkSrv HA/DR 공급자 구성 의 1 단계를 참조하십시오.

    [ha_dr_provider_hanasr]
    provider = HanaSR
    path = /usr/share/sap-hana-ha/
    execution_order = 1
    
    [ha_dr_provider_chksrv]
    provider = ChkSrv
    path = /usr/share/sap-hana-ha/
    execution_order = 2
    action_on_lost = stop
    
    [trace]
    ha_dr_hanasr = info
    ha_dr_chksrv = info
    Copy to Clipboard Toggle word wrap
  6. root 사용자로 다음 콘텐츠를 사용하여 각 클러스터 노드에 /etc/sudoers.d/20-saphana 파일을 만듭니다. 이러한 명령 권한을 사용하면 < sid>adm 사용자가 HanaSR 후크 실행의 일부로 특정 클러스터 노드 속성을 업데이트할 수 있습니다.

    [root]# visudo -f /etc/sudoers.d/20-saphana
    <sid>adm ALL=(ALL) NOPASSWD: /usr/sbin/crm_attribute -n hana_*
    Defaults:<sid>adm !requiretty
    Copy to Clipboard Toggle word wrap
  7. HA 클러스터를 시작하지 않고 두 클러스터 노드에서 수동으로 HANA 인스턴스를 시작합니다. < sid>adm:로 실행

    rh1adm $ HDB start
    Copy to Clipboard Toggle word wrap

검증

  1. < sid>adm 사용자로 SAP HANA 디렉토리로 변경합니다. 여기서 추적 로그 파일이 저장됩니다. < sid>adm 사용자 쉘에 내장된 alias cdtrace 명령을 사용합니다.

    rh1adm $ cdtrace
    Copy to Clipboard Toggle word wrap
  2. HA/DR 공급자 로드 메시지에서 HANA 이름 서버 서비스 로그를 확인합니다.

    1. HanaSR 공급자만 구성된 경우 다음을 수행합니다.

      rh1adm $ grep -he "loading HA/DR Provider.*" nameserver_*
      loading HA/DR Provider 'HanaSR' from /usr/share/sap-hana-ha/
      Copy to Clipboard Toggle word wrap
    2. 선택적 ChkSrv 공급자도 구현되는 경우:

      rh1adm $ grep -he "loading HA/DR Provider.*" nameserver_*
      loading HA/DR Provider 'ChkSrv' from /usr/share/sap-hana-ha/
      loading HA/DR Provider 'HanaSR' from /usr/share/sap-hana-ha/
      Copy to Clipboard Toggle word wrap
  3. 시스템 보안 로그에서 사용자 rootsudo 명령이 성공적으로 실행되었는지 확인합니다. sudoers 파일이 올바르지 않으면 sudo 명령을 실행하면 오류가 기록됩니다.

    [root]# grep -e 'sudo.*crm_attribute.*' /var/log/secure
     sudo[4267]:  rh1adm : PWD=/hana/shared/RH1/HDB02/node1 ; USER=root ; COMMAND=/usr/sbin/crm_attribute -n hana_rh1_site_srHook_DC2 -v SFAIL -t crm_config -s SAPHanaSR
     sudo[4319]:  rh1adm : PWD=/hana/shared/RH1/HDB02/node1 ; USER=root ; COMMAND=/usr/sbin/crm_attribute -n hana_rh1_site_srHook_DC2 -v SOK -t crm_config -s SAPHanaSR
    Copy to Clipboard Toggle word wrap

    두 노드에서 HANA 인스턴스가 시작된 후 일반적으로 몇 가지 srHook 특성 업데이트가 표시됩니다. 처음에는 기본이 시작된 직후 SFAIL 을 설정하는 것입니다. 현재 여전히 동기화되는 보조 항목과 아직 동기화되지 않기 때문입니다.

    SOK 에 대한 마지막 업데이트는 시스템 복제 상태가 마지막으로 완전히 동기화되도록 변경된 후 HANA 이벤트에 의해 트리거됩니다.

  4. 동시에 완료되지 않은 경우 두 번째 인스턴스에서 1-2 단계를 반복합니다. 3단계의 sudo 로그 메시지는 시스템 복제 이벤트가 전송되는 기본 인스턴스 노드에만 표시됩니다.
  5. 모든 노드에서 클러스터 속성을 확인하고 hana_<sid>_site_srHook_<DC2 > 속성 값이 예상대로 업데이트되었는지 확인합니다.

    [root]# cibadmin --query | grep -e 'SAPHanaSR.*srHook'
            <nvpair id="SAPHanaSR-hana_rh1_site_srHook_DC2" name="hana_rh1_site_srHook_DC2" value="SOK"/>
    Copy to Clipboard Toggle word wrap
    • SOK 는 HANA 시스템 복제가 ACTIVE 상태일 때 설정되며, 이는 설정되고 완전히 동기화됨을 의미합니다.
    • SFAIL 은 시스템 복제가 다른 상태에 있을 때 설정됩니다.

5.6. srServiceStateChanged() 후크 메서드의 ChkSrv HA/DR 공급자 구성

인덱스 서버 프로세스가 실패한 후 HANA 인스턴스를 중지하거나 종료하려면 더 빠른 복구를 위해 후크 ChkSrv 를 구성할 수 있습니다. 이 구성은 선택 사항입니다.

사전 요구 사항

프로세스

  1. HANA 구성 디렉토리로 < sid>adm 사용자로 변경합니다. < sid>adm 사용자 쉘에 내장된 명령 alias cdcoc. 이렇게 하면 /hana/shared/<SID>/global/hdb/custom/config/ 경로로 자동 변경됩니다.

    rh1adm $ cdcoc
    Copy to Clipboard Toggle word wrap
  2. 후크 스크립트를 구성하려면 HANA 인스턴스의 global.ini 파일을 업데이트합니다. 모든 HANA 인스턴스 시스템에서 구성 파일을 편집하고 HanaSR 공급자 정의 외에 다음 콘텐츠를 추가합니다.

    [ha_dr_provider_chksrv]
    provider = ChkSrv
    path = /usr/share/sap-hana-ha/
    execution_order = 2
    action_on_lost = stop
    
    [trace]
    ha_dr_hanasr = info
    ha_dr_chksrv = info
    Copy to Clipboard Toggle word wrap
  3. 선택 사항: HA/DR 공급자를 다시 로드하여 HANA가 실행되는 동안 ChkSrv 공급자를 활성화합니다. 인스턴스가 다운된 동안 후크 스크립트를 구성할 때 HA/DR 공급자가 다음 인스턴스를 시작할 때 자동으로 로드됩니다.

    rh1adm $ hdbnsutil -reloadHADRProviders
    Copy to Clipboard Toggle word wrap

검증

  1. < sid>adm 사용자로 SAP HANA 디렉토리로 변경합니다. 여기서 추적 로그 파일이 저장됩니다. < sid>adm 사용자 쉘에 내장된 alias cdtrace 명령을 사용합니다.

    rh1adm $ cdtrace
    Copy to Clipboard Toggle word wrap
  2. 변경 사항이 로드되었는지 확인합니다.

    rh1adm $ grep -e "loading HA/DR Provider.*ChkSrv.*" nameserver_*
    loading HA/DR Provider 'ChkSrv' from /usr/share/sap-hana-ha/
    Copy to Clipboard Toggle word wrap
  3. 전용 추적 로그 파일이 생성되고 공급자가 올바른 구성 매개변수를 사용하여 로드되었는지 확인합니다.

    rh1adm $ cat nameserver_chksrv.trc
    init called
    ChkSrv.init() version 1.001.1, parameter info: action_on_lost=stop stop_timeout=20 kill_signal=9
    Copy to Clipboard Toggle word wrap

5.7. HANA 클러스터 리소스 생성

클러스터가 HANA 환경의 상태를 수집하고, 인스턴스 상태를 모니터링하고, 필요한 경우 인스턴스를 관리하기 위해 작업을 수행할 수 있도록 SAPHanaTopologySAPHanaController 리소스를 모두 구성해야 합니다.

SAPHanaFilesystem 리소스는 선택 사항이므로 기본 인스턴스의 파일 시스템을 사용할 수 없게 되는 경우 작업 시간을 개선하기 위해 추가할 수 있습니다.

프로세스

  1. SAPHanaTopology 리소스를 복제 리소스로 생성합니다. 즉, 모든 클러스터 노드에서 동시에 실행됩니다.

    [root]# pcs resource create rsc_SAPHanaTop_<SID>_HDB<instance> \
    ocf:heartbeat:SAPHanaTopology \
    SID=<SID> \
    InstanceNumber=<instance> \
    op start timeout=600 \
    op stop timeout=300 \
    op monitor interval=30 timeout=300 \
    clone cln_SAPHanaTop_<SID>_HDB<instance> \
    meta clone-max=2 clone-node-max=1 interleave=true --future
    Copy to Clipboard Toggle word wrap
    • &lt ;SID&gt;를 HANA SID로 바꿉니다.
    • &lt ;instance& gt;를 HANA 인스턴스 번호로 바꿉니다.

      참고

      RHEL 9.3 이후 clone 명령에서 meta 키워드를 사용하지 않고 속성이 기본 리소스에 자동으로 할당되면 사용 중단 경고가 표시됩니다.

      나중에 복제 속성에 대한 meta 키워드가 복제 리소스에 특성을 할당하는 데 필요합니다. 그 때까지 --future 매개변수를 추가하여 이미 이 동작을 적용합니다.

      새 pcs 구문 분석도 복제 메타 속성을 지정할 때 meta 키워드가 필요합니다.

  2. SAPHanaController 리소스를 승격 가능한 복제 리소스로 생성합니다. 즉, 모든 클러스터 노드에서 동시에 실행되지만 하나의 노드에서는 활성 또는 기본 인스턴스로 작동합니다.

    [root]# pcs resource create rsc_SAPHanaCon_<SID>_HDB<instance> \
    ocf:heartbeat:SAPHanaController \
    SID=<SID> \
    InstanceNumber=<instance> \
    PREFER_SITE_TAKEOVER=true \
    DUPLICATE_PRIMARY_TIMEOUT=7200 \
    AUTOMATED_REGISTER=false \
    op stop timeout=3600 \
    op monitor interval=59 role=Promoted timeout=700 \
    op monitor interval=61 role=Unpromoted timeout=700 \
    meta priority=100 \
    promotable cln_SAPHanaCon_<SID>_HDB<instance> \
    meta clone-max=2 clone-node-max=1 interleave=true --future
    Copy to Clipboard Toggle word wrap

    AUTOMATED_REGISTER=false 로 리소스를 생성한 다음 테스트를 통해 올바른 동작 및 데이터 일관성을 확인하여 설정을 완료하는 것이 좋습니다. 자세한 내용은 설정 테스트를 참조하십시오. 매개변수를 true로 설정하여 생성 시 이미 이를 활성화할 수 있습니다.

    자세한 내용은 SAPHanaController 리소스 매개변수를 참조하십시오.

  3. SAPHanaTopology SAPHanaController 리소스가 올바르게 시작하는 데 필요한 HANA 환경 정보를 수집하기 때문에 SAPHanaTopology를 시작해야 합니다. 두 리소스의 올바른 시작 순서를 적용하는 클러스터 제약 조건을 생성합니다.

    [root]# pcs constraint order cln_SAPHanaTop_<SID>_HDB<instance> \
    then cln_SAPHanaCon_<SID>_HDB<instance> symmetrical=false
    Copy to Clipboard Toggle word wrap

    symmetrical=false 설정은 제약 조건이 리소스의 시작 순서에만 영향을 미치지만 중지 순서에는 적용되지 않음을 나타냅니다.

  4. 선택 사항: SAPHanaFilesystem 리소스를 복제 리소스로 생성합니다.

    [root]# pcs resource create rsc_SAPHanaFil_<SID>_HDB<instance> \
    ocf:heartbeat:SAPHanaFilesystem \
    SID=<SID> \
    InstanceNumber=<instance> \
    ON_FAIL_ACTION="fence" \
    op start interval=0 timeout=10 \
    op stop interval=0 timeout=20 \
    op monitor interval=120 timeout=120 \
    clone cln_SAPHanaFil_<SID>_HDB<instance> \
    meta clone-node-max=1 interleave=true --future
    Copy to Clipboard Toggle word wrap

    ON_FAIL_ACTION=fence 를 설정하는 대신 무시 하도록 설정할 수 있습니다. 이는 먼저 기능을 테스트하는 데 유용할 수 있습니다. 리소스는 시스템 로그에 정보를 쓰며, fence 작업을 사용하기 위해 리소스를 활성화할 때 리소스가 원하는 작업을 수행하는지 여부를 조사할 수 있습니다.

검증

  1. SAPHanaTopology 리소스 복제를 검토합니다. 리소스 구성의 예:

    [root]# pcs resource config cln_SAPHanaTop_RH1_HDB02
    Clone: cln_SAPHanaTop_RH1_HDB02
      Meta Attributes: cln_SAPHanaTop_RH1_HDB02-meta_attributes
        clone-max=2
        clone-node-max=1
        interleave=true
      Resource: rsc_SAPHanaTop_RH1_HDB02 (class=ocf provider=heartbeat type=SAPHanaTopology)
        Attributes: rsc_SAPHanaTop_RH1_HDB02-instance_attributes
          InstanceNumber=02
          SID=RH1
        Operations:
          methods: rsc_SAPHanaTop_RH1_HDB02-methods-interval-0s
            interval=0s timeout=5
          monitor: rsc_SAPHanaTop_RH1_HDB02-monitor-interval-30
            interval=30 timeout=300
          reload: rsc_SAPHanaTop_RH1_HDB02-reload-interval-0s
            interval=0s timeout=5
          start: rsc_SAPHanaTop_RH1_HDB02-start-interval-0s
            interval=0s timeout=600
          stop: rsc_SAPHanaTop_RH1_HDB02-stop-interval-0s
            interval=0s timeout=300
    Copy to Clipboard Toggle word wrap
  2. SAPHanaController 리소스 복제를 검토합니다. 리소스 구성의 예:

    [root]# pcs resource config cln_SAPHanaCon_RH1_HDB02
    Clone: cln_SAPHanaCon_RH1_HDB02
      Meta Attributes: cln_SAPHanaCon_RH1_HDB02-meta_attributes
        clone-max=2
        clone-node-max=1
        interleave=true
        promotable=true
      Resource: rsc_SAPHanaCon_RH1_HDB02 (class=ocf provider=heartbeat type=SAPHanaController)
        Attributes: rsc_SAPHanaCon_RH1_HDB02-instance_attributes
          AUTOMATED_REGISTER=false
          DUPLICATE_PRIMARY_TIMEOUT=7200
          InstanceNumber=02
          PREFER_SITE_TAKEOVER=true
          SID=RH1
        Meta Attributes: rsc_SAPHanaCon_RH1_HDB02-meta_attributes
          priority=100
        Operations:
          demote: rsc_SAPHanaCon_RH1_HDB02-demote-interval-0s
            interval=0s timeout=320
          methods: rsc_SAPHanaCon_RH1_HDB02-methods-interval-0s
            interval=0s timeout=5
          monitor: rsc_SAPHanaCon_RH1_HDB02-monitor-interval-59
            interval=59 timeout=700 role=Promoted
          monitor: rsc_SAPHanaCon_RH1_HDB02-monitor-interval-61
            interval=61 timeout=700 role=Unpromoted
          promote: rsc_SAPHanaCon_RH1_HDB02-promote-interval-0s
            interval=0s timeout=900
          reload: rsc_SAPHanaCon_RH1_HDB02-reload-interval-0s
            interval=0s timeout=5
          start: rsc_SAPHanaCon_RH1_HDB02-start-interval-0s
            interval=0s timeout=3600
          stop: rsc_SAPHanaCon_RH1_HDB02-stop-interval-0s
            interval=0s timeout=3600
    Copy to Clipboard Toggle word wrap
  3. 시작 순서 제약 조건이 있는지 확인합니다.

    [root]# pcs constraint order
    Order Constraints:
      start resource 'cln_SAPHanaTop_RH1_HDB02' then start resource 'cln_SAPHanaCon_RH1_HDB02'
        symmetrical=0
    Copy to Clipboard Toggle word wrap
  4. 선택 사항: SAPHanaFilesystem 리소스 복제를 생성한 경우 검토합니다. 리소스 구성의 예:

    [root]# pcs resource config cln_SAPHanaFil_RH1_HDB02
    Clone: cln_SAPHanaFil_RH1_HDB02
      Meta Attributes: cln_SAPHanaFil_RH1_HDB02-meta_attributes
        clone-node-max=1
        interleave=true
      Resource: rsc_SAPHanaFil_RH1_HDB02 (class=ocf provider=heartbeat type=SAPHanaFilesystem)
        Attributes: rsc_SAPHanaFil_RH1_HDB02-instance_attributes
          InstanceNumber=02
          ON_FAIL_ACTION=fence
          SID=RH1
        Operations:
          methods: rsc_SAPHanaFil_RH1_HDB02-methods-interval-0s
            interval=0s timeout=5
          monitor: rsc_SAPHanaFil_RH1_HDB02-monitor-interval-120
            interval=120 timeout=120
          reload: rsc_SAPHanaFil_RH1_HDB02-reload-interval-0s
            interval=0s timeout=5
          start: rsc_SAPHanaFil_RH1_HDB02-start-interval-0
            interval=0 timeout=10
          stop: rsc_SAPHanaFil_RH1_HDB02-stop-interval-0
            interval=0 timeout=20
    Copy to Clipboard Toggle word wrap
  5. 클러스터 상태를 확인합니다. --full 을 사용하여 HANA 리소스에서 업데이트하는 노드 속성을 포함합니다.

    [root]# pcs status --full
    ...
    
    Full List of Resources:
      * Clone Set: cln_SAPHanaTop_RH1_HDB02 [rsc_SAPHanaTop_RH1_HDB02]:
        * rsc_SAPHanaTop_RH1_HDB02  (ocf:heartbeat:SAPHanaTopology):         Started node1
        * rsc_SAPHanaTop_RH1_HDB02  (ocf:heartbeat:SAPHanaTopology):         Started node2
      * Clone Set: cln_SAPHanaCon_RH1_HDB02 [rsc_SAPHanaCon_RH1_HDB02] (promotable):
        * rsc_SAPHanaCon_RH1_HDB02  (ocf:heartbeat:SAPHanaController):       Promoted node1
        * rsc_SAPHanaCon_RH1_HDB02  (ocf:heartbeat:SAPHanaController):       Unpromoted node2
      * Clone Set: cln_SAPHanaFil_RH1_HDB02 [rsc_SAPHanaFil_RH1_HDB02]:
        * rsc_SAPHanaFil_RH1_HDB02  (ocf:heartbeat:SAPHanaFilesystem):       Started node1
        * rsc_SAPHanaFil_RH1_HDB02  (ocf:heartbeat:SAPHanaFilesystem):       Started node2
    
    Node Attributes:
      * Node: node1 (1):
        * hana_rh1_clone_state              : PROMOTED
        * hana_rh1_roles                    : master1:master:worker:master
        * hana_rh1_site                     : DC1
        * hana_rh1_srah                     : -
        * hana_rh1_version                  : 2.00.078.00
        * hana_rh1_vhost                    : node1
        * master-rsc_SAPHanaCon_RH1_HDB02   : 150
      * Node: node2 (2):
        * hana_rh1_clone_state              : DEMOTED
        * hana_rh1_roles                    : master1:master:worker:master
        * hana_rh1_site                     : DC2
        * hana_rh1_srah                     : -
        * hana_rh1_version                  : 2.00.078.00
        * hana_rh1_vhost                    : node2
        * master-rsc_SAPHanaCon_RH1_HDB02   : 100
    
    ...
    Copy to Clipboard Toggle word wrap
참고

리소스 작업에 표시된 시간 초과는 기본값만 권장하며 SAP HANA 환경에 따라 조정할 수 있습니다. 예를 들어 대규모 SAP HANA 데이터베이스는 시작하는 데 시간이 오래 걸릴 수 있으므로 시작 시간 초과를 늘려야 할 수 있습니다.

주의

AUTOMATED_REGISTERtrue 로 설정하면 데이터 손실 또는 손상 위험이 증가할 수 있습니다. 보조 HANA 인스턴스의 데이터가 완전히 동기화되지 않을 때 HA 클러스터에서 가져오기를 트리거하면 새 보조 HANA 인스턴스가 자동으로 등록되면 이 인스턴스에서 데이터가 손실되고 수집이 발생하기 전에 동기화되지 않은 모든 데이터가 손실됩니다.

자세한 내용은 멤버용 SAP 기술 블로그의 문서를 참조하십시오. SAP HANA용 Pacemaker 클러스터 사용 준비 - 2부 - 두 노드의 실패에서 참조하십시오.

5.8. 가상 IP 리소스 생성

현재 실행 중인 클러스터 노드와 독립적으로 기본 HANA 인스턴스에 액세스하도록 SAP 클라이언트에 대한 가상 IP(VIP) 리소스를 구성해야 합니다. 기본 인스턴스가 실행 중인 노드로 자동으로 이동하도록 VIP 리소스를 구성합니다.

VIP 리소스에 필요한 리소스 에이전트는 사용된 플랫폼에 따라 다릅니다. IPaddr2 리소스 에이전트를 사용하여 설정을 시연합니다.

사전 요구 사항

  • 서비스의 가상 IP를 예약했습니다.

프로세스

  1. HA 클러스터가 실행 중인 플랫폼에 따라 가상 IP 주소를 관리하기 위해 적절한 리소스 에이전트를 사용합니다. 사용 중인 리소스 에이전트에 따라 매개변수를 조정합니다. 예를 들어 IPaddr2 에이전트를 사용하여 기본 가상 IP의 클러스터 리소스를 생성합니다.

    [root]# pcs resource create rsc_vip_<SID>_HDB<instance>_primary \
    ocf:heartbeat:IPaddr2 ip=<address> cidr_netmask=<netmask> nic=<device>
    Copy to Clipboard Toggle word wrap
    • &lt ;SID&gt;를 HANA SID로 바꿉니다.
    • &lt ;instance& gt;를 HANA 인스턴스 번호로 바꿉니다.
    • < address > , < netmask > 및 < device >를 기본 가상 IP 주소의 세부 정보로 바꿉니다.
  2. HANA 기본 노드에 SAPHanaController 리소스에 VIP 리소스를 배치하는 클러스터 제약 조건을 생성합니다.

    [root]# pcs constraint colocation add rsc_vip_<SID>_HDB<instance>_primary \
    with promoted cln_SAPHanaCon_<SID>_HDB<instance> 2000
    Copy to Clipboard Toggle word wrap

    제약 조건은 기본 INFINITY 대신 2000 점수를 적용합니다. 이렇게 하면 리소스 종속성이 완화되고 승격된 SAPHanaController 리소스가 없는 경우 가상 IP 리소스가 활성 상태를 유지할 수 있습니다. 이렇게 하면 이 IP 주소에 도달하여 HANA 인스턴스의 상태 정보를 쿼리할 수 있는 SAP Management Console(MMC) 또는 SAP Cryostatscape Management(LaMa)와 같은 도구를 계속 사용할 수 있습니다.

검증

  1. 가상 IP 리소스의 리소스 구성을 확인합니다.

    [root]# pcs resource config rsc_vip_RH1_HDB02_primary
    Resource: rsc_vip_RH1_HDB02_primary (class=ocf provider=heartbeat type=IPaddr2)
      Attributes: rsc_vip_RH1_HDB02_primary-instance_attributes
        cidr_netmask=32
        ip=192.168.1.100
        nic=eth0
      Operations:
        monitor: rsc_vip_RH1_HDB02_primary-monitor-interval-10s
          interval=10s timeout=20s
        start: rsc_vip_RH1_HDB02_primary-start-interval-0s
          interval=0s timeout=20s
        stop: rsc_vip_RH1_HDB02_primary-stop-interval-0s
          interval=0s timeout=20s
    Copy to Clipboard Toggle word wrap
  2. 제약 조건이 올바르게 정의되었는지 확인합니다.

    [root]# pcs constraint colocation
    Colocation Constraints:
      Started resource 'rsc_vip_RH1_HDB02_primary' with Promoted resource 'cln_SAPHanaCon_RH1_HDB02'
        score=2000
    Copy to Clipboard Toggle word wrap

5.9. 보조 (읽기 사용) 가상 IP 주소 추가

Active/Active(읽기 가능) 보조 설정을 지원하려면 보조 SAP HANA 인스턴스에 대한 클라이언트 액세스를 제공하기 위해 두 번째 가상 IP를 추가해야 합니다.

두 번째 가상 IP가 항상 정상 SAP HANA 인스턴스와 연결되도록 추가 규칙을 구성하여 클라이언트 액세스 및 가용성을 극대화합니다.

  • 정상적인 작업

    기본 및 보조 SAP HANA 인스턴스가 모두 활성 상태이고 복제가 동기화되면 두 번째 가상 IP가 보조 노드에 할당됩니다.

  • 보조를 사용할 수 없거나 동기화되지 않음

    보조 인스턴스가 다운되거나 복제가 동기화되지 않으면 가상 IP가 기본 노드로 이동합니다. 시스템 복제가 동기화되는 즉시 보조 노드로 자동 반환됩니다.

  • 장애 조치 시나리오

    클러스터가 인수를 트리거하는 경우 가상 IP는 동일한 노드에 유지됩니다. 이전 기본 노드가 보조 역할을 인수하고 복제가 다시 동기화되면 이 VIP는 그에 따라 이동합니다.

사전 요구 사항

  • 시스템 복제를 위해 보조 SAP HANA 인스턴스를 기본 에 등록할 때 operationMode=logreplay_readaccess 를 설정합니다.

프로세스

  1. HA 클러스터가 실행 중인 플랫폼에 따라 가상 IP 주소를 관리하기 위해 적절한 리소스 에이전트를 사용합니다. 사용 중인 리소스 에이전트에 따라 매개변수를 조정합니다. 보조 가상 IP의 클러스터 리소스(예: IPaddr2 에이전트 사용)를 생성합니다.

    [root]# pcs resource create rsc_vip_<SID>_HDB<instance>_readonly \
    ocf:heartbeat:IPaddr2 ip=<address> cidr_netmask=<netmask> nic=<device>
    Copy to Clipboard Toggle word wrap
    • &lt ;SID&gt;를 HANA SID로 바꿉니다.
    • &lt ;instance& gt;를 HANA 인스턴스 번호로 바꿉니다.
    • < address > , < netmask > 및 < device >를 읽기 전용 보조 가상 IP 주소의 세부 정보로 바꿉니다.
  2. 위치 제약 조건 규칙을 생성하여 일반 작업 중에 보조 가상 IP가 보조 인스턴스에 할당되도록 합니다.

    [root]# pcs constraint location rsc_vip_<SID>_HDB<instance>_readonly \
    rule score=INFINITY master-rsc_SAPHanaCon_<SID>_HDB<instance> eq 100 \
    and hana_<sid>_clone_state eq DEMOTED
    Copy to Clipboard Toggle word wrap
    • &lt ;SID&gt;를 HANA SID로 바꿉니다.
    • & lt;sid& gt;를 소문자 HANA SID로 바꿉니다.
    • &lt ;instance& gt;를 HANA 인스턴스 번호로 바꿉니다.
  3. 위치 제약 조건 규칙을 생성하여 필요한 경우 보조 가상 IP가 기본 인스턴스에서 대안으로 실행되는지 확인합니다.

    [root]# pcs constraint location rsc_vip_<SID>_HDB<instance>_readonly \
    rule score=2000 master-rsc_SAPHanaCon_<SID>_HDB<instance> eq 150 \
    and hana_<sid>_clone_state eq PROMOTED
    Copy to Clipboard Toggle word wrap

검증

  • 제약 조건이 클러스터 구성의 일부인지 확인합니다.

    [root]#  pcs constraint location
    Location Constraints:
      resource 'rsc_vip_RH1_HDB02_readonly'
        Rules:
          Rule: boolean-op=and score=INFINITY
            Expression: master-rsc_SAPHanaCon_RH1_HDB02 eq 100
            Expression: hana_rh1_clone_state eq DEMOTED
      resource 'rsc_vip_RH1_HDB02_readonly'
        Rules:
          Rule: boolean-op=and score=2000
            Expression: master-rsc_SAPHanaCon_RH1_HDB02 eq 150
            Expression: hana_rh1_clone_state eq PROMOTED
    Copy to Clipboard Toggle word wrap

6장. 설정 테스트

프로덕션 워크로드에 대해 활성화하기 전에 새 HANA HA 클러스터를 철저히 테스트합니다.

특정 요구 사항을 사용하여 기본 예제 테스트 사례를 개선합니다.

6.1. 시스템 복제 상태 변경 감지

HanaSR HA/DR 공급자의 올바른 기능을 테스트하려면 시스템 복제를 중단할 때 로그 및 클러스터 속성의 동기화 상태 정보를 모니터링해야 합니다.

이 테스트에서는 시스템 복제 상태를 모니터링하고 로그 메시지를 확인하는 데 기본 인스턴스가 사용됩니다. 보조 인스턴스는 보조 인스턴스 indexserver 프로세스를 중지하여 복제 문제를 시뮬레이션하는 반면 기본 인스턴스는 완전히 그대로 유지됩니다.

사전 요구 사항

  • 필수 HanaSR HA/DR 공급자를 구성했습니다.
  • HANA 인스턴스는 모든 클러스터 노드에서 정상 상태가 되고 시스템 복제가 동기화되어 있습니다.

프로세스

  1. 사용자 & lt;sid>adm기본 인스턴스의 HANA Python 디렉터리로 이동하여 현재 시스템 복제 상태를 확인합니다. 이 값이 ACTIVE 이고 완전히 동기화되었는지 확인합니다.

    rh1adm $ cdpy; python systemReplicationStatus.py
    Copy to Clipboard Toggle word wrap
  2. 보조 노드의 특성 요약에서 srHooksrPoll 클러스터 속성이 모두 SOK 인지 확인합니다. 별도의 터미널의 모든 노드에서 root 사용자로 이 명령을 실행하여 속성 변경 사항을 추적합니다.

    [root]# watch SAPHanaSR-showAttr
    ...
    Site lpt        lss mns   opMode    srHook srMode srPoll srr
    -------------------------------------------------------------
    DC2  10         4   node2 logreplay SOK    sync   SOK    S
    DC1  1745833771 4   node1 logreplay PRIM   sync   PRIM   P
    ...
    Copy to Clipboard Toggle word wrap

    watch 명령을 사용하여 기본 간격인 2초에 루프에서 다음 명령을 실행합니다.

  3. 보조 인스턴스에서 hdbindexserver 프로세스의 프로세스 ID(PID)를 가져옵니다(예: 사용자 < sid>adm:)로HDB 정보 출력의 PID 열에서 가져옵니다.

    rh1adm $ HDB info
    Copy to Clipboard Toggle word wrap
  4. 보조 인스턴스에서 STOP 신호를 프로세스로 전송하여 중단 hdbindexserver 프로세스를 시뮬레이션합니다. 이렇게 하면 프로세스가 중지되고 노드 간에 인스턴스가 통신 및 동기화되지 않습니다. 주에서 완료되면 결과가 동일하지 않으므로 보조 인스턴스에서 이 작업을 실행해야 합니다.

    rh1adm $ kill -STOP <PID>
    Copy to Clipboard Toggle word wrap

검증

  1. 기본 인스턴스에서 변경 사항에 대한 시스템 복제 상태를 확인합니다.

    rh1adm $ cdpy; watch python systemReplicationStatus.py
    ...
    |Database |Host  |Port  |Service Name |...|Secondary     |Replication |Replication |Replication                   |Secondary    |
    |         |      |      |             |...|Active Status |Mode        |Status      |Status Details                |Fully Synced |
    |-------- |----- |----- |------------ |...|------------- |----------- |----------- |----------------------------- |------------ |
    |SYSTEMDB |node1 |30201 |nameserver   |...|YES           |SYNC        |ACTIVE      |                              |        True |
    |RH1      |node1 |30207 |xsengine     |...|YES           |SYNC        |ACTIVE      |                              |        True |
    |RH1      |node1 |30203 |indexserver  |...|YES           |SYNC        |ERROR       |Log shipping timeout occurred |       False |
    
    status system replication site "2": ERROR
    overall system replication status: ERROR
    
    ...
    Copy to Clipboard Toggle word wrap

    복제 상태는 약간 후에 indexserver 서비스에 대해 ERROR 로 변경됩니다. 유휴 인스턴스에 응답하는 데 시간이 걸릴 수 있습니다. 1분 이상 기다립니다.

  2. 기본 인스턴스에서 < sid>adm 사용자로 관련 메시지에 대한 HANA 네임서버 로그를 확인합니다.

    rh1adm $ cdtrace; grep -he 'HanaSR.srConnectionChanged.*' nameserver_*
    ha_dr_provider   PythonProxyImpl.cpp(01113) : calling HA/DR provider HanaSR.hookDRConnectionChanged(hostname=node1, port=34203, volume=3, service_name=indexserver, database=RH1, status=11, database_status=11, system_status=11, timestamp=*****, is_in_sync=0, system_is_in_sync=0, reason=, siteName=DC2)
    ha_dr_HanaSR     HanaSR.py(00056) : HanaSR 1.001.1 HanaSR.srConnectionChanged method called with Dict={'hostname': 'node1', 'port': '34203', 'volume': 3, 'service_name': 'indexserver', 'database': 'RH1', 'status': 11, 'database_status': 11, 'system_status': 11, 'timestamp': '*****', 'is_in_sync': False, 'system_is_in_sync': False, 'reason': '', 'siteName': 'DC2'}
    ha_dr_HanaSR     HanaSR.py(00065) : HanaSR HanaSR.srConnectionChanged system_status=11 SID=RH1 in_sync=False reason=
    ha_dr_HanaSR     HanaSR.py(00091) : HanaSR.srConnectionChanged() CALLING CRM: <sudo /usr/sbin/crm_attribute -n hana_rh1_site_srHook_DC2  -v SFAIL -t crm_config -s SAPHanaSR> ret_code=0
    Copy to Clipboard Toggle word wrap

    이름 서버 로그에는 세부 정보와 함께 HANA가 트리거하는 이벤트가 포함되어 있습니다. 또한 HanaSR 후크 스크립트에서 srHook 클러스터 속성을 업데이트하기 위해 실행하는 sudo 명령이 포함되어 있습니다.

  3. 시스템 복제 상태인 srHooksrPoll 의 클러스터 속성이 모두 보조 항목의 SFAIL 상태를 표시하는지 확인합니다. 모든 노드에서 root 사용자로 실행하거나 절차 3단계에서 open 터미널을 사용하여 변경 사항을 확인합니다.

    [root]# SAPHanaSR-showAttr
    ...
    Site lpt        lss mns   opMode    srHook srMode srPoll srr
    -------------------------------------------------------------
    DC2  10         4   node2 logreplay SFAIL  sync   SFAIL  S
    DC1  1745833771 4   node1 logreplay PRIM   sync   PRIM   P
    ...
    Copy to Clipboard Toggle word wrap
  4. 보조 인스턴스에서 이전에 고정 hdbindexserver PID 를 차단 해제하여 다시 활성화합니다.

    rh1adm $ kill -CONT <PID>
    Copy to Clipboard Toggle word wrap
  5. 1~3단계를 반복하여 시스템 복제가 약간 후에 완전히 복구되는지 확인합니다. 리소스가 계속 실행 중인 상태로 유지되므로 이 테스트 중에 클러스터는 작업을 트리거하지 않습니다.

6.2. 인덱스 서버 충돌 복구 트리거

hdbindexserver 프로세스의 충돌을 시뮬레이션하여 ChkSrv HA/DR 공급자의 기능을 테스트합니다. 기본 또는 보조 인스턴스에서 이 작업을 실행할 수 있습니다. 정확한 복구 작업은 전체 구성에 따라 달라집니다.

사전 요구 사항

  • ChkSrv HA/DR 공급자를 구성했습니다. 이 선택적 후크를 설정하지 않은 경우 이 테스트를 건너뜁니다.
  • HANA 인스턴스에는 정상 HANA 시스템 복제가 있습니다.
  • 클러스터 상태에 오류가 없습니다.

프로세스

  1. 별도의 터미널을 사용하여 HANA 인스턴스 프로세스를 사용자 < sid>adm:으로 모니터링합니다.

    rh1adm $ watch "sapcontrol -nr ${TINSTANCE} -function GetProcessList | column -s ',' -t"
    Copy to Clipboard Toggle word wrap
  2. 다른 터미널에서 hdbindexserver 프로세스를 종료합니다.

    rh1adm $ kill <PID>
    Copy to Clipboard Toggle word wrap

검증

  1. 동일한 인스턴스에서 전용 HANA 추적 로그를 확인하고 < sid>adm :과 같이 이벤트 및 관련 작업을 식별합니다.

    rh1adm $ cdtrace; less nameserver_chksrv.trc
    ...
    ChkSrv srServiceStateChanged method called with SAPSYSTEMNAME=RH1
    srv:indexserver-30203-stopping-yes db:RH1-3-yes daem:yes
    LOST: indexserver event looks like a lost indexserver (status=stopping)
    LOST: stop instance. action_on_lost=stop
    ChkSrv version 1.001.1. Method srServiceStateChanged method called.
    ...
    Copy to Clipboard Toggle word wrap
  2. root 사용자로 리소스 실패 정보의 클러스터 상태를 확인합니다.

    [root]# pcs status --full
    ...
    
    Failed Resource Actions:
      * rsc_SAPHanaCon_RH1_HDB02_start_0 on node1 'not running' (7): call=61, status='complete', ...
    
    ...
    Copy to Clipboard Toggle word wrap
  3. root 사용자로 클러스터 측의 관련 작업의 시스템 로그를 확인합니다.

    [root]# grep rsc_SAPHanaCon_RH1_HDB02 /var/log/messages
    ...
    SAPHanaController(rsc_SAPHanaCon_RH1_HDB02)[149199]: INFO: ##-2-## DEC: PRIMDEFECT (in DEMOTED status)
    SAPHanaController(rsc_SAPHanaCon_RH1_HDB02)[149206]: INFO: ##-2-## RA ==== end action monitor_clone with rc=7 (1.2.7) (3s; times=0m0.051s 0m0.079s 0m1.325s 0m1.137s)====
    pacemaker-controld[1694]: notice: Result of monitor operation for rsc_SAPHanaCon_RH1_HDB02 on node1: not running
    pacemaker-controld[1694]: notice: Transition 142 action 18 (rsc_SAPHanaCon_RH1_HDB02_monitor_61000 on node1): expected 'ok' but got 'not running'
    pacemaker-attrd[1692]: notice: Setting last-failure-rsc_SAPHanaCon_RH1_HDB02#monitor_61000[node1] in instance_attributes: (unset) -> 1746703980
    pacemaker-attrd[1692]: notice: Setting fail-count-rsc_SAPHanaCon_RH1_HDB02#monitor_61000[node1] in instance_attributes: (unset) -> 1
    pacemaker-attrd[1692]: notice: Setting master-rsc_SAPHanaCon_RH1_HDB02[node2] in instance_attributes: 100 -> 145
    pacemaker-schedulerd[1693]: warning: Unexpected result (not running) was recorded for monitor of rsc_SAPHanaCon_RH1_HDB02:0 on node1 at ...
    pacemaker-schedulerd[1693]: notice: Actions: Recover    rsc_SAPHanaCon_RH1_HDB02:0     (             Unpromoted node1 )
    pacemaker-controld[1694]: notice: Initiating monitor operation rsc_SAPHanaCon_RH1_HDB02_monitor_59000 on node2
    pacemaker-controld[1694]: notice: Initiating stop operation rsc_SAPHanaCon_RH1_HDB02_stop_0 locally on node1
    pacemaker-controld[1694]: notice: Requesting local execution of stop operation for rsc_SAPHanaCon_RH1_HDB02 on node1
    ...
    Copy to Clipboard Toggle word wrap

    다음 SAPHanaController 리소스 모니터는 예기치 않게 중지된 HANA 인스턴스를 실패로 보고하고 구성에 따라 복구 단계를 시작합니다. PREFER_SITE_TAKEOVER 가 활성화되고 기본 인스턴스에서 테스트가 실행된 경우 HANA가 보조 인스턴스로 복구됩니다.

다음 단계

  • 이전 테스트에서 있을 수 있는 클러스터의 실패 알림을 지웁니다. 자세한 내용은 실패 기록 정리를 참조하십시오.
  • 구성에 따라 중지된 이전 기본 HANA 인스턴스를 수동으로 다시 등록하고 HANA 툴을 사용하여 시작합니다. 자세한 내용은 takeover 후 이전 기본 등록을 참조하십시오.

6.3. 클러스터 명령을 사용하여 HANA 인수 트리거

cluster 명령을 사용하여 승격된 리소스를 다른 노드로 이동하고 기본 인스턴스를 보조 인스턴스로 수동으로 테스트할 수 있습니다.

사전 요구 사항

  • HANA 인스턴스에는 정상 HANA 시스템 복제가 있습니다.
  • 클러스터 상태에 오류가 없습니다.

프로세스

  • 기본 인스턴스를 보조 노드로 전환합니다. 모든 노드에서 root 사용자로 클러스터 명령을 실행합니다.

    [root]# pcs resource move cln_SAPHanaCon_<SID>_HDB<instance>
    Location constraint to move resource 'cln_SAPHanaCon_RH1_HDB02' has been created
    Waiting for the cluster to apply configuration changes...
    Location constraint created to move resource 'cln_SAPHanaCon_RH1_HDB02' has been removed
    Waiting for the cluster to apply configuration changes...
    resource 'cln_SAPHanaCon_RH1_HDB02' is promoted on node 'node2'
    Copy to Clipboard Toggle word wrap

검증

  • 이제 SAPHanaController 리소스가 다른 노드에서 승격되었는지 확인합니다.

    [root]# pcs status --full
    ...
      * Clone Set: cln_SAPHanaCon_RH1_HDB02 [rsc_SAPHanaCon_RH1_HDB02] (promotable):
        * rsc_SAPHanaCon_RH1_HDB02       (ocf:heartbeat:SAPHanaController):       Promoted node2
        * rsc_SAPHanaCon_RH1_HDB02       (ocf:heartbeat:SAPHanaController):       Stopped
    ...
    Copy to Clipboard Toggle word wrap

    이전 기본 인스턴스의 상태는 SAPHanaController 리소스의 AUTOMATED_REGISTER 매개 변수에 따라 다릅니다. AUTOMATED_REGISTERfalse 인 경우 수동 조작까지 인스턴스가 중지됩니다. 그렇지 않으면 인스턴스가 자동으로 다시 시작되고 새 보조 인스턴스로 다시 등록합니다.

다음 단계

  • 이전 테스트에서 있을 수 있는 클러스터의 실패 알림을 지웁니다. 자세한 내용은 실패 기록 정리를 참조하십시오.
  • 구성에 따라 중지된 이전 기본 HANA 인스턴스를 수동으로 다시 등록하고 HANA 툴을 사용하여 시작합니다. 자세한 내용은 takeover 후 이전 기본 등록을 참조하십시오.

6.4. SAPHanaFilesystem 실패 작업 트리거

모니터링된 디렉터리에 대한 쓰기 액세스를 차단하여 SAPHanaFilesystem 리소스의 올바른 동작을 테스트합니다. 두 인스턴스에서 모두 테스트할 수 있습니다. 기본 인스턴스만 실패 및 복구 작업을 트리거합니다. 보조 노드에서 리소스는 작업을 트리거하지 않습니다.

사전 요구 사항

  • SAPHanaFilesystem 리소스를 구성했습니다. 이 선택적 리소스를 구성하지 않은 경우 이 테스트를 건너뜁니다.

프로세스

  1. SAPHanaFilesystem 리소스에서 읽기 및 쓰기 파일 시스템 액세스를 테스트하는 데 사용하는 숨겨진 디렉터리로 이동합니다.

    [root]# cd /hana/shared/<SID>/.heartbeat_SAPHanaFilesystem/<node>
    Copy to Clipboard Toggle word wrap
  2. 기존 테스트 파일을 변경할 수 없도록 설정하여 리소스 모니터의 쓰기 액세스를 방지합니다.

    [root]# chattr +i test
    Copy to Clipboard Toggle word wrap
  3. 시뮬레이션된 실패 중에 동작을 확인합니다.

    1. 리소스 작업이 무시 로 설정된 경우 관련 로그 메시지의 /var/log/messages 파일을 확인할 수 있습니다.

      [root]# grep ON_FAIL_ACTION /var/log/messages
      ... node1 SAPHanaFilesystem(rsc_SAPHanaFil_RH1_HDB02)[715184]: INFO: -2- RA monitor() ON_FAIL_ACTION=ignore => ignore FS error, do not create poison pill file
      Copy to Clipboard Toggle word wrap
    2. 리소스 작업이 fence 로 설정된 경우 차단 동작을 확인할 수 있습니다.

      [root]# pcs status --full
      ...
      
      Failed Resource Actions:
        * rsc_SAPHanaFil_RH1_HDB02_stop_0 on node1 'error' (1): ...
      
      Pending Fencing Actions:
        * reboot of node1 pending: client=pacemaker-controld.1694, origin=node2
      Copy to Clipboard Toggle word wrap
  4. 테스트 후 이 차단기를 다시 제거해야 합니다. 노드가 펜싱된 경우 노드가 다시 실행된 후 이 작업을 수행합니다.

    [root]# chattr -i test
    Copy to Clipboard Toggle word wrap

다음 단계

  • 이전 테스트에서 있을 수 있는 클러스터의 실패 알림을 지웁니다. 자세한 내용은 실패 기록 정리를 참조하십시오.
  • 구성에 따라 중지된 이전 기본 HANA 인스턴스를 수동으로 다시 등록하고 HANA 툴을 사용하여 시작합니다. 자세한 내용은 takeover 후 이전 기본 등록을 참조하십시오.

6.5. 기본 인스턴스로 노드 충돌

HANA 클러스터 리소스의 동작을 테스트하기 위해 기본 인스턴스가 실행 중인 클러스터 노드의 충돌을 시뮬레이션합니다.

사전 요구 사항

  • HANA 인스턴스에는 정상 HANA 시스템 복제가 있습니다.
  • 클러스터 상태에 오류가 없습니다.

프로세스

  • 기본 노드에서 충돌을 트리거합니다. 이 명령을 실행하면 추가 경고 없이 즉시 노드가 중단됩니다.

    [root]# echo c > /proc/sysrq-trigger
    Copy to Clipboard Toggle word wrap

검증

  • 보조 노드의 클러스터는 기본 노드를 펜싱합니다.

    [root]# pcs status --full
    ...
    Pending Fencing Actions:
      * reboot of node1 pending: client=pacemaker-controld.1685, origin=node2
    ...
    Copy to Clipboard Toggle word wrap
  • 보조를 인수하고 새 기본 설정으로 승격합니다.
  • 펜싱 및 SAPHanaController 리소스 구성에 따라 펜싱 기본 노드가 복구됩니다.

다음 단계

  • 이전 테스트에서 있을 수 있는 클러스터의 실패 알림을 지웁니다. 자세한 내용은 실패 기록 정리를 참조하십시오.
  • 구성에 따라 중지된 이전 기본 HANA 인스턴스를 수동으로 다시 등록하고 HANA 툴을 사용하여 시작합니다. 자세한 내용은 takeover 후 이전 기본 등록을 참조하십시오.

6.6. 보조 인스턴스로 노드 충돌

HANA 클러스터 리소스의 동작을 테스트하기 위해 보조 인스턴스가 실행 중인 클러스터 노드의 충돌을 시뮬레이션합니다.

프로세스

  • 보조 노드에서 충돌을 트리거합니다. 이 명령을 실행하면 추가 경고 없이 즉시 노드가 중단됩니다.

    [root]# echo c > /proc/sysrq-trigger
    Copy to Clipboard Toggle word wrap

검증

  • 기본 노드의 클러스터는 보조 노드를 펜싱합니다.

    [root]# pcs status --full
    ...
    Pending Fencing Actions:
      * reboot of node2 pending: client=pacemaker-controld.1694, origin=node1
    ...
    Copy to Clipboard Toggle word wrap
  • 기본 인스턴스는 보조 노드를 재시작하고 복구하는 동안 계속 실행됩니다. 펜싱된 노드 복구는 펜싱 구성에 따라 다릅니다.

다음 단계

  • 이전 테스트에서 있을 수 있는 클러스터의 실패 알림을 지웁니다. 자세한 내용은 실패 기록 정리를 참조하십시오.

6.7. SAP 명령을 사용하여 기본 인스턴스 중지

HANA 명령을 사용하여 클러스터 외부에서 기본 HANA 인스턴스를 관리할 때 클러스터의 동작을 테스트합니다.

클러스터에서 HANA 명령 실행을 인식하지 못하므로 오류로 변경 사항을 감지하고 구성된 복구 작업을 트리거합니다.

사전 요구 사항

  • HANA 인스턴스에는 정상 HANA 시스템 복제가 있습니다.
  • 클러스터 상태에 오류가 없습니다.

프로세스

  • 클러스터 외부의 < sid>adm 사용자로 기본 인스턴스를 중지합니다.

    rh1adm $ HDB stop
    Copy to Clipboard Toggle word wrap

검증

  • 클러스터에서 중지된 인스턴스를 실패로 확인하고 기본 인스턴스의 복구를 시작합니다.

    [root]# pcs status --full
    ...
    Migration Summary:
      * Node: node1 (1):
        * rsc_SAPHanaCon_RH1_HDB02: migration-threshold=5000 fail-count=1 last-failure=...
    
    Failed Resource Actions:
      * rsc_SAPHanaCon_RH1_HDB02_monitor_61000 on node1 'not running' ...
    Copy to Clipboard Toggle word wrap

    SAPHanaController 리소스에서 PREFER_SITE_TAKEOVERAUTOMATED_REGISTER 매개변수를 모두 구성 및 활성화하면 클러스터는 HANA가 보조 인스턴스에 대한 복구를 트리거하고 새 보조로 실패한 기본 항목을 자동으로 등록합니다. 그렇지 않으면 구성에 따라 실패한 기본 설정을 복구합니다.

다음 단계

  • 이전 테스트에서 있을 수 있는 클러스터의 실패 알림을 지웁니다. 자세한 내용은 실패 기록 정리를 참조하십시오.
  • 구성에 따라 중지된 이전 기본 HANA 인스턴스를 수동으로 다시 등록하고 HANA 툴을 사용하여 시작합니다. 자세한 내용은 takeover 후 이전 기본 등록을 참조하십시오.

6.8. SAP 명령을 사용하여 보조 인스턴스 중지

HANA 명령을 사용하여 클러스터 외부에서 보조 HANA 인스턴스를 관리할 때 클러스터의 동작을 테스트합니다.

클러스터에서 HANA 명령 실행을 인식하지 못하므로 오류로 변경 사항을 감지하고 구성된 복구 작업을 트리거합니다.

사전 요구 사항

  • 클러스터 상태에 오류가 없습니다.

프로세스

  • 클러스터 외부의 < sid>adm 사용자로 보조 인스턴스를 중지합니다.

    rh1adm $ HDB stop
    Copy to Clipboard Toggle word wrap

검증

  • 클러스터에서 중지된 인스턴스를 실패로 확인하고 보조를 복구합니다.

    [root]# pcs status --full
    ...
    Migration Summary:
      * Node: node2 (2):
        * rsc_SAPHanaCon_RH1_HDB02: migration-threshold=5000 fail-count=1 last-failure=...
    
    Failed Resource Actions:
      * rsc_SAPHanaCon_RH1_HDB02_monitor_61000 on node2 'not running' ...
    Copy to Clipboard Toggle word wrap

다음 단계

  • 이전 테스트에서 있을 수 있는 클러스터의 실패 알림을 지웁니다. 자세한 내용은 실패 기록 정리를 참조하십시오.

7장. 설정 완료

최종 설정이 완료되고 시스템 및 리소스가 정상인지 확인한 다음 프로덕션 워크로드에 맞게 환경을 활성화할 수 있습니다.

7.1. 인수 후 HANA 자동 등록 활성화

이전에 실패한 기본 인스턴스가 데이터 일관성을 수동으로 확인하지 않고 완전히 작동하는 보조 인스턴스로 자동 복구하려면 SAPHanaController 리소스를 활성화하여 사용 후 바로 인스턴스를 다시 등록할 수 있습니다.

이렇게 하면 이전에 실패한 기본 인스턴스가 HANA 시스템 복제를 계속할 수 있으며 새 기본 인스턴스가 새로 실패할 경우 자동으로 다시 대체됩니다.

HANA Operator는 먼저 이전에 실패한 인스턴스의 상태를 수동으로 점검하고 나중에 인스턴스를 다시 등록하거나 우선 순위가 전체 고가용성의 자동 복구에 더 빠른지 여부를 결정해야 합니다.

프로세스

  • SAPHanaController 리소스를 업데이트하고 기본 AUTOMATED_REGISTER 를 재정의합니다.

    [root]# pcs resource update rsc_SAPHanaCon_<SID>_HDB<instance> AUTOMATED_REGISTER=true
    Copy to Clipboard Toggle word wrap

검증

  • AUTOMATED_REGISTERtrue 로 설정되어 있는지 확인합니다.

    [root]# pcs resource config rsc_SAPHanaCon_RH1_HDB02
    Resource: rsc_SAPHanaCon_RH1_HDB02 (class=ocf provider=heartbeat type=SAPHanaController)
      Attributes: rsc_SAPHanaCon_RH1_HDB02-instance_attributes
        AUTOMATED_REGISTER=true
        DUPLICATE_PRIMARY_TIMEOUT=7200
        InstanceNumber=02
        PREFER_SITE_TAKEOVER=true
        SID=RH1
    ...
    Copy to Clipboard Toggle word wrap
주의

AUTOMATED_REGISTERtrue 로 설정하면 데이터 손실 또는 손상 위험이 증가할 수 있습니다. 보조 HANA 인스턴스의 데이터가 완전히 동기화되지 않을 때 HA 클러스터에서 가져오기를 트리거하면 새 보조 HANA 인스턴스가 자동으로 등록되면 이 인스턴스에서 데이터가 손실되고 수집이 발생하기 전에 동기화되지 않은 모든 데이터가 손실됩니다.

자세한 내용은 멤버용 SAP 기술 블로그의 문서를 참조하십시오. SAP HANA용 Pacemaker 클러스터 사용 준비 - 2부 - 두 노드의 실패에서 참조하십시오.

7.2. 최종 클러스터 상태 검토

스케일 업 HANA 시스템 복제 설정에 대한 2-노드 클러스터의 구성 후 다음 예와 같이 표시됩니다.

보조 인스턴스에서 읽기 전용 액세스에 대한 선택적 SAPHanaFilesystem 리소스와 선택적 두 번째 가상 IP를 구성하지 않은 경우 설정에서 약간 벗어날 수 있습니다.

또한 시스템 부팅 시 자동으로 시작되지 않도록 클러스터 서비스를 비활성화할지 여부를 결정할 수 있습니다. 이를 위해서는 모든 시스템 부팅 시 수동 개입이 필요하지만 시작에 대한 더 많은 제어 및 감독이 가능합니다.

[root]# pcs status --full
...

Cluster name: node1-node2-cluster
Cluster Summary:
  * Stack: corosync (Pacemaker is running)
  * Current DC: node2 (2) (version 2.1.7-5.2.el9_4-0f7f88312) - partition with quorum
  * Last updated: Thu May  8 13:49:46 2025 on node1
  * Last change:  Thu May  8 13:49:14 2025 by root via root on node1
  * 2 nodes configured
  * 9 resource instances configured

Node List:
  * Node node1 (1): online, feature set 3.19.0
  * Node node2 (2): online, feature set 3.19.0

Full List of Resources:
  * Clone Set: cln_SAPHanaTop_RH1_HDB02 [rsc_SAPHanaTop_RH1_HDB02]:
    * rsc_SAPHanaTop_RH1_HDB02  (ocf:heartbeat:SAPHanaTopology):         Started node1
    * rsc_SAPHanaTop_RH1_HDB02  (ocf:heartbeat:SAPHanaTopology):         Started node2
  * Clone Set: cln_SAPHanaCon_RH1_HDB02 [rsc_SAPHanaCon_RH1_HDB02] (promotable):
    * rsc_SAPHanaCon_RH1_HDB02  (ocf:heartbeat:SAPHanaController):       Promoted node1
    * rsc_SAPHanaCon_RH1_HDB02  (ocf:heartbeat:SAPHanaController):       Unpromoted node2
  * Clone Set: cln_SAPHanaFil_RH1_HDB02 [rsc_SAPHanaFil_RH1_HDB02]:
    * rsc_SAPHanaFil_RH1_HDB02  (ocf:heartbeat:SAPHanaFilesystem):       Started node1
    * rsc_SAPHanaFil_RH1_HDB02  (ocf:heartbeat:SAPHanaFilesystem):       Started node2
  * rsc_vip_RH1_HDB02_primary   (ocf:heartbeat:IPaddr2):         Started node1
  * rsc_vip_RH1_HDB02_readonly  (ocf:heartbeat:IPaddr2):         Started node2

Node Attributes:
  * Node: node1 (1):
    * hana_rh1_clone_state              : PROMOTED
    * hana_rh1_roles                    : master1:master:worker:master
    * hana_rh1_site                     : DC1
    * hana_rh1_sra                      : -
    * hana_rh1_srah                     : -
    * hana_rh1_version                  : 2.00.078.00
    * hana_rh1_vhost                    : node1
    * master-rsc_SAPHanaCon_RH1_HDB02   : 150
  * Node: node2 (2):
    * hana_rh1_clone_state              : DEMOTED
    * hana_rh1_roles                    : master1:master:worker:master
    * hana_rh1_site                     : DC2
    * hana_rh1_sra                      : -
    * hana_rh1_srah                     : -
    * hana_rh1_version                  : 2.00.078.00
    * hana_rh1_vhost                    : node2
    * master-rsc_SAPHanaCon_RH1_HDB02   : 100

Migration Summary:

Tickets:

PCSD Status:
  node1: Online
  node2: Online

Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled
Copy to Clipboard Toggle word wrap


전체 정상 설정에서는 다음과 같이 추가 클러스터 속성이 표시됩니다.

[root]# SAPHanaSR-showAttr
Global cib-update dcid prim sec sid topology
---------------------------------------------
global 0.550.2    2    DC1  DC2 RH1 ScaleUp

Resource                 promotable
------------------------------------
cln_SAPHanaCon_RH1_HDB02 true
cln_SAPHanaTop_RH1_HDB02

Site lpt        lss mns   opMode    srHook srMode srPoll srr
-------------------------------------------------------------
DC2  30         4   node2 logreplay SOK    sync   SOK    S
DC1  1746780164 4   node1 logreplay PRIM   sync   PRIM   P

Host  clone_state roles                        score site srah version     vhost
---------------------------------------------------------------------------------
node1 PROMOTED    master1:master:worker:master 150   DC1  -    2.00.078.00 node1
node2 DEMOTED     master1:master:worker:master 100   DC2  -    2.00.078.00 node2
Copy to Clipboard Toggle word wrap

8장. 유지 관리 절차

클러스터가 계획되지 않은 영향을 미치지 않도록 하려면 특정 단계를 적용해야 SAP HANA 시스템 복제 HA 환경의 다양한 구성 요소를 유지 관리할 수 있습니다.

계획된 변경 활동 중에 클러스터를 정상 상태로 유지하거나 계획되지 않은 사고 후 상태를 복원하려면 유지 관리 절차를 사용하십시오.

8.1. 실패 내역 정리

이전 테스트에서 있을 수 있는 클러스터의 실패 알림을 지웁니다. 이렇게 하면 실패 카운터 및 마이그레이션 임계값이 재설정됩니다.

프로세스

  1. 리소스 오류를 정리합니다.

    [root]# pcs resource cleanup
    Copy to Clipboard Toggle word wrap
  2. STONITH 실패 기록을 정리합니다.

    [root]# pcs stonith history cleanup
    Copy to Clipboard Toggle word wrap

검증

  • 전체 클러스터 상태를 확인하고 더 이상 오류가 표시되지 않는지 확인합니다.

    [root]# pcs status --full
    Copy to Clipboard Toggle word wrap
  • 펜싱 작업의 stonith 기록에 0개의 이벤트가 있는지 확인합니다.
[root]# pcs stonith history
Copy to Clipboard Toggle word wrap

8.2. 클러스터 명령을 사용하여 HANA 인수 트리거

클러스터 제어를 사용하여 기본 인스턴스를 다른 노드로 간단하게 적용할 수 있습니다.

자세한 단계는 설정 테스트 섹션 - 클러스터 명령을 사용하여 HANA 인수 트리거를 참조하십시오.

8.3. OS 및 HA 클러스터 구성 요소 업데이트

HA 클러스터, OS 또는 시스템 하드웨어에서 업데이트 또는 오프라인 변경의 경우 RHEL High Availability 또는 Resilient Storage 클러스터에 소프트웨어 업데이트를 적용하기 위한 권장 사례를 따라야 합니다.

8.4. SAP HANA 인스턴스에서 유지 관리 수행

HA 클러스터에서 관리하는 모든 종류의 애플리케이션 또는 기타 구성 요소의 경우 유지 관리 중에 클러스터가 간섭하지 않도록 클러스터 유지 관리 모드를 활성화해야 합니다.

HANA 인스턴스를 업데이트하는 동안 클러스터는 계속 실행 중이지만 리소스를 적극적으로 모니터링하거나 작업을 수행하지는 않습니다. HANA 인스턴스의 변경이 완료되면 클러스터 리소스 상태를 새로 고치고 탐지된 리소스 상태가 모두 올바른지 확인하는 것이 중요합니다. 그러면 예기치 않은 클러스터 작업 없이 유지 관리 모드를 다시 비활성화할 수 있습니다.

유지 관리 활동을 위해 클러스터를 중지해야 하는 경우 먼저 유지 관리 모드를 설정한 다음 HANA 유지 관리에 필요한 대로 노드에서 클러스터를 중지하고 시작합니다.

사전 요구 사항

  • HANA 시스템 복제를 관리하도록 Pacemaker 클러스터를 구성했습니다.

프로세스

  1. 전체 클러스터에 대한 유지 관리 모드를 설정합니다.

    [root]# pcs property set maintenance-mode=true
    Copy to Clipboard Toggle word wrap

    전체 클러스터에 대한 유지 관리를 설정하면 유지 관리 단계 중 활동이 클러스터 작업을 트리거하고 HANA 업데이트 프로세스에 영향을 미치지 않습니다.

  2. 클러스터 리소스 관리가 완전히 비활성화되었는지 확인합니다.

    [root]# pcs status
    ...
    
                  *** Resource management is DISABLED ***
      The cluster will not attempt to start, stop or recover services
    
    Node List:
      * Online: [ node1 node2 ]
    
    Full List of Resources:
      * Clone Set: cln_SAPHanaTop_RH1_HDB02 [rsc_SAPHanaTop_RH1_HDB02] (maintenance):
        * rsc_SAPHanaTop_RH1_HDB02  (ocf:heartbeat:SAPHanaTopology):         Started node2 (maintenance)
        * rsc_SAPHanaTop_RH1_HDB02  (ocf:heartbeat:SAPHanaTopology):         Started node1 (maintenance)
      * Clone Set: cln_SAPHanaCon_RH1_HDB02 [rsc_SAPHanaCon_RH1_HDB02] (promotable, maintenance):
        * rsc_SAPHanaCon_RH1_HDB02  (ocf:heartbeat:SAPHanaController):       Unpromoted node2 (maintenance)
        * rsc_SAPHanaCon_RH1_HDB02  (ocf:heartbeat:SAPHanaController):       Promoted node1 (maintenance)
      * Clone Set: cln_SAPHanaFil_RH1_HDB02 [rsc_SAPHanaFil_RH1_HDB02] (maintenance):
        * rsc_SAPHanaFil_RH1_HDB02  (ocf:heartbeat:SAPHanaFilesystem):       Started node2 (maintenance)
        * rsc_SAPHanaFil_RH1_HDB02  (ocf:heartbeat:SAPHanaFilesystem):       Started node1 (maintenance)
      * rsc_vip_RH1_HDB02_primary   (ocf:heartbeat:IPaddr2):         Started node1 (maintenance)
      * rsc_vip_RH1_HDB02_readonly  (ocf:heartbeat:IPaddr2):         Started node2 (maintenance)
    
    ...
    Copy to Clipboard Toggle word wrap
  3. SAP 절차를 사용하여 HANA 인스턴스를 업데이트합니다. HANA 업데이트 중에 테이오버를 수행해야 하는 경우 SAP HANA Takeover with Handshake 옵션을 사용할 수 있습니다. 자세한 내용은 HANA 시스템 복제 관리를 위한 HA Solutions와 함께 SAP HANA "Takeover with Handshake" 옵션을 사용할 수도 있습니다.

    이 단계에서 클러스터를 중지한 경우 다음 단계를 진행하기 전에 다시 시작해야 합니다. 유지 관리 모드를 활성화합니다.

  4. HANA 업데이트 후 HANA 시스템 복제가 올바르게 작동하는지 확인합니다. systemReplicationStatus.py 스크립트를 사용하여 기본 인스턴스에서 HANA 시스템 복제 상태를 표시합니다. 다음은 유지 관리 중에 node2에 대한 사후 수동 인수의 예입니다.

    [root]# su - <sid>adm
    
    rh1adm $ cdpy; python systemReplicationStatus.py --sapcontrol=1 | grep -i replication_status=
    service/node2/30201/REPLICATION_STATUS=ACTIVE
    service/node2/30207/REPLICATION_STATUS=ACTIVE
    service/node2/30203/REPLICATION_STATUS=ACTIVE
    site/1/REPLICATION_STATUS=ACTIVE
    overall_replication_status=ACTIVE
    Copy to Clipboard Toggle word wrap

    진행하기 전에 시스템 복제가 정상이고 ACTIVE 로 보고되었는지 확인합니다.

  5. 모든 클러스터 리소스를 새로 고침하여 하나의 모니터링 작업을 실행하고 상태를 업데이트합니다.

    [root]# pcs resource refresh
    Waiting for 1 reply from the controller
    ... got reply (done)
    Copy to Clipboard Toggle word wrap

    HANA 리소스에서 새 HANA 시스템 복제 상태를 반영하려면 클러스터 및 노드 속성을 업데이트하는 것이 중요합니다. 유지 관리가 중지된 후 클러스터에 올바른 정보가 있고 잘못된 상태 정보로 인해 복구 작업을 트리거하지 않도록 합니다.

  6. 클러스터 상태를 확인하고 리소스 상태 및 기본 HANA 리소스 점수 특성을 확인합니다. 모든 리소스는 Started 로 표시되고 승격 가능한 리소스는 모든 노드에서 Unpromoted 로 표시되어야 합니다.

    [root]# pcs status
    ...
    Full List of Resources:
      * Clone Set: cln_SAPHanaTop_RH1_HDB02 [rsc_SAPHanaTop_RH1_HDB02] (maintenance):
        * rsc_SAPHanaTop_RH1_HDB02  (ocf:heartbeat:SAPHanaTopology):         Started node2 (maintenance)
        * rsc_SAPHanaTop_RH1_HDB02  (ocf:heartbeat:SAPHanaTopology):         Started node1 (maintenance)
      * Clone Set: cln_SAPHanaCon_RH1_HDB02 [rsc_SAPHanaCon_RH1_HDB02] (promotable, maintenance):
        * rsc_SAPHanaCon_RH1_HDB02  (ocf:heartbeat:SAPHanaController):       Unpromoted node2 (maintenance)
        * rsc_SAPHanaCon_RH1_HDB02  (ocf:heartbeat:SAPHanaController):       Unpromoted node1 (maintenance)
      * Clone Set: cln_SAPHanaFil_RH1_HDB02 [rsc_SAPHanaFil_RH1_HDB02] (maintenance):
        * rsc_SAPHanaFil_RH1_HDB02  (ocf:heartbeat:SAPHanaFilesystem):       Started node2 (maintenance)
        * rsc_SAPHanaFil_RH1_HDB02  (ocf:heartbeat:SAPHanaFilesystem):       Started node1 (maintenance)
      * rsc_vip_RH1_HDB02_primary   (ocf:heartbeat:IPaddr2):         Started node1 (maintenance)
      * rsc_vip_RH1_HDB02_readonly  (ocf:heartbeat:IPaddr2):         Started node2 (maintenance)
    
    ...
    Copy to Clipboard Toggle word wrap
  7. 클러스터 특성을 확인하고 srHook,rolesscore 속성이 올바른 새 상태에 있는지 확인합니다.

    [root]# SAPHanaSR-showAttr
    ...
    
    Site lpt        lss mns   opMode    srHook srMode srPoll srr
    -------------------------------------------------------------
    DC2  1746793335 4   node2 logreplay PRIM   sync   SOK    S
    DC1  30         4   node1 logreplay SOK    sync   PRIM   P
    
    Host  clone_state roles                        score site sra srah version     vhost
    -------------------------------------------------------------------------------------
    node1 DEMOTED     master1:master:worker:master 100   DC1  -   -    2.00.078.00 node1
    node2 DEMOTED     master1:master:worker:master 150   DC2  -   -    2.00.078.00 node2
    Copy to Clipboard Toggle word wrap
    • srHook 는 기본 인스턴스를 실행하는 노드에서 PRIM 이며 올바른 보조 데이터베이스에 SOK 를 표시합니다.
    • 점수는 기본 노드가 실행 중인 노드의 150 이고 다른 노드에서는 100 입니다.
  8. 단계 6 및 7의 검사에 예상 정상 상태의 환경을 표시하는 경우 클러스터의 유지 관리 모드를 다시 제거할 수 있습니다.

    [root]# pcs property set maintenance-mode=
    Copy to Clipboard Toggle word wrap

    유지 관리를 사용하면 모든 리소스의 모니터 실행을 다시 트리거합니다. 클러스터는 승격 가능한 리소스의 상태를 기본 및 보조 인스턴스의 위치에 대응하여 PromotedUnpromoted 로 업데이트합니다. 이제 리소스는 srHook 특성 값과 일치하도록 srPoll 특성을 다시 업데이트합니다.

8.5. 수취 후 첫 번째 기본 등록

기본값인 SAPHanaController 리소스에서 AUTOMATED_REGISTER=false 를 구성하는 경우 이 리소스를 인수한 후 이전 기본 인스턴스를 수동으로 새 보조 서버로 등록해야 합니다. 그렇지 않으면 등록되지 않은 인스턴스가 중지된 상태로 유지됩니다.

프로세스

  1. 이전 기본을 새 보조로 등록합니다. 중지된 이전 기본 인스턴스에서 사용자 <sid>adm 으로 실행합니다.

    rh1adm $ hdbnsutil -sr_register --remoteHost=<node> \
    --remoteInstance=${TINSTANCE} --replicationMode=sync \
    --operationMode=logreplay --name=<DC>
    Copy to Clipboard Toggle word wrap
    • & lt;node >를 node1에서 node2로 인수하는 경우 node2와 같이 새 기본 인스턴스 호스트로 바꿉니다.
    • & lt;DC >를 새 보조 HANA 사이트 이름으로 바꿉니다(예: node1을 보조로 등록해야 하는 경우 DC1).
    • 시스템 복제의 요구 사항에 따라 replicationModeoperationMode 의 값을 선택합니다.
    • TINSTANCE 는 HANA 인스턴스 프로필을 읽고 사용자 < sid>adm 에 대해 자동으로 설정된 환경 변수입니다. 변수 값은 HANA 인스턴스 번호입니다.
  2. 보조 HANA 인스턴스를 시작합니다. 새 보조 인스턴스 노드에서 & lt;sid>adm 으로 실행합니다.

    rh1adm $ HDB start
    Copy to Clipboard Toggle word wrap

검증

  • 현재 기본 인스턴스에서 다시 설정된 HANA 시스템 복제의 현재 상태를 표시합니다. 다음은 인수 후 예제이며 보조 인스턴스가 node1에서 다시 등록됩니다.

    rh1adm $ cdpy; python systemReplicationStatus.py
    |Database |Host     |Port  |Service Name |Volume ID |Site ID |Site Name |Secondary |Secondary |Secondary |Secondary |Secondary     |Replication |Replication |Replication    |Secondary    |
    |         |         |      |             |          |        |          |Host      |Port      |Site ID   |Site Name |Active Status |Mode        |Status      |Status Details |Fully Synced |
    |-------- |-------- |----- |------------ |--------- |------- |--------- |----------|--------- |--------- |--------- |------------- |----------- |----------- |-------------- |------------ |
    |SYSTEMDB |node2    |30001 |nameserver   |        1 |      2 |DC2       |node1     |    30001 |        1 |DC1       |YES           |SYNC        |ACTIVE      |               |        True |
    |RH1      |node2    |30007 |xsengine     |        2 |      2 |DC2       |node1     |    30007 |        1 |DC1       |YES           |SYNC        |ACTIVE      |               |        True |
    |RH1      |node2    |30003 |indexserver  |        3 |      2 |DC2       |node1     |    30003 |        1 |DC1       |YES           |SYNC        |ACTIVE      |               |        True |
    
    status system replication site "1": ACTIVE
    overall system replication status: ACTIVE
    
    Local System Replication State
    ~~~~~~~~~~
    
    mode: PRIMARY
    site id: 2
    site name: DC2
    Copy to Clipboard Toggle word wrap

9장. 문제 해결

9.1. srHook 클러스터 속성 값이 올바르지 않음

srHook 특성 값이 실제 HANA 시스템 복제 상태와 일치하지 않으면 기본 인스턴스가 실패할 때 클러스터에서 예기치 않은 동작이 발생할 수 있습니다.

보조 인스턴스의 srHook 속성 및 HANA 시스템 복제 상태가 일치하지 않을 때 sudo 구성을 확인하고 수정합니다.

  • 보조 보조의 srHook 클러스터 속성은 비어 있습니다.
  • HANA 시스템 복제가 정상이 아닌 반면 보조 보조의 srHook 클러스터 속성은 SOK 로 설정됩니다.
  • 보조 보조의 srHook 클러스터 속성은 시스템 복제가 ACTIVE 상태인 동안 SFAIL 로 설정됩니다.

기본 인스턴스는 HANA 시스템 복제의 이벤트를 수신하고 그 결과를 보조 인스턴스의 클러스터 속성으로 저장합니다.

프로세스

  1. sudo 를 사용하여 명령이 실행되므로 보안 로그에서 crm_attribute 업데이트 오류가 있는지 확인합니다. 로그에는 후크 스크립트가 실행하려고 하지만 잠재적으로 실패할 수 있는 명령이 표시됩니다. 다음 예와 같이 기본 인스턴스 노드에서 명령이 허용되지 않은 오류가 있는지 확인합니다.

    [root]# grep crm_attribute /var/log/secure
    ... rh1adm : command not allowed ; PWD=/hana/shared/RH1/HDB02/node1 ; USER=root ; COMMAND=/usr/sbin/crm_attribute -n hana_rh1_site_srHook_DC2 -v SFAIL -t crm_config -s SAPHanaSR
    Copy to Clipboard Toggle word wrap
  2. 기록된 COMMANDsudoers 구성과 비교합니다. 명령과 일치하는 sudo 항목이 있도록 철저히 확인하고 sudoers 파일을 수정합니다. 임시 조치로 명령 매개변수에서 오타를 제외하도록 와일드카드로 단순화하여 sudo 항목이 작동하는지 확인할 수 있습니다.

    [root]# cat /etc/sudoers.d/20-saphana
    <sid>adm ALL=(ALL) NOPASSWD: /usr/sbin/crm_attribute *
    Defaults:<sid>adm !requiretty
    Copy to Clipboard Toggle word wrap

    & lt;sid& gt;를 소문자 HANA SID로 바꿉니다.

  3. 명령 경로가 올바른지 확인합니다.

    [root]# ls /usr/sbin/crm_attribute
    /usr/sbin/crm_attribute
    Copy to Clipboard Toggle word wrap
  4. sudo 구성을 수정합니다. 자세한 내용은 srConnectionChanged() 후크 메서드의 HanaSR HA/DR 공급자 구성을 참조하십시오.
  5. 다른 노드에서 수정 단계를 반복합니다. 모든 인스턴스에서 sudo 구성은 동일해야 합니다.

9.2. 후크를 변경한 후에는 HANA 인스턴스가 시작되지 않습니다.

최근에 HA/DR 공급자 섹션의 global.ini 를 변경하고 HANA 인스턴스가 더 이상 시작되지 않습니다.

프로세스

  1. HANA 추적 로그 디렉토리로 이동하여 < sid>adm 사용자로 이동합니다.

    rh1adm $ cdtrace
    Copy to Clipboard Toggle word wrap
  2. HANA 이름 서버 경고 로그에서 HA/DR 공급자와 관련된 오류가 있는지 확인합니다.

    rh1adm $ grep ha_dr_provider nameserver_alert_*.trc
    ... ha_dr_provider   PythonProxyImpl.cpp(00145) : import of hanasr failed: No module named 'hanasr'
    ... ha_dr_provider   HADRProviderManager.cpp(00100) : could not load HA/DR Provider 'hanasr' from /usr/share/sap-hana-ha/
    Copy to Clipboard Toggle word wrap
  3. 근본 원인을 확인합니다(예: 잘못 지정된 HA/DR 공급자 이름 또는 잘못된 경로 ). 경로와 후크 스크립트 이름을 확인합니다. 이 예에서 HA/DR 공급자 이름 hanasr 가 후크 스크립트 이름 HanaSR 과 일치하지 않습니다.

    rh1adm $ ls /usr/share/sap-hana-ha/
    ChkSrv.py  HanaSR.py  samples
    Copy to Clipboard Toggle word wrap
  4. HanaSR HA/DR 공급자 구성을 수정합니다.

    [ha_dr_provider_hanasr]
    provider = HanaSR
    path = /usr/share/sap-hana-ha/
    execution_order = 1
    
    [trace]
    ha_dr_hanasr = info
    Copy to Clipboard Toggle word wrap
    • 공급자는 Python 후크 스크립트의 이름과 일치해야 합니다. 이는 .py 파일 접미사 없이 대소문자를 구분합니다.
    • 경로는 후크 스크립트가 저장되는 경로여야 합니다.

9.3. 유지보수하는 동안 클러스터 노드가 오프라인으로 보고됩니다.

예를 들어 HANA 업데이트의 경우 클러스터에 대한 유지 관리 모드가 설정된 경우에도 노드 간에 문제를 확인할 수 있지만 복구 작업을 트리거하지는 않습니다.

이러한 상황이 발생하면 먼저 유지 관리 모드를 해제하기 전에 문제의 원인을 해결해야합니다.

예: 노드 간 corosync 통신이 차단됨

두 노드 모두 다른 노드를 오프라인으로 보고합니다. 이 경우 유지 관리 모드가 제거되면 하나의 노드를 펜싱하여 클러스터가 복구하려고 합니다. 이는 진행 중인 HANA 유지 관리 활동에 심각한 영향을 미칠 수 있습니다.

...
               *** Resource management is DISABLED ***
  The cluster will not attempt to start, stop or recover services

Node List:
  * Node hana1 (1): online, feature set 3.19.0
  * Node hana2 (2): UNCLEAN (offline)

Full List of Resources:
  * Clone Set: cln_SAPHanaTop_RH1_HDB02 [rsc_SAPHanaTop_RH1_HDB02] (maintenance):
    * rsc_SAPHanaTop_RH1_HDB02  (ocf:heartbeat:SAPHanaTopology):         Started hana2 (UNCLEAN, maintenance)
    * rsc_SAPHanaTop_RH1_HDB02  (ocf:heartbeat:SAPHanaTopology):         Started hana1 (maintenance)
  * Clone Set: cln_SAPHanaCon_RH1_HDB02 [rsc_SAPHanaCon_RH1_HDB02] (promotable, maintenance):
    * rsc_SAPHanaCon_RH1_HDB02  (ocf:heartbeat:SAPHanaController):       Unpromoted hana2 (UNCLEAN, maintenance)
    * rsc_SAPHanaCon_RH1_HDB02  (ocf:heartbeat:SAPHanaController):       Promoted hana1 (maintenance)
  * Clone Set: cln_SAPHanaFil_RH1_HDB02 [rsc_SAPHanaFil_RH1_HDB02] (maintenance):
    * rsc_SAPHanaFil_RH1_HDB02  (ocf:heartbeat:SAPHanaFilesystem):       Started hana2 (UNCLEAN, maintenance)
    * rsc_SAPHanaFil_RH1_HDB02  (ocf:heartbeat:SAPHanaFilesystem):       Started hana1 (maintenance)
  * rsc_vip_RH1_HDB02_primary   (ocf:heartbeat:IPaddr2):         Started hana1 (maintenance)
  * rsc_vip_RH1_HDB02_readonly  (ocf:heartbeat:IPaddr2):         Started hana2 (UNCLEAN, maintenance)

...
Copy to Clipboard Toggle word wrap

문제의 근본 원인을 확인합니다. 예를 들면 다음과 같습니다.

  • HANA 유지 관리와 병렬로 클러스터 통신 연결에서 계획된 네트워크 유지 관리.
  • 네트워크 장치 오류 또는 OS 또는 네트워크 수준에서 잘못된 구성으로 인해 네트워크 연결에 대한 예기치 않은 중단이 발생하지 않습니다.
  • 클러스터 통신 포트를 차단하는 방화벽 구성입니다.

클러스터 유지 관리를 제거할 때 클러스터에서 복구 조치를 수행하지 못하도록 문제를 해결합니다.

부록 A. 구성 요소 옵션

A.1. HanaSR에 대한 HA/DR 공급자 옵션

HanaSR HA/DR 공급자 구성에 사용할 수 있는 매개변수는 다음과 같습니다.

Expand
공급자 옵션필수 항목기본설명

provider = HanaSR

제공됨

 

provider 매개변수는 .py 끝 없이 후크 스크립트 이름으로 설정해야 합니다.

path = /usr/share/sap-hana-ha/

제공됨

 

후크 스크립트의 위치에 대한 전체 경로입니다.

execution_order = 1

제공됨

 

이벤트가 발생할 때 다른 선택적 후크 스크립트보다 먼저 HanaSR HA/DR 공급자가 항상 실행되도록 1 로 설정합니다.

A.2. ChkSrv에 대한 HA/DR 공급자 옵션

ChkSrv HA/DR 공급자 구성에 사용할 수 있는 매개변수는 다음과 같습니다.

Expand
공급자 옵션필수 항목기본설명

provider = ChkSrv

제공됨

 

provider 매개변수는 .py 끝 없이 후크 스크립트 이름으로 설정해야 합니다.

path = /usr/share/sap-hana-ha/

제공됨

 

후크 스크립트의 위치에 대한 전체 경로입니다.

execution_order = 2

제공됨

 

2 이상으로 설정합니다. 필수 HanaSR 공급자는 항상 먼저 실행해야 합니다.

action_on_lost

제공되지 않음

무시

인덱스 서버의 손실된 경우 트리거할 작업입니다.

  • ignore: 아무것도 하지 않고 tracefiles에 쓰기만 하면 됩니다.
  • stop: sapcontrol …​ StopSystem 을 실행합니다.
  • kill:HDB kill-<signal> 을 실행합니다. 신호는 별도의 매개 변수 kill_signal 로 정의할 수 있습니다.

kill_signal

제공되지 않음

9

kill 작업과 함께 사용되는 신호입니다.

stop_timeout

제공되지 않음

20s

중지 작업이 반환될 때까지 대기하는 시간(초)입니다. 이 값은 HANA 매개 변수 강제terminationtimeout 의 값보다 커야 합니다.

A.3. SAPHanaTopology 리소스 매개변수

SAPHanaTopology 리소스 구성에 사용할 수 있는 매개변수는 다음과 같습니다.

Expand
리소스 옵션필수 항목기본설명

SID

제공됨

 

SAP 시스템 식별자입니다.

InstanceNumber

제공됨

 

SAP HANA 인스턴스의 수입니다.

HANA_CALL_TIMEOUT

제공되지 않음

120

리소스 에이전트가 landscapeHostConfiguration.py 를 실행하는 경우와 같이 정보를 수신하는 데 사용할 수 있는 시간 제한 - HANA에 대한 호출 시간을 정의합니다. 자체 시간 초과 값을 갖는 HANA에 대한 몇 가지 특정 호출이 있습니다.

이 리소스의 HANA 호출에 대한 시간 제한을 늘리는 경우 동일한 리소스의 작업 시간 초과 값을 늘리는 것도 고려해야 합니다.

A.4. SAPHanaController 리소스 매개변수

SAPHanaController 리소스의 구성에 사용할 수 있는 매개변수는 다음과 같습니다.

Expand
리소스 옵션필수 항목기본설명

SID

제공됨

 

SAP 시스템 식별자입니다.

InstanceNumber

제공됨

 

SAP HANA 인스턴스의 수입니다.

DIR_EXECUTABLE

제공되지 않음

 

sapstartsrvsapcontrol 과 같은 바이너리에 대한 정규화된 경로입니다. 기본 SAP 설치 후 SAP 커널 디렉터리 위치를 변경한 경우 이 매개변수를 지정합니다.

SAP 표준 경로는 기본적으로 검색됩니다.

DIR_PROFILE

제공되지 않음

 

SAP START 프로필의 정규화된 경로입니다. 기본 SAP 설치 후 SAP 프로필 디렉터리 위치를 변경한 경우 이 매개변수를 지정합니다.

SAP 표준 경로는 기본적으로 검색됩니다.

HANA_CALL_TIMEOUT

제공되지 않음

120

리소스 에이전트가 landscapeHostConfiguration.py 를 실행하는 경우와 같이 정보를 수신하는 데 사용할 수 있는 시간 제한 - HANA에 대한 호출 시간을 정의합니다. 자체 시간 초과 값을 갖는 HANA에 대한 몇 가지 특정 호출이 있습니다.

이 리소스의 HANA 호출에 대한 시간 제한을 늘리는 경우 동일한 리소스의 작업 시간 초과 값을 늘리는 것도 고려해야 합니다.

INSTANCE_PROFILE

제공되지 않음

 

SAP HANA 인스턴스 프로필의 이름입니다. 기본 SAP 설치 후 SAP HANA 인스턴스 프로필의 이름을 변경한 경우 이 매개변수를 지정합니다.

SAP 표준 경로는 기본적으로 검색됩니다.

PREFER_SITE_TAKEOVER

제공되지 않음

false

리소스 에이전트가 로컬로 기본 사이트를 다시 시작하는 대신 보조 사이트에 대한 가져오기를 트리거하는 것을 선호하는지 여부를 정의합니다. 그러나 인수는 SAP HANA 환경 상태가 ERROR 인 경우에만 트리거됩니다. FATAL 의 경우 로컬 재시작이 시작됩니다.

  • True: 보조 사이트로의 가져오기를 트리거하는 것을 유추합니다.
  • False: 로컬로 다시 시작할 것을 권장합니다.

AUTOMATED_REGISTER

제공되지 않음

false

리소스 에이전트가 클러스터 리소스 시작 중에 이전 기본 인스턴스를 보조 서버로 자동으로 등록하고 DUPLICATE_PRI Cryostat_TIMEOUT 조건이 충족되는지 여부를 정의합니다. 인스턴스를 보조로 등록하면 기본 데이터에서 데이터 동기화가 시작되고 로컬 데이터를 덮어쓸 수 있습니다.

  • False: 수동 개입이 필요합니다.
  • True: 이전 기본은 자동으로 2차로 등록됩니다.

DUPLICATE_PRIMARY_TIMEOUT

제공되지 않음

7200

두 개의 기본 타임스탬프(LPT) 간에 필요한 시간 차이로 이중 실행 상황이 발생하는 경우입니다. 두 노드의 마지막 기본 타임스탬프의 차이가 DUPLICATE_PRI Cryostat_TIMEOUT 보다 작으면 클러스터에 WAITING 상태의 인스턴스 중 하나 또는 두 개의 인스턴스가 있습니다. 이를 통해 관리자는 장애 조치에 대응할 수 있습니다.

DUPLICATE_PRI Cryostat_TIMEOUT 이 전달된 후 복구가 진행되는 방법은 매개 변수 AUTOMATED_REGISTER 에 따라 다릅니다.

PREFER_SITE_TAKEOVERtrue 로 설정하는 것이 좋습니다. 이렇게 하면 기본 HANA 인스턴스의 오류가 감지될 때 HA 클러스터에서 가져오기를 트리거할 수 있습니다. 대부분의 경우 원래 기본 인스턴스가 디스크에서 모든 데이터를 다시 시작하고 다시 메모리로 다시 로드하는 데 걸리는 것보다 새 HANA 기본 인스턴스가 완전히 활성 상태가 되는 데 걸리는 시간이 줄어듭니다.

AUTOMATED_REGISTERfalse 로 설정하여 Operator에 이전에 실패한 기본 인스턴스의 상태 및 데이터 일관성을 먼저 확인하는 옵션을 부여한 후 두 인스턴스 간에 HANA 시스템 복제를 다시 설정하고 인스턴스를 수동으로 시작하기 전에 수동으로 새 보조 인스턴스로 등록합니다.

새 보조 인스턴스가 발생한 후 이전 기본 인스턴스를 자동으로 등록할 수 있도록 AUTOMATED_REGISTERtrue 로 설정합니다. 이를 통해 HANA 시스템 복제 설정의 가용성이 증가하고 SAP HANA 시스템 복제 환경에서 이중 기본 상황을 방지합니다.

A.5. SAPHanaFilesystem 리소스 매개변수

SAPHanaFilesystem 리소스 구성에 사용할 수 있는 매개변수는 다음과 같습니다.

Expand
리소스 옵션필수 항목기본설명

SID

제공됨

 

SAP 시스템 식별자입니다.

InstanceNumber

제공됨

 

SAP HANA 인스턴스의 수입니다.

디렉터리

제공되지 않음

/HANA/shared/<SID>/

모니터링할 디렉터리의 경로입니다. 리소스 에이전트는 DIRECTORY 경로 내에 자체 하위 디렉터리 .heartbeat_SAPHanaFilesystem 에 데이터를 생성합니다. 숨겨진 이 하위 디렉터리는 변경하지 마십시오.

ON_FAIL_ACTION

제공되지 않음

fence

반복된 모니터 실패의 경우 작업.

  • ignore: 아무 작업도 수행하지 않고 로그에 실패를 보고하기만 하면 됩니다.
  • fence: 필요한 조건이 충족되면 오류 및 노드 펜싱을 중지합니다.

부록 B. 유용한 정보

B.1. 클러스터 정보 설명

클러스터 리소스가 시작되면 첫 번째 모니터 작업을 실행하고 초기 리소스 정보를 수집합니다. HANA 리소스는 클러스터 노드에서 SAP HANA 데이터베이스의 현재 상태를 설명하는 수집된 환경 정보에 대한 노드 속성 및 클러스터 속성을 추가합니다.

노드 속성이 있는 클러스터 상태

[root]# pcs status --full
...

Node List:
  * Node node1 (1): online, feature set 3.19.0
  * Node node2 (2): online, feature set 3.19.0

Full List of Resources:
  * Clone Set: cln_SAPHanaTop_RH1_HDB02 [rsc_SAPHanaTop_RH1_HDB02]:
    * rsc_SAPHanaTop_RH1_HDB02  (ocf:heartbeat:SAPHanaTopology):         Started node2
    * rsc_SAPHanaTop_RH1_HDB02  (ocf:heartbeat:SAPHanaTopology):         Started node1
  * Clone Set: cln_SAPHanaCon_RH1_HDB02 [rsc_SAPHanaCon_RH1_HDB02] (promotable):
    * rsc_SAPHanaCon_RH1_HDB02  (ocf:heartbeat:SAPHanaController):       Unpromoted node2
    * rsc_SAPHanaCon_RH1_HDB02  (ocf:heartbeat:SAPHanaController):       Promoted node1
  * Clone Set: cln_SAPHanaFil_RH1_HDB02 [rsc_SAPHanaFil_RH1_HDB02]:
    * rsc_SAPHanaFil_RH1_HDB02  (ocf:heartbeat:SAPHanaFilesystem):       Started node2
    * rsc_SAPHanaFil_RH1_HDB02  (ocf:heartbeat:SAPHanaFilesystem):       Started node1
  * rsc_vip_RH1_HDB02_primary   (ocf:heartbeat:IPaddr2):         Started node1
  * rsc_vip_RH1_HDB02_readonly  (ocf:heartbeat:IPaddr2):         Started node2

Node Attributes:
  * Node: node1 (1):
    * hana_rh1_clone_state              : PROMOTED
    * hana_rh1_roles                    : master1:master:worker:master
    * hana_rh1_site                     : DC1
    * hana_rh1_srah                     : -
    * hana_rh1_version                  : 2.00.078.00
    * hana_rh1_vhost                    : node1
    * master-rsc_SAPHanaCon_RH1_HDB02   : 150
  * Node: node2 (2):
    * hana_rh1_clone_state              : DEMOTED
    * hana_rh1_roles                    : master1:master:worker:master
    * hana_rh1_site                     : DC2
    * hana_rh1_srah                     : -
    * hana_rh1_version                  : 2.00.078.00
    * hana_rh1_vhost                    : node2
    * master-rsc_SAPHanaCon_RH1_HDB02   : 100

...
Copy to Clipboard Toggle word wrap


클러스터 속성

새로운 세대의 SAP HANA 리소스 에이전트는 SAPHanaSR 이라는 속성의 클러스터 속성으로 HANA 인스턴스에 대한 정보를 저장합니다.

root 사용자로 CIB(클러스터 정보 기반)를 쿼리하여 클러스터 속성의 콘텐츠를 확인할 수 있습니다. HANA 리소스 및 HanaSR 후크는 이러한 특성을 업데이트합니다.

예제:

[root]# cibadmin --query --xpath "//crm_config//cluster_property_set[@id='SAPHanaSR']"
<cluster_property_set id="SAPHanaSR">
  <nvpair id="SAPHanaSR-hana_rh1_site_srHook_DC2" name="hana_rh1_site_srHook_DC2" value="SOK"/>
  <nvpair id="SAPHanaSR-hana_rh1_site_mns_DC2" name="hana_rh1_site_mns_DC2" value="node2"/>
  <nvpair id="SAPHanaSR-hana_rh1_site_mns_DC1" name="hana_rh1_site_mns_DC1" value="node1"/>
  <nvpair id="SAPHanaSR-hana_rh1_site_lpt_DC2" name="hana_rh1_site_lpt_DC2" value="30"/>
  <nvpair id="SAPHanaSR-hana_rh1_glob_sec" name="hana_rh1_glob_sec" value="DC2"/>
  <nvpair id="SAPHanaSR-hana_rh1_site_opMode_DC2" name="hana_rh1_site_opMode_DC2" value="logreplay"/>
  <nvpair id="SAPHanaSR-hana_rh1_site_srHook_DC1" name="hana_rh1_site_srHook_DC1" value="PRIM"/>
  <nvpair id="SAPHanaSR-hana_rh1_site_lpt_DC1" name="hana_rh1_site_lpt_DC1" value="1746780482"/>
  <nvpair id="SAPHanaSR-hana_rh1_site_srPoll_" name="hana_rh1_site_srPoll_" value="SOK"/>
  <nvpair id="SAPHanaSR-hana_rh1_glob_topology" name="hana_rh1_glob_topology" value="ScaleUp"/>
  <nvpair id="SAPHanaSR-hana_rh1_site_lss_DC2" name="hana_rh1_site_lss_DC2" value="4"/>
  <nvpair id="SAPHanaSR-hana_rh1_site_lss_DC1" name="hana_rh1_site_lss_DC1" value="4"/>
  <nvpair id="SAPHanaSR-hana_rh1_site_srr_DC2" name="hana_rh1_site_srr_DC2" value="S"/>
  <nvpair id="SAPHanaSR-hana_rh1_site_srr_DC1" name="hana_rh1_site_srr_DC1" value="P"/>
  <nvpair id="SAPHanaSR-hana_rh1_site_srMode_DC2" name="hana_rh1_site_srMode_DC2" value="sync"/>
  <nvpair id="SAPHanaSR-hana_rh1_site_srMode_" name="hana_rh1_site_srMode_" value="sync"/>
  <nvpair id="SAPHanaSR-hana_rh1_site_srPoll_DC2" name="hana_rh1_site_srPoll_DC2" value="SOK"/>
  <nvpair id="SAPHanaSR-hana_rh1_site_srMode_DC1" name="hana_rh1_site_srMode_DC1" value="sync"/>
  <nvpair id="SAPHanaSR-hana_rh1_glob_prim" name="hana_rh1_glob_prim" value="DC1"/>
  <nvpair id="SAPHanaSR-hana_rh1_site_srPoll_DC1" name="hana_rh1_site_srPoll_DC1" value="PRIM"/>
  <nvpair id="SAPHanaSR-hana_rh1_site_opMode_DC1" name="hana_rh1_site_opMode_DC1" value="logreplay"/>
</cluster_property_set>
Copy to Clipboard Toggle word wrap


SAPHanaSR-showAttr

SAPHanaSR-showAttr 도구를 사용하여 사전 포맷된 개요에서 모든 HANA 클러스터 특성 정보를 표시할 수 있습니다.

전체 환경 상태를 보려면 pcs status [--full] 에 이 상태를 확인하십시오.

예제:

[root]# SAPHanaSR-showAttr
Global cib-update dcid prim sec sid topology
---------------------------------------------
global 0.550.2    2    DC1  DC2 RH1 ScaleUp

Resource                 promotable
------------------------------------
cln_SAPHanaCon_RH1_HDB02 true
cln_SAPHanaTop_RH1_HDB02

Site lpt        lss mns   opMode    srHook srMode srPoll srr
-------------------------------------------------------------
DC2  30         4   node2 logreplay SOK    sync   SOK    S
DC1  1746780164 4   node1 logreplay PRIM   sync   PRIM   P

Host  clone_state roles                        score site srah version     vhost
---------------------------------------------------------------------------------
node1 PROMOTED    master1:master:worker:master 150   DC1  -    2.00.078.00 node1
node2 DEMOTED     master1:master:worker:master 100   DC2  -    2.00.078.00 node2
Copy to Clipboard Toggle word wrap

법적 공지

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동