RHEL HA 애드온을 사용하여 SAP HANA scale-Out 시스템 복제 자동화


Red Hat Enterprise Linux for SAP Solutions 8

Red Hat Customer Content Services

초록

이 문서에서는 SAP HANA scale-Out 배포에 대한 자동화된 takeover를 계획하고 구현하는 방법을 설명합니다.

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

Red Hat은 코드 및 문서에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 사항은 향후 릴리스에 걸쳐 점진적으로 구현될 예정입니다. 언어를 보다 포괄적으로 만드는 방법에 대한 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.

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

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

Jira를 통해 피드백 제출 (등록 필요)

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

1장. 소개

이 문서에서는 SAP HANA 스케일 아웃 시스템 복제 배포에 대한 자동 수집 계획 및 구현에 대한 정보를 제공합니다. SAP HANA 시스템 복제는 두 SAP HANA 데이터베이스 간에 지속적인 동기화를 제공하여 고가용성 및 재해 복구를 지원합니다. 실제 구현의 과제는 일반적으로 초기 테스트에서 처리할 수 있는 것보다 더 복잡합니다. 환경이 광범위하게 테스트되었는지 확인하십시오.

Red Hat은 SAP HANA 및 Pacemaker 기반 RHEL High Availability Add-On 모두에 익숙한 인증된 컨설턴트를 계약하여 설정 및 후속 작업을 구현할 것을 권장합니다.

SAP HANA는 SAP 환경을 위한 기본 데이터베이스 플랫폼으로 중앙 기능을 사용하기 때문에 안정성 및 안정성에 대한 요구 사항이 크게 증가합니다. RHEL(Red Hat Enterprise Linux) for SAP Solutions는 기본 SAP HANA 복제 및 페일오버 기술을 강화하여 인수 프로세스를 자동화하여 이러한 요구 사항을 충족합니다. SAP HANA 스케일 아웃 시스템 복제 배포의 장애 조치 중에 시스템 관리자는 기본 환경에 문제가 있는 경우 보조 환경에 대한 인수를 수행하도록 애플리케이션을 수동으로 지시해야 합니다.

이 프로세스를 자동화하기 위해 Red Hat은 RHEL for SAP Solutions 서브스크립션의 일부인 RHEL HA 애드온을 기반으로 SAP HANA 스케일 아웃 시스템 복제를 관리할 수 있는 완전한 솔루션을 제공합니다. 이 문서에서는 RHEL for SAP Solutions를 사용하여 자동화된 SAP HANA scale-Out 시스템 복제 솔루션을 설정하는 방법에 대한 개념, 계획 및 고급 지침을 제공합니다. 이 솔루션은 광범위하게 테스트되었으며 작동하는 것으로 입증되었지만 실제 구현의 문제는 일반적으로 이 솔루션이 처리할 수 있는 것보다 더 복잡합니다. 따라서 Red Hat은 SAP HANA 및 Pacemaker 기반 RHEL 고가용성 애드온에 익숙한 인증된 컨설턴트가 이러한 솔루션을 설정하고 이후에 서비스하도록 권장합니다.

RHEL for SAP Solutions에 대한 자세한 내용은 Red Hat Enterprise Linux for SAP Solutions 서브스크립션 개요 를 참조하십시오.

이 솔루션은 숙련된 Linux 관리자 및 SAP Certified Technology Associates를 위한 것입니다. 이 솔루션에는 SAP HANA scale-Out with System Replication에 대한 계획 및 배포 정보와 RHEL 8 이상과의 Pacemaker 통합 정보가 포함되어 있습니다.

HANA 시스템 복제 및 Pacemaker 연결을 사용하여 SAP HANA 확장 환경 구축에는 몇 가지 복잡한 기술이 결합되어 있습니다. 이 문서에는 SAP HANA 구성을 설명하는 SAP 노트 또는 문서에 대한 참조가 포함되어 있습니다.

스케일 아웃 클러스터로서의 SAP HANA 시스템은 주로 새로운 하드웨어를 사용하여 증가하는 SAP HANA 환경을 쉽게 확장합니다. 이 기능을 위해 스토리지 및 네트워크와 같은 인프라의 필수 구성 요소에는 공유 리소스를 사용해야 합니다. 이 구성을 기반으로 대기 노드를 사용하여 환경 가용성을 확장할 수 있으므로 사이트 가져오기 전에 다른 수준의 고가용성 솔루션을 제공할 수 있습니다.

SAP HANA 스케일 아웃 솔루션은 추가 미러 역할을 하는 두 개 이상의 완전히 독립적인 스케일 아웃 솔루션을 포함하도록 확장할 수 있습니다. 시스템 복제 프로세스는 최대 성능을 가진 활성/수동 방법에 따라 데이터베이스를 미러링합니다. 통신은 네트워크를 통해 전적으로 이루어집니다. 추가 인프라 구성 요소는 필요하지 않습니다.

Pacemaker는 중요한 구성 요소가 실패할 때 시스템 복제 프로세스를 자동화합니다. 이를 위해 확장 환경 및 시스템 복제 프로세스의 데이터는 지속적인 작업을 보장하기 위해 평가됩니다. 클러스터는 클라이언트가 데이터베이스에 연결하는 데 사용하는 기본 IP 주소를 관리합니다. 이렇게 하면 데이터베이스 가져오기를 트리거하는 클러스터의 경우에도 클라이언트가 활성 인스턴스에 계속 연결할 수 있습니다.

1.1. 지원 업무

SAP HANA 어플라이언스 설정의 경우 SAP, 하드웨어 파트너 / 클라우드 공급자는 다음을 지원합니다.

  • 지원되는 하드웨어 및 환경
  • SAP HANA
  • 스토리지 구성
  • SAP HANA scale-Out 구성 (SAP 클러스터 설정)
  • SAP HANA 시스템 복제(SAP 클러스터 설정)

Red Hat은 다음을 지원합니다.

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

자세한 내용은 SAP HANA Master Guide - Operating SAP HANA - SAP HANA maintains - Roles and Responsibilities 를 참조하십시오. TDI 설정의 경우 SAP HANA Master Guide - Operating SAP HANA - SAP HANA Tailored Data Center Intergration 을 참조하십시오.

1.2. SAP HANA scale-Out

SAP HANA 확장 프로세스는 매우 동적입니다. 확장 가능한 SAP HANA 데이터베이스의 서버 인스턴스를 처음 설정하는 동안 추가 CPU 및 메모리로 시스템을 확장할 수 있습니다. 이러한 확장 수준이 더 이상 충분하지 않으면 SAP는 환경을 스케일 아웃 환경으로 확장합니다. 올바르게 준비된 인프라를 사용하면 추가 서버 인스턴스를 데이터베이스에 추가할 수 있습니다.

참고

"확장"하려면 SAP HANA 데이터베이스 1-n 서버를 기존 단일 노드 데이터베이스에 추가합니다. 현재 모든 노드는 CPU 및 RAM 측면에서 동일한 크기여야 합니다. 복제된 모든 데이터베이스 사이트의 구성은 동일해야 합니다. 따라서 데이터베이스를 다시 동기화하기 전에 먼저 모든 사이트에서 HANA 노드 수를 업그레이드해야 합니다.

사전 요구 사항은 공유 스토리지이며 모든 노드에 대한 해당 네트워크 연결입니다. 공유 스토리지는 데이터를 교환하고 대기 노드를 사용하는 데 사용되며, 장애 발생 시 기존 노드의 기능을 대신할 수 있습니다.

그림 1: 개요 확장 및 스케일 아웃 시스템

text

마스터 이름 서버

HANA scale-Out 환경에는 노드 중 하나에서 실행 중인 마스터 인스턴스를 정의하는 마스터 구성이 있습니다. 이러한 마스터 인스턴스는 애플리케이션 서버의 기본 연락처입니다. 스케일 아웃 고가용성 구성에 대해 최대 3개의 마스터 역할을 정의할 수 있습니다. 오류가 발생하면 마스터 역할이 자동으로 전환됩니다. 이 마스터 구성은 대기 호스트 구성과 호환되며 실패한 호스트에서 실패한 마스터 노드의 작업을 인수할 수 있습니다.

그림 2: 사용된 스토리지의 스케일 아웃 기능

text

1.3. scale-Out 스토리지 구성

스케일 아웃 스토리지 구성을 사용하면 SAP HANA를 스케일 아웃 환경에서 유연하게 사용할 수 있으며 오류가 발생할 경우 노드의 기능을 동적으로 이동할 수 있습니다. 모든 노드에서 데이터를 사용할 수 있으므로 SAP 인스턴스는 실패한 구성 요소 프로세스를 인수할 수 있어야 합니다.

SAP HANA 스케일 아웃 환경에는 두 가지 다른 공유 스토리지 시나리오가 있습니다.

  • 첫 번째 시나리오는 NFS 또는 IBM의 GPFS를 통해 모든 디렉토리의 파일 시스템을 제공하는 공유 파일 시스템입니다. 이 시나리오에서는 모든 노드에서 항상 데이터를 사용할 수 있습니다.
  • 두 번째 시나리오는 비공유 스토리지이며, 필요한 경우 필요한 데이터를 독점적으로 통합하는 데 사용됩니다. 모든 데이터는 SAP HANA 스토리지 커넥터 API를 통해 관리되며 적절한 메커니즘(예: SCSI 3 예약)을 사용하여 노드에서 액세스를 제거합니다.

두 경우 모두 /hana/shared 디렉토리가 공유 파일 시스템으로 사용 가능한지 확인합니다. 이 디렉터리는 시나리오와 독립적으로 사용 가능하고 공유되어야 합니다.

참고

이러한 공유 파일 시스템을 모니터링하려면 선택적으로 파일 시스템 리소스를 생성할 수 있습니다. /etc/fstab 의 항목을 제거해야 합니다. 마운트는 파일 시스템 리소스에서만 관리합니다.

1.3.1. 공유 스토리지

공유 파일 시스템은 모든 호스트에 필요한 데이터를 제공합니다. 구성하면 SAP HANA가 필요한 데이터에 액세스합니다. 공유 디렉터리는 모든 노드에 마운트되므로 데이터를 쉽게 공유할 수 있습니다. 배포 후 설치가 정상적으로 진행됩니다. SAP HANA는 /hana/data,/hana/log/hana/shared 의 모든 디렉토리에 액세스할 수 있습니다.

그림 3: 공유 스토리지를 사용하여 스케일 아웃 프로세스의 기능 및 작업 경로

text

1.3.2. 비공유 스토리지

비공유 스토리지 구성은 공유 스토리지 구성보다 더 복잡합니다. SAP HANA 설치 프로세스에서 지원되는 스토리지 구성 요소와 스토리지 커넥터의 개별 구성이 필요합니다. SAP HANA 데이터베이스는 여러 내부 변경(예: sudo 액세스, lvm 또는 다중 경로)으로 RHEL 시스템을 재구성합니다. 노드 정의가 변경될 때마다 SAP HANA는 SCSI3 예약을 통해 스토리지에 직접 액세스할 수 있습니다. 비공유 스토리지 구성은 스토리지 시스템에 직접 액세스할 수 있으므로 공유 스토리지 구성보다 최적화됩니다.

그림 4: 스토리지 커넥터와 함께 스케일 아웃 프로세스의 기능 및 작업 경로

text

1.4. SAP HANA 시스템 복제

SAP HANA 시스템 복제는 SAP HANA 환경에서 여러 사이트에서 데이터베이스를 복제할 수 있는 방법을 제공합니다. 네트워크는 데이터를 복제하고 두 번째 SAP HANA 설치로 사전 로드합니다. SAP HANA 시스템 복제는 기본 HANA scale-Out 사이트의 오류가 발생하는 경우 복구 시간을 크게 줄입니다. 하드웨어, 소프트웨어 및 구성 설정에서 복제된 모든 환경이 동일한 사양으로 빌드되었는지 확인해야 합니다.

1.5. 네트워크 구성

세 개의 네트워크는 RHEL HA 애드온에서 관리하는 SAP HANA 스케일 아웃 시스템 복제 설정의 최소 네트워크 요구 사항입니다. 하지만 SAP에서 권장하는 네트워크 구성은 고성능 프로덕션 환경을 구축하는 데 사용해야 합니다.

세 개의 네트워크는 다음과 같습니다.

  • 공용 네트워크: 애플리케이션 서버 및 클라이언트 연결에 필요합니다(최소 요구 사항).
  • 통신 네트워크: 시스템 복제 통신, 노드 간 통신 및 스토리지 구성에 필요합니다.
  • heartbeat 네트워크: HA 클러스터 통신에 필요합니다.

권장 구성은 다음 네트워크를 사용하여 설계되었습니다.

  • 애플리케이션 서버 네트워크
  • 클라이언트 네트워크
  • 복제 네트워크
  • 스토리지 네트워크
  • 두 개의 노드 간 네트워크
  • 백업 네트워크
  • 관리자 네트워크
  • Pacemaker 네트워크

이 솔루션의 구성에 따라 SAP HANA 구성 프로세스의 변경 사항이 필요합니다. 시스템 복제 호스트 이름 확인이 시스템 복제에 사용되는 네트워크로 조정됩니다. 이는 SAP HANA 네트워크 요구 사항 설명서에 설명되어 있습니다.

그림 5: SAP HANA 시스템 복제를 통해 연결된 두 개의 스케일 아웃 시스템의 네트워크 구성 예

text

1.6. RHEL HA 애드온

이 문서에 설명된 솔루션에서 RHEL HA 애드온은 두 사이트 간에 SAP HANA scale-Out 시스템 복제 작업을 보장하는 데 사용됩니다. 이러한 이유로 SAP HANA 스케일 아웃 환경에 대해 특별히 게시된 리소스 에이전트가 사용되어 SAP HANA scale-Out 시스템 복제 환경을 관리합니다. SAP HANA Scale-Out System Replication 환경의 현재 상태에 따라 활성 마스터 노드를 사용 가능한 대기 노드로 전환하거나 스케일 아웃 시스템 복제 환경의 전체 활성 측면을 두 번째 사이트로 전환하도록 결정을 내릴 수 있습니다. 이 솔루션의 경우 펜싱 메커니즘은 분할- Cryostat 별자리를 방지하도록 구성됩니다.

그림 6: 시스템 복제 환경에 따른 Pacemaker 통합 개요

text

RHEL 8에서 HA 클러스터를 설정하기 위해 RHEL HA 애드온을 사용하는 방법에 대한 자세한 내용은 다음 설명서를 참조하십시오.

SAP HANA 스케일 아웃 리소스 에이전트가 모든 환경의 데이터를 사용하므로 SAP HANA 데이터베이스의 스케일 아웃 및 시스템 복제 방법을 이해하는 것이 중요합니다.

처음에는 리소스 에이전트가 모든 사이트에서 안정적인 스케일 아웃 환경을 조사하고 있습니다. SAP HANA 확장 마스터 네임서버 노드가 구성되어 있고 유효한 상태에 있는지 확인합니다. 그 후 리소스 에이전트는 시스템 복제 상태를 확인합니다. 모든 것이 올바르게 작동하는 경우 가상 IP 주소를 시스템 복제의 마스터 사이트의 활성 마스터 노드에 연결합니다. 실패 상태에서는 시스템 복제 구성을 자동으로 전환하도록 클러스터가 구성됩니다.

실패 상태의 정의는 마스터 이름 서버의 구성에 따라 달라집니다. 예를 들어 하나의 마스터 이름 서버가 구성된 경우 마스터 노드가 실패하면 클러스터가 다른 데이터 센터로 직접 전환됩니다. 최대 3개의 마스터 이름 서버가 구성된 경우 다른 데이터 센터로 전환하기 전에 SAP HANA 환경이 복구됩니다. Pacemaker에서 점수 번호를 사용하여 수행해야 할 작업을 결정하고 있습니다. SAP HANA를 실행할 때는 이러한 매개변수가 클러스터 설정에서 변경되지 않는 것이 매우 중요합니다.

Pacemaker 구성은 Shoot The Other Node In The Head (STONITH)를 사용하는 펜싱 구성을 기반으로 합니다. 응답하지 않는 노드가 데이터에 액세스하지 않음을 의미하지는 않습니다. STONITH를 사용하여 노드를 차단하고 데이터가 안전한지 확인합니다. STONITH는 악성 노드 또는 동시 액세스로 인해 데이터가 손상되지 않도록 보호합니다. 두 사이트 간의 통신이 손실되면 두 사이트 모두 작업을 계속할 수 있다고 생각할 수 있으므로 데이터 손상이 발생할 수 있습니다. 이를 split- Cryostat 시나리오라고도 합니다. 이를 방지하려면 쿼럼을 추가할 수 있으므로 계속할 수 있는 사용자를 결정하는 데 도움이 됩니다. 쿼럼은 추가 노드 또는 qdevice 일 수 있습니다. 이 예제에서는 추가 노드 대다수 제조자를 사용하고 있습니다.

그림 7: 스케일 아웃이 포함된 시스템 복제의 예

text

1.7. 리소스 에이전트

클러스터 구성은 두 개의 리소스 에이전트와 함께 작동합니다.

1.7.1. SAPHanaTopology 리소스 에이전트

SAPHanaTopology 리소스 에이전트는 SAP HANA 환경에서 모든 데이터를 수신하는 복제된 리소스입니다. SAP HANA의 "시스템 복제 후크"라는 구성 프로세스는 이 데이터를 생성합니다. 이 데이터를 기반으로 리소스 에이전트는 Pacemaker 서비스에 대한 Pacemaker 점수를 계산합니다. 점수는 클러스터에서 한 사이트에서 다른 사이트로 시스템 복제 전환을 시작해야 하는지를 결정하는 데 사용됩니다. 점수 값이 사전 정의된 값보다 크면 클러스터에서 시스템 복제를 전환합니다.

1.7.2. SAPHanaController 리소스 에이전트

SAPHanaController 리소스 에이전트는 SAP HANA 환경을 제어하고 자동 전환에 대한 모든 명령을 실행하거나 시스템 복제의 활성 사이트를 변경합니다.

2장. SAP HANA scale-Out 환경 준비

시스템 복제 및 Pacemaker 통합을 갖춘 완전한 SAP HANA scale-Out 환경을 위해 필요한 모든 데이터를 미리 수집하고 설치 프로세스를 위한 인프라를 준비하는 것이 좋습니다. SAP HANA를 설치하려면 SAP 자체를 포함하여 다양한 운영 체제 구성 요소에서 많은 수의 변수가 필요합니다. 이 장에서는 최소 요구 사항이 설명되어 있습니다.

2.1. 서브스크립션 및 리포지토리

SAP HANA 배포에 대한 요구 사항:

  • SAP HANA를 실행하는 모든 RHEL 서버에서 RHEL for SAP Solutions 서브스크립션을 활성화해야 합니다.
  • 모든 시스템에 올바른 패키지 버전이 설치되었는지 확인하기 위한 satellite 서버가 있는 스테이징 환경입니다. RHEL 8에 SAP HANA를 설치하려면 다음 리포지토리를 활성화해야 합니다.
  • rhel-8-SAP-Solutions:

    • rhel-8-for-<arch>-sap-solutions-rpms (RHEL 8.10)
    • rhel-8-for-<arch>-sap-solutions-e4s-rpms (RHEL 8.0에서 8.8)

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

  • x86_64
  • ppc64le

자세한 내용은 SAP Solutions 서브스크립션 개요 및 SAP 서브스크립션 및 리포지토리 용 RHEL을 참조하십시오.

이 솔루션에는 별도의 스토리지 네트워크, 백업 네트워크 및 관리 네트워크가 필요하지 않습니다. 네트워크 구성 외에도 Pacemaker를 사용하여 추가 가상 IP를 구성합니다. 이 IP 주소를 사용하면 SAP 애플리케이션 서버 및 특정 최종 사용자가 SAP HANA 환경과 통신할 수 있습니다.

다음 예제에서는 8개의 SAP HANA 노드로 구성된 네트워크 구성에 대한 최소 요구 사항을 나열합니다.

Expand

매개변수

현재의

domainname

example.com

NTP Server 1

0.de.pool.ntp.org

NTP Server 2

1.de.pool.ntp.org

가상 IP

10.111.222.52/24

참고

참고: Pacemaker는 SAP 애플리케이션 서버와 SAP HANA 데이터베이스 간의 통신을 위해 공용 네트워크에서 VIP(가상 IP) 주소를 관리합니다. 다음 예제에서는 세 개의 NIC(네트워크 인터페이스 카드)가 있는 호스트에 매핑되는 물리적 주소를 나열합니다.

Expand
표 2.1. 데이터 센터 1

호스트 이름

공용 네트워크

HANA 통신

Pacemaker

dc1hana01

10.0.1.21/24

192.168.101.101/24

192.168.102.101/24

dc1hana02

10.0.1.22/24

192.168.101.102/24

192.168.102.102/24

dc1hana03

10.0.1.23/24

192.168.101.103/24

192.168.102.103/24

dc1hana04

10.0.1.24/24

192.168.101.104/24

192.168.102.104/24

Expand
표 2.2. 데이터 센터 2

호스트 이름

공용 네트워크

HANA 통신

Pacemaker

dc2hana01

10.0.1.31/24

192.168.101.201/24

192.168.102.201/24

dc2hana02

10.0.1.32/24

192.168.101.202/24

192.168.102.202/24

dc2hana03

10.0.1.33/24

192.168.101.203/24

192.168.102.203/24

dc2hana04

10.0.1.34/24

192.168.101.204/24

192.168.102.204/24

Expand

호스트 이름

공용 네트워크

Pacemaker

majoritymaker

10.0.1.41/24

192.168.102.100/24

2.2. 스토리지

SAP HANA scale-Out 시나리오에 대한 스토리지를 구성하는 두 가지 방법이 있습니다.

  • 공유 스토리지
  • 비공유 스토리지

스토리지 수준의 스케일 아웃 환경 간에는 통신이 없습니다. 따라서 SAP HANA 시스템 복제가 예상대로 작동하는지 확인하려면 각 스케일 아웃 환경에서 스토리지 구성을 완료해야 합니다.

2.2.1. 공유 스토리지

공유 스토리지 구성에는 방법과 마운트 지점이 필요합니다. NFS를 통해 공유 스토리지를 구성할 때 NFS 서버, NFS 경로 및 디렉터리가 필요하며 /hana/data,/hana/log, /hana/shared 디렉토리를 제공해야 합니다.

Expand
표 2.3. 데이터 센터 1

방법

NFS 서버

NFS 경로

마운트 지점

NFS

10.0.1.61/24

/data/dc1/data

/hana/data

NFS

10.0.1.61/24

/data/dc1/log

/HANA/log

NFS

10.0.1.61/24

/data/dc1/shared

/HANA/shared

Expand
표 2.4. 데이터 센터 2

방법

NFS 서버

NFS 경로

마운트 지점

NFS

10.0.1.61/24

/data/dc2/data

/hana/data

NFS

10.0.1.61/24

/data/dc2/log

/HANA/log

NFS

10.0.1.61/24

/data/dc2/shared

/HANA/shared

2.2.2. 비공유 스토리지

비공유 스토리지 구성을 사용하려면 스토리지 커넥터를 통합해야 합니다. 스토리지 커넥터는 SCSI 또는 LVM 잠금 메커니즘을 통해 LUN 또는 LVM 장치에 대한 액세스를 관리합니다. 이 구성 유형의 경우 WWID 또는 LVM 장치가 필요합니다. 비공유 스토리지 구성의 경우 각 스케일 아웃 환경에 하나의 공유 디렉터리가 필요합니다. 이 구성은 SAP HANA 파이버 채널 스토리지 커넥터 관리 가이드에 설명되어 있습니다.

Expand
표 2.5. 비공유 스토리지 예

매개변수

현재의

ha_provider

hdb_ha.fcClient

Expand
표 2.6. 데이터 센터 1

방법

매개변수 이름

WWID

SAN

partition_1_data wwid

3600508b400105e210000900000491000

SAN

partition_1_log wwid

3600508b400105e210000900000492000

SAN

partition_2_data wwid

3600508b400105e210000900000493000

SAN

partition_2_log wwid

3600508b400105e210000900000494000

SAN

partition_3_data wwid

3600508b400105e210000900000495000

SAN

partition_3_log wwid

3600508b400105e210000900000496000

Expand
표 2.7. 데이터 센터 2

방법

매개변수 이름

WWID

SAN

partition_1_data wwid

3600508b400105e210000900000491000

SAN

partition_1_log wwid

3600508b400105e210000900000492000

SAN

partition_2_data wwid

3600508b400105e210000900000493000

SAN

partition_2_log wwid

3600508b400105e210000900000494000

SAN

partition_3_data wwid

3600508b400105e210000900000495000

SAN

partition_3_log wwid

3600508b400105e210000900000496000

2.2.3. 공유 장치

Expand
표 2.8. 데이터 센터 1

방법

NFS 서버

NFS 경로

마운트 지점

NFS

10.0.1.61

/data/dc1/shared

/HANA/shared

Expand
표 2.9. 데이터 센터 2

방법

NFS 서버

NFS 경로

마운트 지점

NFS

10.0.1.61

/data/dc2/shared

/HANA/shared

참고

공유 스토리지를 파일 시스템 리소스에서 관리하는 경우 마운트를 /etc/fstab 에 추가해서는 안 됩니다.

2.3. SAP HANA

SAP HANA 시스템 복제를 사용하여 스케일 아웃 환경을 위한 SAP HANA 배포를 빌드하는 4단계가 있습니다.

  1. 운영 체제 구성.
  2. SAP 호스트 에이전트 설치.
  3. 두 개의 스케일 아웃 환경 배포.
  4. SAP HANA scale-Out 환경 둘 다 실행 후 HANA 시스템 복제 활성화

RHEL 환경 준비에는 SAP HANA 설치 소스 프로비저닝이 포함됩니다. 설치 소스는 SAP에서 사용할 수 있습니다. 공유 디렉터리를 통해 제공되거나 모든 호스트에서 수동으로 복사되는 설치 소스를 다운로드하려면 SAP 계정이 있어야 합니다.

SAP 소프트웨어는 SAP 소프트웨어 센터에서 다운로드할 수 있습니다. https://me.sap.com/softwarecenter 이 예제에서는 소프트웨어를 공유 디렉토리 /install에 배치합니다.

Expand
표 2.10. SAP HANA 호스트 에이전트를 위한 설치 소스

소프트웨어

경로

호스트 에이전트

/install/51053381/DATA_UNITS/HDB_SERVER_LINUX_X86_64/server/HOSTAGEN T.TGZ

SAP HANA

/install/51053381/DATA_UNITS/HDB_SERVER_LINUX_X86_64/

SAP HANA 호스트 에이전트 배포에는 다음 정보가 필요합니다.

Expand

매개변수

현재의

sapadm 사용자 암호

Us3Your0wnS3cur3Password

Hostagent SSL 인증서 암호

Us3Your0wnS3cur3Password

sapadm 사용자 ID

996

SAP HANA 배포의 경우 다음과 같은 추가 매개변수가 필요합니다.

Expand

매개변수

현재의

shmadm 그룹 ID

20201

sapsys 그룹 ID

996

SID

RH1

시스템 번호

10

<Sid>adm 암호

Us3Your0wnS3cur3Password

HANA 구성 요소

클라이언트, 서버

시스템 유형

Master

시스템 사용

Custom

시스템 사용자 암호(SAP)

Us3Your0wnS3cur3Password

Expand
표 2.11. SAP HANA 배포 데이터 센터 1

hdblcm 매개변수

현재의

hostname

dc1hana01

호스트 매개변수 추가

dc1hana02:role=worker,dc1hana03:role=worke r,dc1hana04:role=standby

ScaleOut Network DC1 internal_network

192.168.101.0/24

Expand
표 2.12. SAP HANA 배포 데이터 센터 2

hdblcm 매개변수

현재의

hostname

dc2hana01

호스트 매개변수 추가

dc2hana02:role=worker,dc2hana03:role=worke r,dc2hana04:role=standby

ScaleOut Network DC2 internal_network

192.168.101.0/24

Expand
표 2.13. CryostatR 구성

매개변수

현재의

작업 모드

logrelay

복제 모드

sync

백업 디렉터리

/hana/shared/L01/HDB10/backup/

Expand
표 2.14. 데이터 센터 1

매개변수

현재의

시스템 복제 이름

DC1

CryostatR 유형

기본 설정

CryostatR 원격 호스트

dc1hana01

SR 네트워크

192.168.101.0/24

Expand
표 2.15. 데이터 센터 2

매개변수

현재의

시스템 복제 이름

DC2

CryostatR 유형

Secondary

CryostatR 원격 호스트

dc2hana01

SR 네트워크

192.168.101.0/24

2.4. Pacemaker

Pacemaker는 SAP HANA scale-Out 시스템 복제의 구성을 관리합니다. 작동 중인 구성의 경우 Pacemaker에 펜싱 방법이 필요합니다. 이를 위해 STONITH Pacemaker 구성을 통해 수행할 수 있습니다. STONITH 방법 개요는 RHEL High Availability Clusters-Fencing/STONITH에 대한 지원 정책을 참조하십시오. 사용 가능한 fence-agent가 많이 있습니다. 또한 확인하십시오.

yum search fence-agents
Copy to Clipboard Toggle word wrap

Pacemaker 펜싱 구성은 기본 하드웨어 또는 가상화 환경에 따라 다릅니다. 이 솔루션에서는 RHV(Red Hat Virtualization)가 사용되므로 환경에 따라 fence_rhevm 펜싱 방법을 구성해야 합니다. 

분할 시나리오를 방지하려면 쿼럼 이 필요합니다. 이는 추가 클러스터 노드 대다수 제조 업체를 사용하여 실현됩니다. 쿼럼에 대한 자세한 내용은 Design Guidance for RHEL High Availability Clusters - Considerations with qdevice Quorum and Exploring Concepts of RHEL High Availability Clusters-Quorum 을 참조하십시오.

Expand
표 2.16. majoritymaker 매개변수

호스트 이름

공용 네트워크

Pacemaker

주요 제조 업체

10.0.1.42/24

192.168.101.100/24

Expand
표 2.17. 일반 매개변수

매개변수

현재의

클러스터 이름

hana-scaleout-sr

펜싱 방법

fence_rhevm

펜싱 ipaddr/hostname

10.20.30.40

fencing 매개변수

fencing_user/password

Corosync 네트워크

192.168.101.0/24

암호 hacluster 사용자

Us3Your0wnS3cur3Password

이 예제에서는 fence_rhevm 을 사용합니다. fence_rhevm 구성에 대한 자세한 내용은 How do I configure a fence_rhevm stonith device in a Red Hat High Availability cluster? 를 참조하십시오.

3장. SAP HANA scale-Out 환경 구성

이 솔루션은 시스템 복제 및 Pacemaker를 사용하여 SAP HANA scale-Out 환경을 설정 및 구성하는 것입니다. 이는 두 부분으로 구분됩니다. 기본 RHEL 구성 설정은 각 환경에 따라 다릅니다. 시스템 복제 및 Pacemaker를 위한 SAP HANA scale-Out 배포 및 구성.

최소 요구 사항은 사이트당 2개의 노드와 다른 대부분의 제조 업체 노드인 쿼럼 장치를 사용하는 것입니다. 여기에 설명된 테스트 환경은 8개의 SAP HANA 노드와 클러스터 쿼럼을 위한 추가 다수의 제조 업체 노드로 구축됩니다. 모든 SAP HANA 노드에는 50GB 루트 디스크와 /usr/sap 디렉터리에 대한 추가 80GB 파티션이 있습니다. 모든 SAP HANA 노드에는 32GB RAM이 있습니다. 대부분의 제조 업체 노드는 더 작을 수 있습니다 (예: 50GB 루트 디스크 및 8GB의 RAM). 공유 디렉터리의 경우 128GB인 NFS 풀이 두 개 있습니다. 원활한 배포를 위해서는 이 문서의 SAP HANA scale-Out 환경 준비 섹션에 설명된 대로 모든 필수 매개변수를 기록하는 것이 좋습니다. 다음 예제에서는 필요한 구성 매개변수에 대한 개요를 제공합니다.

환경

Expand

Pacemaker

4 노드 (3 + 1)

주요 제조 업체

4 노드 (3 + 1)

공유 스토리지(DC용 NFS1)

시스템 복제

공유 스토리지(DC2용 NFS)

네트워크

  • 공용 네트워크
  • HANA 네트워크
  • 클러스터 네트워크

네트워크

  • 공용 네트워크
  • HANA 네트워크
  • 클러스터 네트워크

3.1. 기본 RHEL 구성 설정

이 섹션의 절차를 사용하여 환경에 기본 RHEL 구성을 설정합니다. SAP-참고 2772999에서 RHEL 8을 확인할 수도 있습니다. Red Hat Enterprise Linux 8.x: 설치 및 구성 및 2777782 - SAP HANA DB: Recommended OS Settings for RHEL 8.

SAP Note 2235581 - SAP HANA: 지원되는 운영 체제 를 확인하여 SAP HANA 실행을 위해 사용할 RHEL 8 마이너 릴리스가 지원되는지 확인하십시오. 또한 서버/스토리지 벤더 또는 클라우드 공급자를 확인하여 SAP HANA 및 RHEL 8의 조합이 사용할 서버/스토리지 또는 클라우드 인스턴스에서 지원되는지 확인해야 합니다.

최신 RHEL 릴리스에 대한 자세한 내용은 고객 포털에서 사용 가능한 릴리스 정보 문서를 참조하십시오. 설치된 버전을 찾고 업데이트해야 하는지 확인하려면 다음 명령을 실행합니다.

[root:~]# subscription-manager release
Release: 8.2
[root:~]# cat /etc/redhat-release Red Hat Enterprise Linux
release 8.2 (Ootpa)
[root:~]#
Copy to Clipboard Toggle word wrap

3.1.1. RHEL 시스템 등록 및 리포지토리 활성화

참고
  • 이 솔루션에서 Red Hat은 스테이징 구성이 없으므로 시스템 등록을 직접 받습니다. 재현 가능한 환경을 가지도록 SAP HANA 시스템에 대한 스테이징 구성을 생성하는 것이 좋습니다. Satellite Server는 스테이징 프로세스(dev/qa/prod )도 포함하는 패킷 관리를 제공합니다. 자세한 내용은 Satellite Server 제품 정보를 참조하십시오.
  • 시스템을 등록하기 전에 호스트 이름이 올바른지 확인해야 합니다. 따라서 서브스크립션을 관리할 때 시스템을 더 쉽게 식별할 수 있습니다. 자세한 내용은 Red Hat Enterprise Linux 7, 8, 9에서 호스트 이름을 설정하는 방법을 참조하십시오. RHEL 8의 경우 기본 시스템 설정 구성을 확인합니다.

사전 요구 사항

  • RHEL 8이 설치되어 있습니다.
  • 서브스크립션 관리를 위한 'majoritymaker'를 포함하여 모든 호스트에서 root 사용자로 로그인했습니다.

프로세스

  1. 스테이징 구성이 없는 경우 다음 명령을 사용하여 SAP HANA 테스트 배포 등록을 RHSM(Red Hat Subscription Management)에 직접 할당할 수 있습니다.

    [root:~]# subscription-manager register
    Copy to Clipboard Toggle word wrap
  2. 사용자 이름과 암호를 입력합니다.
  3. rhel-8-for-x86_64-sap-solutions-rpms 리포지토리에서 사용할 수 있는 모든 풀을 나열합니다.

    [root:~]# subscription-manager list --available --matches="rhel-8-for-x86_64-sap-solutions-rpms"
    Copy to Clipboard Toggle word wrap

    자세한 내용은 기본 시스템 설정 구성 을 참조하십시오.

    참고

    회사 풀 ID가 필요합니다. 목록이 비어 있는 경우 Red Hat에 회사의 서브스크립션 목록을 문의하십시오.

  4. 서버 인스턴스에 풀 ID를 연결합니다.

    [root:~]# subscription-manager attach --pool=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    Copy to Clipboard Toggle word wrap
  5. sap-solutions 리포지토리가 활성화되어 있는지 확인합니다.

    [root:~]# yum repolist | grep sap-solution
    rhel-8-for-x86_64-sap-solutions-rpms RHEL for x86_64 - SAP Solutions (RPMs)
    Copy to Clipboard Toggle word wrap

    RHEL 8 필수 리포지터리를 활성화할 수 있습니다.

    [root:~]# subscription-manager repos --enable=rhel-8-for-x86_64-sap-solutions-rpms --enable=rhel-8-for-x86_64-highavailability-rpms
    Copy to Clipboard Toggle word wrap

    자세한 내용은 SAP 서브스크립션 및 리포지토리 RHEL을 참조하십시오.

  6. 모든 시스템에서 패키지를 업데이트하여 올바른 RPM 패키지 및 버전이 설치되었는지 확인합니다.

    [root:~]# yum update -y
    Copy to Clipboard Toggle word wrap

3.1.2. 네트워크 설정 구성

이 섹션에서는 이 솔루션에서 사용되는 네트워크 매개 변수에 대해 설명합니다. 이 솔루션의 구성은 환경에 따라 달라졌으며 예제로 간주해야 합니다. 네트워크 구성은 SAP 사양에 따라 수행해야 합니다. 노드 dc1hana01 의 예는 이 문서 의 SAP HANA scale-Out 환경 준비 섹션에 포함되어 있습니다.

[root:~]# nmcli con add con-name eth1 ifname eth1 autoconnect yes type ethernet ip4 192.168.101.101/24 nmcli con add con-name eth2 ifname eth2 autoconnect yes type ethernet ip4 192.168.102.101/24
Copy to Clipboard Toggle word wrap

3.1.3. /etc/hosts 구성

RHEL 시스템에서 /etc/hosts 를 구성하려면 다음 절차를 사용하십시오. 이 구성은 일관된 호스트 이름을 확인하는 데 필요합니다.

프로세스

  1. 모든 호스트에서 root 사용자로 로그인하고 /etc/hosts 파일을 구성합니다.
  2. 스케일 아웃 환경에서 모든 SAP HANA 호스트에 대한 호스트 항목을 만듭니다.
  3. hosts 파일을 모든 노드에 복사합니다. 다음 출력 예에 표시된 순서대로 호스트 이름을 설정하는 것이 중요합니다. 그렇지 않은 경우 배포 또는 운영 프로세스 중에 SAP HANA 환경이 실패합니다.

    참고

    이 구성은 이 문서의 SAP HANA scale-Out 환경 준비 섹션에 나열된 매개 변수를 기반으로 합니다.

    [root:~]# cat << EOF >> /etc/hosts
    10.0.1.21 dc1hana01.example.com dc1hana01
    10.0.1.22 dc1hana02.example.com dc1hana02
    10.0.1.23 dc1hana03.example.com dc1hana03
    10.0.1.24 dc1hana04.example.com dc1hana04
    10.0.1.31 dc2hana01.example.com dc2hana01
    10.0.1.32 dc2hana02.example.com dc2hana02
    10.0.1.33 dc2hana03.example.com dc2hana03
    10.0.1.34 dc2hana04.example.com dc2hana04
    10.0.1.41 majoritymaker.example.com majoritymaker
    EOF
    Copy to Clipboard Toggle word wrap

3.1.4. 디스크 구성

RHEL 시스템에서 디스크를 구성하려면 다음 절차를 완료합니다.

프로세스

  1. 추가 /usr/sap 파티션에 대해 모든 SAP HANA 호스트에서 사용자 root로 로그인합니다.

    참고

    일반적으로 기본 XFS 형식 및 마운트 옵션은 대부분의 워크로드에 적합합니다. 파일 시스템의 워크로드에 도움이 될 것으로 예상되지 않는 한 기본값을 사용하는 것이 좋습니다. 지원되는 모든 파일 시스템을 사용할 수 있습니다. 자세한 내용은 SAP Note 2972496 - SAP HANA 파일 시스템 유형을 참조하십시오. 소프트웨어 RAID를 사용하는 경우 mks.xfs 명령은 하드웨어에 맞게 올바른 스트라이프 단위 및 너비로 자동으로 구성됩니다.

  2. 필요한 마운트 지점을 생성합니다.

    [root:~]# mkdir -p /usr/sap
    Copy to Clipboard Toggle word wrap
  3. 논리 볼륨에서 XFS를 기반으로 파일 시스템을 생성합니다.

    [root:~]# mkfs -t xfs -b size=4096 /dev/sdb
    Copy to Clipboard Toggle word wrap

    XFS 파일 시스템 생성 및 튜닝 가능성에 대한 자세한 내용은 man mkfs.xfs 명령을 실행합니다. XFS 파일 시스템의 최적 성능을 얻으려면 XFS 파일 시스템 튜닝에 대한 몇 가지 모범 사례에서 참조하십시오.

  4. mount 지시문을 /etc/fstab:에 씁니다.

    [root:~]# echo "/dev/sdb /usr/sap xfs defaults 1 6" >> /etc/fstab
    Copy to Clipboard Toggle word wrap
    참고

    마운트 지점을 파일 시스템 리소스로 관리하는 경우 이러한 파일 시스템은 나중에 /etc/fstab 파일에서 다시 주석 처리해야 합니다. 

  5. /etc/fstab 의 XFS 파일 시스템을 마운트할 수 있는지 확인합니다.

    [root:~]# mount /usr/sap
    Copy to Clipboard Toggle word wrap

3.1.5. 각 데이터 센터의 공유 스토리지로 스케일 아웃 구성

참고

클라우드 환경에서는 다른 가용성 영역에 동일한 마운트 지점의 다양한 소스가 있을 수 있습니다.

데이터 센터마다 공유 서비스로 스케일 아웃을 구성하려면 다음 절차를 사용하십시오.

프로세스

  1. 공유 스토리지 구성에 대해 모든 SAP HANA 호스트에서 사용자 root로 로그인합니다.

    참고

    nfs-utils 패키지가 필요합니다. 모든 데이터 센터에는 자체 스토리지 구성이 필요합니다. 이 예에서는 스토리지 구성이 공유 스토리지 환경으로 빌드됩니다. 두 스케일 아웃 환경 모두 자체 NFS 공유를 사용하고 있습니다. 이 구성은 이 문서 의 SAP HANA scale-Out 환경 준비 섹션에 있는 정보를 기반으로 합니다. 프로덕션 환경에서 이 절차는 선호하는 하드웨어 벤더가 지원하는 대로 구성해야 합니다.

  2. nfs-utils 패키지를 설치합니다.

    [root:~]# yum install -y nfs-utils
    Copy to Clipboard Toggle word wrap
  3. 데이터 센터 1에서 노드를 구성합니다.

    [root:~]# mkdir -p /hana/{shared,data,log}
    cat <<EOF >> /etc/fstab
    10.0.1.61:/data/dc1/shared /hana/shared nfs4 defaults 0 0
    10.0.1.61:/data/dc1/data /hana/data nfs4 defaults 0 0
    10.0.1.61:/data/dc1/log /hana/log nfs4 defaults 0 0
    EOF
    Copy to Clipboard Toggle word wrap

    볼륨을 마운트하려면 다음 명령을 실행합니다.

    [root:~]# mount -a
    Copy to Clipboard Toggle word wrap
  4. 데이터 센터 2에서 노드 구성:

    [root:~]# mkdir -p /hana/{shared,data,log}
    cat <<EOF >> /etc/fstab
    10.0.1.62:/data/dc2/shared /hana/shared nfs4 defaults 0 0
    10.0.1.62:/data/dc2/data /hana/data nfs4 defaults 0 0
    10.0.1.62:/data/dc2/log /hana/log nfs4 defaults 0 0
    EOF
    Copy to Clipboard Toggle word wrap

    볼륨을 마운트하려면 다음 명령을 실행합니다.

    [root:~]# mount -a
    Copy to Clipboard Toggle word wrap

3.2. SAP HANA 구성 및 배포

3.2.1. SAP HANA 실행에 필요한 RHEL 설정 구성

SAP HANA 실행을 위해 HA 클러스터 노드를 구성하려면 다음 절차를 사용하십시오. HANA 인스턴스가 실행 중인 각 RHEL 시스템에서 다음 단계를 수행해야 합니다.

사전 요구 사항

  1. 공유 스토리지 구성의 모든 호스트에서 root 사용자로 로그인했습니다.
  2. SAP HANA 설치 소스를 준비했습니다.
  3. SAP HANA와 호환되는 호스트 이름을 설정했습니다.

    [root:~]# hostnamectl set-hostname dc1hana01
    Copy to Clipboard Toggle word wrap

절차: /etc/hosts확인

  1. /etc/hosts 에 시스템의 호스트 이름 및 IP 주소와 일치하는 항목이 있는지 확인합니다. .example.com:

    [root:~]# hostname
    <hostname>
    [root:~]# hostname -s
    <hostname>
    [root:~]# hostname -f
    <hostname>.example.com
    [root:~]# hostname -d
    example.com
    Copy to Clipboard Toggle word wrap
  2. 시스템 언어를 영어로 설정합니다.

    [root:~]# localectl set-locale LANG=en_US.UTF-8
    Copy to Clipboard Toggle word wrap

절차: NTP 구성

  1. /etc/chrony.conf 를 편집하고 서버 행이 ntp 서버를 반영하는지 확인합니다.

    [root:~]# yum -y install chrony
    [root:~]# systemctl stop chronyd.service
    Copy to Clipboard Toggle word wrap
  2. 시간 서버 항목을 확인합니다.

    [root:~]# grep ^server /etc/chrony.conf
    server 0.de.pool.ntp.org
    server 1.de.pool.ntp.org
    Copy to Clipboard Toggle word wrap
  3. chrony 서비스를 활성화하고 시작합니다.

    [root:~]# systemctl enable chronyd.service
    [root:~]# systemctl start chronyd.service
    [root:~]# systemctl restart systemd-timedated.service
    Copy to Clipboard Toggle word wrap
  4. chrony 서비스가 활성화되었는지 확인합니다.

    [root:~]# systemctl status chronyd.service
    chronyd.service enabled
    [root:~]# chronyc sources
    210 Number of sources = 3
    MS Name/IP address Stratum Poll Reach LastRx Last sample
    =====================================================================
    ^* 0.de.pool.ntp.org 2 8 377 200 -2659ns[-3000ns] +/- 28ms
    ^-de.pool.ntp.org 2 8 377 135 -533us[ -533us] +/- 116ms
    ^-ntp2.example.com 2 9 377 445 +14ms[ +14ms] +/- 217ms
    Copy to Clipboard Toggle word wrap

3.2.2. SAP HANA용 RHEL 사전 구성

SAP HANA용 RHEL 시스템을 사전 구성하려면 다음 절차를 사용하십시오. 이 구성은 게시된 SAP 노트를 기반으로 합니다. 클러스터의 모든 SAP HANA 호스트에서 사용자 root로 다음 절차를 실행합니다.

참고

3.2.3. SAP 호스트 에이전트 설치

SAP Host Agent는 SAP 커널 7.20 이상의 모든 새 SAP 시스템 인스턴스 또는 인스턴스를 설치하는 동안 자동으로 설치됩니다. 대부분의 경우 이 수동 설치는 필요하지 않습니다. 먼저 SAP HANA를 설치한 다음 saphostagent 의 설치가 필요한지 확인하십시오.

사전 요구 사항

  • Cryostat 구성이 표준 값(0022.에 응답해야 함)으로 구성되어 있는지 확인했습니다. 그렇지 않으면 SAP 호스트 에이전트 설치에 실패할 수 있습니다.
  • SAP 호스트 에이전트 설치의 모든 호스트에서 root 사용자로 로그인했습니다.
참고

사용자/그룹이 존재하지 않고 SAP 소프트웨어 설치를 통해 SAPHOSTAGENT 가 설치/업그레이드되는 경우 사용자 및 그룹은 SAP HANA 설치 중에 생성됩니다.

절차 (선택 사항)

  1. SAP Host Agent의 sapadmsapsys 사용자를 생성하고 sapadm 사용자의 암호를 설정합니다. 사용자 sapadm 의 UID 996 및 그룹 sapsys 의 GID 79는 이 문서의 SAP HANA scale-Out 환경 준비 섹션에 있는 매개 변수를 기반으로 합니다.

    [root:~]# adduser sapadm --uid 996
    [root:~]# groupadd sapsys --gid 79
    [root:~]# passwd sapadm
    Copy to Clipboard Toggle word wrap
  2. temp 디렉터리를 만들고 설치 소스의 압축을 풀고 temp 디렉터리에서 SAP Host Agent를 설치합니다. INSTALLDIRHOSTAGENT 변수는 다음과 같습니다.

    [root:~]# export TEMPDIR=$(mktemp -d)
    [root:~]# export
    INSTALLDIRHOSTAGENT=/install/HANA/DATA_UNITS/HDB_SERVER_LINUX_X86_64/
    [root:~]# systemctl disable abrtd
    [root:~]# systemctl disable abrt-ccpp
    [root:~]# cp -rp ${INSTALLDIRHOSTAGENT}/server/HOSTAGENT.TGZ $TEMPDIR/ cd $TEMPDIR
    [root:~]# tar -xzvf HOSTAGENT.TGZ
    [root:~]# cd global/hdb/saphostagent_setup/
    [root:~]# ./saphostexec -install
    Copy to Clipboard Toggle word wrap

    보안 작업은 암호화된 연결에서만 작동합니다. 이를 위해 작동하는 SSL 연결을 구성할 수 있습니다. SSL 암호가 필요합니다. 다음 예제는 이 문서의 SAP HANA scale-Out 환경 준비 섹션에 있는 매개 변수를 기반으로 합니다.

    [root:~]# export MYHOSTNAME=$(hostname)
    [root:~]# export SSLPASSWORD=Us3Your0wnS3cur3Password
    [root:~]# export LD_LIBRARY_PATH=/usr/sap/hostctrl/exe/
    [root:~]# export SECUDIR=/usr/sap/hostctrl/exe/sec
    [root:~]# cd /usr/sap/hostctrl/exe
    [root:~]# mkdir /usr/sap/hostctrl/exe/sec
    [root:~]# /usr/sap/hostctrl/exe/sapgenpse gen_pse -p SAPSSLS.pse -x $SSLPASSWORD -r /tmp/${MYHOSTNAME}-csr.p10 "CN=$MYHOSTNAME"
    [root:~]# /usr/sap/hostctrl/exe/sapgenpse seclogin -p SAPSSLS.pse -x $SSLPASSWORD -O sapadm chown sapadm /usr/sap/hostctrl/exe/sec/SAPSSLS.pse
    [root:~]# /usr/sap/hostctrl/exe/saphostexec -restart*
    Copy to Clipboard Toggle word wrap
  3. 모든 SAP HANA 노드에 SAP Host Agent를 사용할 수 있는지 확인합니다.

    [root:~]# netstat -tulpen | grep sapstartsrv
    tcp      0     0 0.0.0.0:50014   0.0.0.0:*  LISTEN   1002  84028   4319/sapstartsrv
    tcp      0     0 0.0.0.0:50013   0.0.0.0:*  LISTEN   1002  47542   4319/sapstartsrv
    Copy to Clipboard Toggle word wrap
    참고

    모든 프로세스가 식별되는 것은 아닙니다. 소유하지 않은 프로세스 정보는 표시되지 않습니다. 모든 프로세스를 보려면 root여야 합니다.

    [root:~]# netstat -tulpen | grep 1129
    tcp 0 	0     0.0.0.0:1129 	0.0.0.0:* 	LISTEN 	996	 25632	 1345/sapstartsrv
    Copy to Clipboard Toggle word wrap

    SAP 호스트 에이전트를 설치하는 방법에 대한 자세한 내용은 SAP 호스트 에이전트 설치를 참조하십시오.

3.2.4. scale-Out 및 System Replication을 사용하여 SAP HANA 배포

scale-Out 및 System Replication을 사용하여 SAP HANA를 배포하기 전에 SAP 네트워크 매핑을 이해해야 합니다. 이 솔루션은 랩 환경에서 배포에 대한 최소 구성 세부 정보를 제공합니다. 그러나 프로덕션 환경을 구성할 때는 별도의 네트워크를 통해 스케일 아웃 네트워크 통신 및 시스템 복제 통신을 매핑해야 합니다. 이 구성은 SAP HANA 시스템 복제용 네트워크 구성에 설명되어 있습니다.

SAP HANA 데이터베이스는 SAP HANA 서버 설치 및 업데이트 가이드에 따라 설명된 대로 설치해야 합니다.

SAP HANA 데이터베이스를 설정하는 다양한 옵션이 있습니다. 동일한 SID가 있는 두 데이터 센터에 데이터베이스를 설치해야 합니다. 스케일 아웃 구성에는 사이트당 최소 2개의 HANA 인스턴스가 필요합니다.

각 HANA 사이트의 설치는 다음 단계로 구성됩니다.

  • hdblcm 를 사용하여 첫 번째 노드에 SAP HANA 데이터베이스를 설치합니다( SAP HANA 설치 미디어의 SAP_HANA_DATABASE 하위 디렉터리에서 hdblcm 확인).
  • 이 첫 번째 노드에서 스케일 아웃 구성에 대한 내부 네트워크를 구성합니다(이는 한 번만 필요합니다).

    [root:~]# ./hdblcm --action=configure_internal_network
    Copy to Clipboard Toggle word wrap
  • 첫 번째 설치로 생성된 공유 실행 파일을 사용하여 다른 노드에 추가 HANA 인스턴스를 설치합니다.

    [root:~]# /hana/shared/RH1/hdblcm/hdblcm
    Copy to Clipboard Toggle word wrap
  • 각 HANA 인스턴스에 대해 올바른 HANA 역할(작업자 또는 대기)을 선택합니다.
  • 보조 HANA 사이트에 대해 동일한 단계를 반복합니다.

두 사이트 간에 SAP HANA 시스템 복제를 설정합니다.

  • 키를 복사합니다.
  • 백업 기본 데이터베이스(SYSTEMDB 및 테넌트).
  • 보조 사이트에서 HANA를 중지합니다.
  • 기본 HANA 사이트에 보조 HANA 사이트를 등록합니다.
  • 보조 사이트에서 HANA를 시작합니다.

HANA 데이터베이스 설치는 배치 모드에서 hdblcm 명령을 사용하여 수행할 수도 있습니다. 전체 자동 설치를 위한 응답 파일로 사용되는 구성 파일 템플릿을 사용할 수 있습니다.

이 솔루션에서는 각 데이터센터에 대해 SAP 호스트 에이전트를 통해 자동 배포를 수행하는 추가 호스트를 통합하여 배치 모드를 통해 SAP 데이터베이스가 설치됩니다. 필요한 모든 배포 암호를 포함하는 임시 암호 파일이 생성됩니다. 이 파일을 기반으로 명령 기반 배치 모드 설치가 시작됩니다.

배치 모드 설치의 경우 다음 매개변수를 변경해야 합니다.

  • SID
  • 시스템 번호
  • 설치 인스턴스의 호스트 이름(호스트 이름)
  • 모든 호스트 이름 및 역할(Addhosts)
  • 시스템 유형(system_usage)
  • < sid>adm 사용자의 홈 디렉토리
  • 사용자 sapadmuserid
  • sap sys 의 groupID

대부분의 매개 변수는 SAP에서 제공합니다. 

프로세스

  1. 각 데이터 센터의 하나의 SAP HANA 노드에서 사용자 root로 로그인하여 SAP HANA scale-Out 설치를 시작합니다.
  2. 이 솔루션에서 다음 명령은 각 데이터 센터의 하나의 노드에서 실행됩니다.

    [root:~]# INSTALLDIR=/install/51053381/DATA_UNITS HDB_SERVER_LINUX_X86_64/
    [root:~]# cd $INSTALLDIR
    [root:~]# ./hdblcm --dump_configfile_template=/tmp/templateFile
    Copy to Clipboard Toggle word wrap
    중요

    올바른 addhosts 매개 변수를 사용해야 합니다. 여기에는 설치 노드를 포함하지 않아야 합니다.

  3. /tmp/templateFile.xml 에서 암호를 변경합니다.

    참고

    internal_network 매개변수는 내부 스케일 아웃 통신 네트워크에 사용됩니다. 이렇게 하면 설치 프로세스 중에 올바른 구성으로 SAP HANA 구성 파일 global.ini 가 미리 채워집니다.

    데이터 센터 1 예:

    [root:~]# cat /tmp/templateFile.xml | ./hdblcm \ --batch \ --sid=RH1 \ --number=10 \ --action=install \ --hostname=dc1hana01 \ --addhosts=dc1hana02:role=worker,dc1hana03:role=worker,dc1hana04:role =standby \ --install_hostagent \ --system_usage=test \ --sapmnt=/hana/shared \ --datapath=/hana/data \ --logpath=/hana/log \ --root_user=root \ --workergroup=default \ --home=/usr/sap/RH1/home \ --userid=79 \ --shell=/bin/bash \ --groupid=79 \ --read_password_from_stdin=xml \ --internal_network=192.168.101.0/24 \ --remote_execution=saphostagent
    Copy to Clipboard Toggle word wrap

    데이터 센터 2 예:

    [root:~]# cat /tmp/templateFile.xml | ./hdblcm \ --batch \ --sid=RH1 \ --number=10 \ --action=install \ --hostname=dc2hana01 \ --addhosts=dc2hana02:role=worker,dc2hana03:role=worker,dc2hana04:role =standby \ --install_hostagent \ --system_usage=test \ --sapmnt=/hana/shared \ --datapath=/hana/data \ --logpath=/hana/log \ --root_user=root \ --workergroup=default \ --home=/usr/sap/RH1/home \ --userid=79 \ --shell=/bin/bash \ --groupid=79 \ --read_password_from_stdin=xml \ --internal_network=192.168.101.0/24 \ --remote_execution=saphostagent
    Copy to Clipboard Toggle word wrap
  4. 설치 프로세스가 완료된 후 모든 것이 데이터 센터당 하나의 호스트에서 작동하는지 확인합니다.

    [root:~]# su - rh1adm /usr/sap/hostctrl/exe/sapcontrol -nr 10 -function GetSystemInstanceList
    10.04.2019 08:38:21
    GetSystemInstanceList OK
    hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus
    dc1hana01,10,51013,51014,0.3,HDB|HDB_WORKER, GREEN
    dc1hana03,10,51013,51014,0.3,HDB|HDB_STANDBY, GREEN
    dc1hana02,10,51013,51014,0.3,HDB|HDB_WORKER, GREEN
    dc1hana04,10,51013,51014,0.3,HDB|HDB_WORKER, GREEN
    
    rh1adm@dc1hana01:/usr/sap/RH1/HDB10> HDBSettings.sh 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 |
    | --------- | ------ | ------ | -------- | ------ | --------- |
    --------- | -------- | -------- | ---------- | ---------- |
    ----------- | ----------- | ------- | ------- | ------- | ------- |
    | dc1hana01 | yes | ok | | | 1 |
    1 | default | default | master 1 | master | worker |
    master | worker | worker | default | default |
    | dc1hana02 | yes | ok | | | 2 |
    2 | default | default | master 3 | slave | worker |
    slave | worker | worker | default | default |
    | dc1hana03 | yes | ok | | | 2 |
    2 | default | default | master 3 | slave | worker |
    slave | worker | worker | default | default |
    | dc1hana04 | yes | ignore | | | 0 |
    0 | default | default | master 2 | slave | standby |
    standby | standby | standby | default | - |
    
    rh1adm@dc1hana01: HDB info
    USER PID PPID %CPU VSZ RSS COMMAND
    rh1adm 31321 31320 0.0 116200 2824 -bash
    rh1adm 32254 31321 0.0 113304 1680 \_ /bin/sh
    /usr/sap/RH1/HDB10/HDB info
    rh1adm 32286 32254 0.0 155356 1868 \_ ps fx
    -U rh1adm -o user:8,pid:8,ppid:8,pcpu:5,vsz:10,rss:10,args
    rh1adm 27853 1 0.0 23916 1780 sapstart
    pf=/hana/shared/RH1/profile/RH1_HDB10_dc1hana01
    rh1adm 27863 27853 0.0 262272 32368 \_
    /usr/sap/RH1/HDB10/dc1hana01/trace/hdb.sapRH1_HDB10 -d -nw -f
    /usr/sap/RH1/HDB10/dc1hana01/daemon.ini
    pf=/usr/sap/RH1/SYS/profile/RH1_HDB10_dc1hana01
    rh1adm 27879 27863 53.0 9919108 6193868 \_
    hdbnameserver
    rh1adm 28186 27863 0.7 1860416 268304 \_
    hdbcompileserver
    rh1adm 28188 27863 65.8 3481068 1834440 \_
    hdbpreprocessor
    rh1adm 28228 27863 48.2 9431440 6481212 \_
    hdbindexserver -port 31003
    rh1adm 28231 27863 2.1 3064008 930796 \_
    hdbxsengine -port 31007
    rh1adm 28764 27863 1.1 2162344 302344 \_
    hdbwebdispatcher
    rh1adm 27763 1 0.2 502424 23376
    /usr/sap/RH1/HDB10/exe/sapstartsrvpf=/hana/shared/RH1/profile/RH1_HDB10_dc1hana01 -D -u rh1adm
    Copy to Clipboard Toggle word wrap

3.2.5. SAP HANA 시스템 복제 구성

SAP HANA 시스템 복제 구성은 스케일 아웃 환경 둘 다 설치된 후 수행됩니다. 구성 단계는 다음과 같습니다.

  • 주 데이터베이스를 백업합니다.
  • 주 데이터베이스에서 시스템 복제를 활성화합니다.
  • 보조 데이터베이스를 중지합니다.
  • 데이터베이스 키를 복사합니다.
  • 보조 데이터베이스를 등록합니다.
  • 보조 데이터베이스를 시작합니다.
  • 시스템 복제를 확인합니다.

이 솔루션은 각 단계에 대한 고급 정보를 제공합니다.

3.2.5.1. 주 데이터베이스 백업

SAP HANA 시스템 복제에는 기본 데이터베이스를 백업해야 합니다. 그렇지 않으면 SAP HANA를 시스템 복제 구성으로 가져올 수 없습니다.

참고
  • 이 솔루션은 간단한 예를 제공합니다. 프로덕션 환경에서는 백업 인프라 및 설정을 고려해야 합니다.
  • SQL 명령에 "/"를 포함하는 것이 매우 중요합니다(예: /hana/shared/backup/ ). 그렇지 않은 경우 SAP HANA는 디렉터리를 사용하지 않고 PATH_databackup* 이라는 파일을 만들므로 디렉터리에 대한 쓰기 권한이 필요합니다.
# Do this as root
[root@dc1hana01]# mkdir -p /hana/shared/backup/
[root@dc1hana01]# chown rh1adm /hana/shared/backup/
[root@dc1hana01]# su - rh1adm
[rh1adm@dc1hana01]% hdbsql -i 10 -u SYSTEM -d SYSTEMDB "BACKUP DATA USING FILE ('/hana/shared/backup/')"
[rh1adm@dc1hana01]% hdbsql -i 10 -u SYSTEM -d RH1 "BACKUP DATA USING FILE ('/hana/shared/backup/')"
Copy to Clipboard Toggle word wrap
3.2.5.2. HANA 시스템 복제 활성화

데이터 센터에서 백업 기능을 생성한 후 시스템 복제 구성을 시작할 수 있습니다. 첫 번째 데이터센터는 소스 사이트로 구성부터 시작됩니다.

  1. 스케일 아웃 시스템의 한 호스트에서 첫 번째 데이터 센터(DC1)에서 시스템 복제를 활성화합니다.

    [root@dc1hana01]# su - rh1adm
    [rh1adm@dc1hana01]% hdbnsutil -sr_enable --name=DC1
    nameserver is active, proceeding …
    successfully enabled system as system replication source site done.
    Copy to Clipboard Toggle word wrap

    시스템 복제에 대해 첫 번째 데이터 센터가 활성화된 후 두 번째 데이터센터를 첫 번째 데이터 센터에 등록해야 합니다. 활성화된 소스 시스템에서 두 번째 데이터 센터에 두 개의 키를 복사해야 합니다. 이 작업은 데이터베이스가 중지될 때 수행해야 합니다.

  2. 기본 사이트에서 보조 사이트로 키 및 키 데이터 파일을 복사합니다. 이는 데이터 센터마다 하나의 노드에서만 수행됩니다. 이 파일은 별도의 스케일 아웃 환경의 /hana/shared 디렉토리를 통해 공유됩니다. 자세한 내용은 SAP Note 2369981 - HANA 시스템 복제를 통한 인증에 필요한 구성 단계를 참조하십시오.

    데이터 센터 1 (DC1)의 한 노드에서 이 명령을 시작합니다.

    [root@dc1hana01]# scp -rp /usr/sap/RH1/SYS/global/security/rsecssfs/data/SSFS_RH1.DAT root@dc2hana01:/usr/sap/RH1/SYS/global/security/rsecssfs/data/SSFS_RH 1.DAT
    [root@dc1hana01]# scp -rp /usr/sap/RH1/SYS/global/security/rsecssfs/key/SSFS_RH1.KEY root@dc2hana01:/usr/sap/RH1/SYS/global/security/rsecssfs/key/SSFS_RH1 .KEY
    Copy to Clipboard Toggle word wrap
  3. 두 개의 키를 보조 사이트에 복사한 후 두 번째 데이터 센터(secondary SAP HANA 인스턴스)를 기본 SAP HANA 인스턴스에 등록할 수 있습니다. 이는 'user <sid>adm 로서 Datacenter 2 (DC2)의 노드에서 수행해야 합니다.

    참고

    현재 복제 유형에 대한 두 가지 모드를 사용할 수 있습니다.

    • delta_datashipping
    • logreplay

    복제 모드는 sync 또는 syncmem 이어야 합니다. "classic" 작동 모드는 delta_datashipping 입니다. HA의 기본 모드는 logreplay 입니다. 작업 모드 logreplay 를 사용하면 SAP HANA 시스템 복제의 보조 사이트를 핫 대기 시스템으로 만들 수 있습니다. 자세한 내용은 SAP HANA 시스템 복제 를 참조하십시오.

  4. 기본 작동 모드를 사용하면 시스템 복제가 DC2 노드에서 < sid>adm 사용자로 구성됩니다.

    [root@dc1hana01]# su - rh1adm
    
    [rh1adm@dc1hana01]% hdbnsutil -sr_register --name=DC2 \ --remoteHost=dc1hana03 --remoteInstance=10 \ --replicationMode=sync --operationMode=logreplay \ --online
    
    # Start System
    
    [rh1adm@dc1hana01]% /usr/sap/hostctrl/exe/sapcontrol -nr 10 -function StartSystem
    Copy to Clipboard Toggle word wrap

    시스템이 시작된 후 다음 명령을 실행하여 모든 항목이 예상대로 작동하는지 확인합니다. HANA scale-Out 환경이 올바르게 실행되는 경우 dispstatusGetSystemInstanceList 함수의 출력에 있는 모든 노드에 대해 GREEN 을 표시해야 합니다(초기 시작 후 몇 분 정도 걸릴 수 있음). 또한 환경 호스트 구성은 OK 상태여야 합니다.

    GetInstanceList: rh1adm@dc2hana01:/usr/sap/RH1/HDB10> /usr/sap/hostctrl/exe/sapcontrol -nr 10 -function GetSystemInstanceList
    01.04.2019 14:17:28
    GetSystemInstanceList
    OK
    hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus
    dc2hana02, 10, 51013, 51014, 0.3, HDB|HDB_WORKER, GREEN
    dc2hana01, 10, 51013, 51014, 0.3, HDB|HDB_WORKER, GREEN
    dc2hana04, 10, 51013, 51014, 0.3, HDB|HDB_STANDBY, GREEN
    dc2hana03, 10, 51013, 51014, 0.3, HDB|HDB_WORKER, GREEN
    
    Check landscapeHostConfiguration: rh1adm@dc2hana01:/usr/sap/RH1/HDB10> HDBSettings.sh landscapeHostConfiguration.py
    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 |
    |	|	|	|	|	|	|
    |	|	|	|	|
    |	|	|	|	|	|
    | dc2hana01 | yes	| ok	|	|	|	1 |
    | default | default | master 1	| master	| worker	| master	| worker | worker | default | default |
    | dc2hana02 | yes	| ok	|	|	|	2 |
    | default | default | slave	| slave	| worker	| slave	| worker | worker | default | default |
    | dc2hana03 | yes	| ok	|	|	|	3 |
    | default | default | master 3	| slave	| worker	| slave	| worker | worker | default | default |
    | dc2hana04 | yes	| ignore |	|	|	0 |
    
    0 | default
    | default | master 2	| slave
    |
    standby
    |
    standby
    | standby | standby | default | -
    |
    overall host status: ok
    Copy to Clipboard Toggle word wrap
  5. Datacenter 1 사이트에서 dispstatussapcontrol 함수의 GetSystemInstanceList 함수의 출력에 있는 모든 노드에 대해GEN을 표시해야 하며 환경 호스트 구성은 OK 상태에 있어야 합니다.

    rh1adm@dc1hana01: /usr/sap/hostctrl/exe/sapcontrol -nr 10 -function GetSystemInstanceList rh1adm@dc1hana01:/hana/shared/backup>
    /usr/sap/hostctrl/exe/sapcontrol -nr 10 -function
    GetSystemInstanceList
    Red Hat Enterprise Linux HA Solution for SAP HANA Scale Out and System Replication Page 55
    26.03.2019 12:41:13
    GetSystemInstanceList
    OK
    hostname, instanceNr, httpPort, httpsPort, startPriority, features,
    dispstatus
    dc1hana01, 10, 51013, 51014, 0.3, HDB|HDB_WORKER, GREEN
    dc1hana02, 10, 51013, 51014, 0.3, HDB|HDB_WORKER, GREEN
    dc1hana03, 10, 51013, 51014, 0.3, HDB|HDB_WORKER, GREEN
    dc1hana04, 10, 51013, 51014, 0.3, HDB|HDB_STANDBY, GREEN
    
    rh1adm@dc1hana01:/usr/sap/RH1/HDB10> HDBSettings.sh 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 |
    | --------- | ------ | ------ | -------- | ------ | --------- |
    --------- | -------- | -------- | ---------- | ---------- |
    ----------- | ----------- | ------- | ------- | ------- | ------- |
    | dc1hana01 | yes | ok | | | 1 |
    1 | default | default | master 1 | master | worker |
    master | worker | worker | default | default |
    | dc1hana02 | yes | ok | | | 2 |
    2 | default | default | master 2 | slave | worker |
    slave | worker | worker | default | default |
    | dc1hana03 | yes | ok | | | 3 |
    3 | default | default | slave | slave | worker |
    slave | worker | worker | default | default |
    | dc1hana04 | yes | ignore | | | 0 |
    0 | default | default | master 3 | slave | standby |
    Red Hat Enterprise Linux HA Solution for SAP HANA Scale Out and System Replication Page 56
    standby | standby | standby | default | - |
    overall host status: ok
    rh1adm@dc1hana01:/usr/sap/RH1/HDB10>
    
    # Show Systemreplication state rh1adm@dc1hana01:/usr/sap/RH1/HDB10> HDBSettings.sh systemReplicationStatus.py
    | Database | Host | Port | Service Name | Volume ID | Site ID |
    Site Name | Secondary | Secondary | Secondary | Secondary | Secondary
    | Replication | Replication | Replication |
    | | | | | | |
    | Host | Port | Site ID | Site Name | Active Status |
    Mode | Status | Status Details |
    | -------- | --------- | ----- | ------------ | --------- | ------- |
    --------- | --------- | --------- | --------- | --------- |
    ------------- | ----------- | ----------- | -------------- |
    | SYSTEMDB | dc1hana01 | 31001 | nameserver | 1 | 1 |
    DC1 | dc2hana01 | 31001 | 2 | DC2 | YES
    | SYNC | ACTIVE | |
    | RH1 | dc1hana01 | 31007 | xsengine | 2 | 1 |
    DC1 | dc2hana01 | 31007 | 2 | DC2 | YES
    | SYNC | ACTIVE | |
    | RH1 | dc1hana01 | 31003 | indexserver | 3 | 1 |
    DC1 | dc2hana01 | 31003 | 2 | DC2 | YES
    | SYNC | ACTIVE | |
    | RH1 | dc1hana03 | 31003 | indexserver | 5 | 1 |
    DC1 | dc2hana03 | 31003 | 2 | DC2 | YES
    | SYNC | ACTIVE | |
    | RH1 | dc1hana02 | 31003 | indexserver | 4 | 1 |
    DC1 | dc2hana02 | 31003 | 2 | DC2 | YES
    | SYNC | ACTIVE | |
    status system replication site "2": ACTIVE
    overall system replication status: ACTIVE
    Local System Replication State
    Red Hat Enterprise Linux HA Solution for SAP HANA Scale Out and System Replication Page 57
    ~~~~~~~~~~
    mode: PRIMARY
    site id: 1
    site name: DC1
    rh1adm@dc1hana01:/usr/sap/RH1/HDB10>
    Copy to Clipboard Toggle word wrap
  6. HANA 시스템 복제가 활성화되어 있는지 확인합니다.

    rh1adm@dc1hana01:/usr/sap/RH1/HDB10> HDBSettings.sh systemReplicationStatus.py
    | Database | Host | Port | Service Name | Volume ID | Site ID |
    Site Name | Secondary | Secondary | Secondary | Secondary | Secondary
    | Replication | Replication | Replication |
    | | | | | | |
    | Host | Port | Site ID | Site Name | Active Status |
    Mode | Status | Status Details |
    | -------- | --------- | ----- | ------------ | --------- | ------- |
    --------- | --------- | --------- | --------- | --------- |
    ------------- | ----------- | ----------- | -------------- |
    | SYSTEMDB | dc1hana01 | 31001 | nameserver | 1 | 1 |
    DC1 | dc2hana01 | 31001 | 2 | DC2 | YES
    | SYNC | ACTIVE | |
    | RH1 | dc1hana01 | 31007 | xsengine | 2 | 1 |
    DC1 | dc2hana01 | 31007 | 2 | DC2 | YES
    | SYNC | ACTIVE | |
    | RH1 | dc1hana01 | 31003 | indexserver | 3 | 1 |
    DC1 | dc2hana01 | 31003 | 2 | DC2 | YES
    | SYNC | ACTIVE | |
    | RH1 | dc1hana03 | 31003 | indexserver | 5 | 1 |
    DC1 | dc2hana03 | 31003 | 2 | DC2 | YES
    | SYNC | ACTIVE | |
    | RH1 | dc1hana02 | 31003 | indexserver | 4 | 1 |
    DC1 | dc2hana02 | 31003 | 2 | DC2 | YES
    | SYNC | ACTIVE | |
    
    status system replication site "2": ACTIVE
    overall system replication status: ACTIVE
    
    Local System Replication State
    ~~~~~~~~~~
    mode: PRIMARY
    site id: 1
    site name: DC1
    rh1adm@dc1hana01:/usr/sap/RH1/HDB10>
    Copy to Clipboard Toggle word wrap
    참고

    이 구성이 프로덕션 환경에서 구현되면 global.ini 파일에서 네트워크 통신을 변경하는 것이 좋습니다. 이 작업은 지정된 어댑터로의 통신을 시스템 복제 네트워크로 제한합니다. 자세한 내용은 SAP HANA 시스템 복제용 네트워크 구성을 참조하십시오.

    중요

    전체 SAP HANA scale-Out 시스템 복제 환경을 수동으로 테스트하고 모든 SAP HANA 기능이 작동하는지 확인해야 합니다. 자세한 내용은 SAP HANA 시스템 복제 를 참조하십시오.

3.3. Pacemaker 구성

HANA scale-Out 환경이 구성되고 HANA 시스템 복제가 예상대로 작동하는 경우 RHEL HA 애드온을 사용하여 HANA scale-Out 시스템 복제 환경을 관리하도록 HA 클러스터를 구성할 수 있습니다.

Pacemaker 분할 구성을 방지하려면 추가 쿼럼 인스턴스가 필요합니다. 이 예제에서는 노드를 추가합니다. 이 솔루션에서 대부분의 제조 업체라고 하는 이 노드는 작동 중인 구성을 위해 홀수의 클러스터 노드에 필요합니다. Pacemaker 및 공용 네트워크만 필요한 추가 최소 호스트입니다. 이 노드에서는 SAP HANA 데이터베이스가 설치되지 않으며 스토리지 구성은 더 이상 사용되지 않습니다.

사전 요구 사항

  • saphostagent 를 설치하고 /usr/sap/hostcontrol/exe/sapcontrol이 있는지 확인했습니다. 자세한 내용은 1031096 패키지 SAPHOSTAGENT 설치를 참조하십시오.
  • RHEL High Availability 리포지토리가 시스템에 구성되어 있는지 확인합니다. 이 구성 없이는 Pacemaker를 설치할 수 없습니다.
  • 모든 시스템에 root로 로그인했습니다.
  • RHEL 시스템 등록 및 이 문서의 리포지토리 활성화 섹션에 설명된 대로 모든 클러스터 노드가 등록되어 있고 클러스터용 패키지를 설치하는 데 필요한 리포지토리 가 활성화되어 있는지 확인했습니다.

    [root@dc1hana01]# subscription-manager repos --list-enabled
    +----------------------------------------------------------+
    	Available Repositories in /etc/yum.repos.d/redhat.repo
    +----------------------------------------------------------+
    Repo ID:   rhel-8-for-x86_64-baseos-e4s-rpms
    Repo Name: Red Hat Enterprise Linux 8 for x86_64 - BaseOS - Update Services for SAP Solutions (RPMs)
    Repo URL:  <Your repo URL>
    Enabled:   1
    
    Repo ID:   rhel-8-for-x86_64-sap-solutions-e4s-rpms
    Repo Name: Red Hat Enterprise Linux 8 for x86_64 - SAP Solutions - Update Services for SAP Solutions (RPMs)
    Repo URL:  <Your repo URL>
    Enabled:   1
    
    Repo ID:   ansible-2.8-for-rhel-8-x86_64-rpms
    Repo Name: Red Hat Ansible Engine 2.8 for RHEL 8 x86_64 (RPMs)
    Repo URL:  <Your repo URL>
    Enabled:   1
    
    Repo ID:   rhel-8-for-x86_64-highavailability-e4s-rpms
    Repo Name: Red Hat Enterprise Linux 8 for x86_64 - High Availability - Update Services for SAP Solutions (RPMs)
    Repo URL:  <Your repo URL>
    Enabled:   1
    
    Repo ID:   rhel-8-for-x86_64-appstream-e4s-rpms
    Repo Name: Red Hat Enterprise Linux 8 for x86_64 - AppStream - Update Services for SAP Solutions (RPMs)
    Repo URL:  <Your repo URL>
    Enabled:   1
    
    
    yum repolist
    Updating Subscription Management repositories.
    repo id                                                                  	repo name
    advanced-virt-for-rhel-8-x86_64-rpms                                     	Advanced Virtualization for RHEL 8 x86_64 (RPMs)
    ansible-2.8-for-rhel-8-x86_64-rpms                                       	Red Hat Ansible Engine 2.8 for RHEL 8 x86_64 (RPMs)
    rhel-8-for-x86_64-appstream-e4s-rpms                                     	Red Hat Enterprise Linux 8 for x86_64 - AppStream - Update Services for SAP Solutions (RPMs)
    rhel-8-for-x86_64-baseos-e4s-rpms                                        	Red Hat Enterprise Linux 8 for x86_64 - BaseOS - Update Services for SAP Solutions (RPMs)
    rhel-8-for-x86_64-highavailability-e4s-rpms                              	Red Hat Enterprise Linux 8 for x86_64 - High Availability - Update Services for SAP Solutions (RPMs)
    rhel-8-for-x86_64-sap-netweaver-e4s-rpms                                 	Red Hat Enterprise Linux 8 for x86_64 - SAP NetWeaver - Update Services for SAP Solutions (RPMs)
    rhel-8-for-x86_64-sap-solutions-e4s-rpms                                 	Red Hat Enterprise Linux 8 for x86_64 - SAP Solutions - Update Services for SAP Solutions (RPMs)
    Copy to Clipboard Toggle word wrap

프로세스

  1. 클러스터를 구성합니다. 자세한 내용은 고가용성 클러스터 구성 및 관리를 참조하십시오.
  2. 대부분의 제조 업체를 포함하여 클러스터의 각 노드에서 고가용성 채널에서 사용 가능한 모든 차단 에이전트와 함께 Red Hat High Availability Add-On 소프트웨어 패키지를 설치합니다.

    [root]# yum -y install pcs pacemaker fence-agents
    Copy to Clipboard Toggle word wrap

    또는 특정 fence-agent만 설치할 수도 있습니다.

    [root]# yum install fence-agents-sbd fence-agents-ipmilan
    Copy to Clipboard Toggle word wrap
  3. 방화벽 이 지정된 데몬을 실행하는 경우 Red Hat High Availability Add-On에 필요한 포트를 활성화하려면 다음 명령을 실행합니다.

    [root]# firewall-cmd --permanent --add-service=high-availability
    [root]# firewall-cmd --add-service=high-availability
    Copy to Clipboard Toggle word wrap
  4. 이 구성 후 각 클러스터 노드에서 사용자 hacluster 의 암호를 설정합니다.

    [root]# passwd hacluster
    
    Changing password for user hacluster. New password:
    Retype new password:
    passwd: all authentication tokens updated successfully.
    Copy to Clipboard Toggle word wrap
  5. 각 노드에서 다음 명령을 실행하여 데몬을 시작하고 활성화합니다.

    [root]# systemctl start [root]# pcsd.service systemctl enable pcsd.service
    Copy to Clipboard Toggle word wrap
  6. 하나의 노드에서만 hacluster 사용자를 인증해야 합니다. 이 명령에는 클러스터의 일부여야 하는 모든 노드를 포함하는 것이 중요합니다. 암호를 지정하지 않으면 이전 단계에서 정의한 hacluster 암호를 입력하라는 메시지가 표시됩니다. RHEL 8.x의 경우 다음을 실행합니다.

    [root@dc1hana01]# pcshost auth -u hacluster -p <clusterpassword> dc1hana01 dc1hana02 dc1hana03 dc1hana04 dc2hana01 dc2hana02 dc2hana03 dc2hana04 majoritymaker
    Username: hacluster
    Password:
    majoritymaker: Authorized
    dc1hana03: Authorized
    dc1hana02: Authorized
    dc1hana01: Authorized
    dc2hana01: Authorized
    dc2hana02: Authorized
    dc1hana04: Authorized
    dc2hana04: Authorized
    dc2hana03: Authorized
    Copy to Clipboard Toggle word wrap
  7. 동일한 노드에서 pcs cluster setup을 사용하여 corosync 구성을 생성하고 동기화합니다. RHEL 8 예제에서는 2개의 클러스터 네트워크를 사용하는 경우도 보여줍니다.

    [root@dc1hana01]# pcs cluster setup scale_out_hsr majoritymaker addr=10.10.10.41 addr=192.168.102.100 dc1hana01 addr=10.10.10.21 addr=192.168.102.101 dc1hana02 addr=10.10.10.22 addr=192.168.102.102 dc1hana03 addr=10.10.10.23 addr=192.168.102.103 dc1hana04 addr=10.10.10.24 addr=192.168.102.104 dc2hana01 addr=10.10.10.31 addr=192.168.102.201 dc2hana02 addr=10.10.10.33 addr=192.168.102.202 dc2hana03 addr=10.10.10.34 addr=192.168.212.203 dc2hana04 addr=10.10.10.10 addr=192.168.102.204
    
    Destroying cluster on nodes: dc1hana01, dc1hana02, dc1hana03,
    dc1hana04, dc2hana01, dc2hana02, dc2hana03, dc2hana04,
    majoritymaker...
    dc1hana01: Stopping Cluster (pacemaker)...
    dc1hana04: Stopping Cluster (pacemaker)...
    dc1hana03: Stopping Cluster (pacemaker)...
    dc2hana04: Stopping Cluster (pacemaker)...
    dc2hana01: Stopping Cluster (pacemaker)...
    dc2hana03: Stopping Cluster (pacemaker)...
    majoritymaker: Stopping Cluster (pacemaker)...
    dc2hana02: Stopping Cluster (pacemaker)...
    dc1hana02: Stopping Cluster (pacemaker)...
    dc2hana01: Successfully destroyed cluster
    dc2hana03: Successfully destroyed cluster
    dc1hana04: Successfully destroyed cluster
    dc1hana03: Successfully destroyed cluster
    dc2hana02: Successfully destroyed cluster
    dc1hana01: Successfully destroyed cluster
    dc1hana02: Successfully destroyed cluster
    dc2hana04: Successfully destroyed cluster
    majoritymaker: Successfully destroyed cluster
    Sending 'pacemaker_remote authkey' to 'dc1hana01', 'dc1hana02',
    'dc1hana03', 'dc1hana04', 'dc2hana01', 'dc2hana02', 'dc2hana03',
    'dc2hana04', 'majoritymaker'
    dc1hana01: successful distribution of the file 'pacemaker_remote
    authkey'
    dc1hana04: successful distribution of the file 'pacemaker_remote
    authkey'
    dc1hana03: successful distribution of the file 'pacemaker_remote
    authkey'
    dc2hana01: successful distribution of the file 'pacemaker_remote
    authkey'
    dc2hana02: successful distribution of the file 'pacemaker_remote
    authkey'
    dc2hana03: successful distribution of the file 'pacemaker_remote
    authkey'
    dc2hana04: successful distribution of the file 'pacemaker_remote
    authkey'
    majoritymaker: successful distribution of the file 'pacemaker_remote
    authkey'
    dc1hana02: successful distribution of the file 'pacemaker_remote
    authkey'
    Sending cluster config files to the nodes...
    dc1hana01: Succeeded
    dc1hana02: Succeeded
    dc1hana03: Succeeded
    dc1hana04: Succeeded
    dc2hana01: Succeeded
    dc2hana02: Succeeded
    dc2hana03: Succeeded
    dc2hana04: Succeeded
    majoritymaker: Succeeded
    Starting cluster on nodes: dc1hana01, dc1hana02, dc1hana03,
    dc1hana04, dc2hana01, dc2hana02, dc2hana03, dc2hana04,
    majoritymaker...
    dc2hana01: Starting Cluster...
    dc1hana03: Starting Cluster...
    dc1hana01: Starting Cluster...
    dc1hana02: Starting Cluster...
    dc1hana04: Starting Cluster...
    majoritymaker: Starting Cluster...
    dc2hana02: Starting Cluster...
    dc2hana03: Starting Cluster...
    dc2hana04: Starting Cluster...
    Synchronizing pcsd certificates on nodes dc1hana01, dc1hana02,
    dc1hana03, dc1hana04, dc2hana01, dc2hana02, dc2hana03, dc2hana04,
    majoritymaker...
    majoritymaker: Success
    dc1hana03: Success
    dc1hana02: Success
    dc1hana01: Success
    dc2hana01: Success
    dc2hana02: Success
    dc2hana03: Success
    dc2hana04: Success
    dc1hana04: Success
    Restarting pcsd on the nodes in order to reload the certificates...
    dc1hana04: Success
    dc1hana03: Success
    dc2hana03: Success
    majoritymaker: Success
    dc2hana04: Success
    dc1hana02: Success
    dc1hana01: Success
    dc2hana01: Success
    dc2hana02: Success
    Copy to Clipboard Toggle word wrap
  8. 다음 cluster 명령을 사용하여 모든 노드에서 서비스를 활성화합니다.

    [root@dc1hana01]# pcs cluster enable --all
    dc1hana01: Cluster Enabled
    dc1hana02: Cluster Enabled
    dc1hana03: Cluster Enabled
    dc1hana04: Cluster Enabled
    dc2hana01: Cluster Enabled
    dc2hana02: Cluster Enabled
    dc2hana03: Cluster Enabled
    dc2hana04: Cluster Enabled
    majoritymaker: Cluster Enabled
    Copy to Clipboard Toggle word wrap

    모든 단계를 완료하면 구성된 클러스터 및 노드가 생성됩니다. 리소스 에이전트를 구성하는 첫 번째 단계는 더 이상 액세스할 수 없는 노드를 재부팅하는 STONITH를 사용하여 펜싱 방법을 구성하는 것입니다. 지원되는 환경에는 이 STONITH 구성이 필요합니다.

  9. 하드웨어 또는 가상화 환경에 적합한 차단 에이전트를 사용하여 환경에 대해 STONITH를 구성합니다. 다음은 STONITH에 대한 차단 장치를 구성하는 일반적인 예입니다.

    [root@dc1hana01]# pcs stonith create <stonith id> <fence_agent> ipaddr=<fence device> login=<login> passwd=<passwd>
    Copy to Clipboard Toggle word wrap
    참고

    각 장치에 대한 구성이 다르며 STONITH를 구성하는 것은 이 환경에 대한 요구 사항입니다. 지원이 필요한 경우 직접 지원을 받으려면 Red Hat 지원팀에 문의하십시오. 자세한 내용은 RHEL High Availability Clusters - Fencing/STONITH 및 Fencing Configuration 에 대한 일반 요구 사항의 지원 정책을 참조하십시오.

    구성 후 클러스터 상태는 다음 출력과 같아야 합니다. 다음은 Red Hat Enterprise Virtualization 환경의 펜싱 장치의 예입니다.

    [root@dc1hana01]# pcs status
    Cluster name: hanascaleoutsr
    Stack: corosync
    Current DC: dc2hana01 (version 1.1.18-11.el7_5.4-2b07d5c5a9) -
    partition with quorum
    Last updated: Tue Mar 26 13:03:01 2019
    Last change: Tue Mar 26 13:02:54 2019 by root via cibadmin on
    dc1hana01
    9 nodes configured
    1 resource configured
    Online: [ dc1hana01 dc1hana02 dc1hana03 dc1hana04 dc2hana01 dc2hana02
    dc2hana03 dc2hana04 majoritymaker ]
    Full list of resources:
    fencing (stonith:fence_rhevm): Started dc1hana01
    Daemon Status:
    corosync: active/enabled
    pacemaker: active/enabled
    pcsd: active/enabled
    Copy to Clipboard Toggle word wrap

3.3.1. 스케일 아웃 시스템을 위한 SAP HANA 리소스 에이전트 설치

리소스 에이전트를 구성할 때 대부분의 제조자를 포함하여 resource-agent-sap-hana-scaleout 패키지가 모든 시스템에 설치되었습니다.

[root@dc1hana01]# yum install resource-agents-sap-hana-scaleout
Copy to Clipboard Toggle word wrap

올바른 리포지토리가 연결되었는지 확인합니다. yum repolist 에는 다음이 포함되어야 합니다.

root# yum repolist
"rhel-x86_64-server-sap-hana-<version>” RHEL Server SAP HANA (v. <version> for 64-bit <architecture>).
Copy to Clipboard Toggle word wrap

3.3.2. 모든 SAP HANA 인스턴스에서 srConnectionChanged() 후크 활성화

SAP의 HA/DR 공급자 구현에 설명된 대로 SAP HANA의 최신 버전은 SAP HANA가 특정 이벤트에 대한 알림을 보낼 수 있는 "hooks"를 제공합니다. srConnectionChanged() 후크를 사용하면 클러스터가 조치를 취해야 하는 SAP HANA 시스템 복제가 발생하는 시기를 감지하는 클러스터의 기능을 개선하고 이를 피해야 하는 상황에서 데이터 손실/데이터 손상을 방지할 수 있습니다. SAP HANA 2.0 SPS06 이상을 사용할 때 클러스터 설정을 진행하기 전에 후크를 활성화해야 하며 srConnectionChanged() 후크를 지원하기 위한 구성 요소를 제공하는 resource-agents-sap-hana-scaleout 패키지 버전을 사용해야 합니다.

프로세스

  1. 공유 장치의 각 데이터 센터에 있는 하나의 노드에 후크를 설치합니다. 자세한 내용은 HA/DR 공급자 구현을 참조하십시오.
  2. hana 공유 폴더에 디렉터리를 생성하여 후크를 구성합니다. 이는 SAP HANA 데이터베이스에서 추가 데이터를 생성하도록 구성되어 있습니다. 이를 활성화하려면 시스템을 중지하고 global.ini 파일에 두 개의 추가 구성 매개 변수를 추가해야 합니다. 이 솔루션에서 다음 예제에서는 ha_dr_provider_SAPHanaSrtrace 의 구성을 보여줍니다.

    [root@dc1hana01]# su - rh1adm
    [rh1adm@dc1hana01]% sapcontrol -nr 10 -function StopSystem *[rh1adm@dc1hana01]% cat <<EOF >> /hana/shared/RH1/global/hdb/custom/config/global.ini
    
    [ha_dr_provider_SAPHanaSR]
    provider = SAPHanaSR
    path = /usr/share/SAPHanaSR-ScaleOut
    execution_order = 1
    
    [trace]
    ha_dr_saphanasr = info
    EOF
    Copy to Clipboard Toggle word wrap
  3. 각 클러스터 노드에서 sudo visudo /etc/sudoers.d/20-saphana 를 실행하여 /etc/sudoers.d/20-saphana 파일을 생성하고 아래 내용을 추가하여 후크 스크립트에서 srConnectionChanged() 후크가 호출될 때 노드 속성을 업데이트할 수 있도록 합니다.

    rh1adm ALL=(ALL) NOPASSWD: /usr/sbin/crm_attribute -n hana_rh1_glob_srHook -v * -t crm_config -s SAPHanaSR
    
    rh1adm ALL=(ALL) NOPASSWD: /usr/sbin/crm_attribute -n hana_rh1_gsh -v * -l reboot -t crm_config -s SAPHanaSR Defaults:rh1adm !requiretty
    Copy to Clipboard Toggle word wrap

    기본값 설정이 필요한 이유에 대한 자세한 내용은 복제가 정상 상태인 경우에도 SAP HANA 시스템 복제를 관리하는 Pacemaker 클러스터에서 srHook 속성이 SFAIL로 설정됩니다.

  4. 성공적인 통합 후 SAP HANA 데이터베이스를 시작합니다.

    # Execute the following commands on one HANA node in every datacenter
    [root]# su - rh1adm
    [rh1adm]% sapcontrol -nr 10 -function StartSystem
    Copy to Clipboard Toggle word wrap
  5. 후크 스크립트가 예상대로 작동하는지 확인합니다. HANA 인스턴스 중지와 같은 후크를 트리거하는 작업을 수행합니다. 그런 다음 아래에 지정된 방법을 사용하여 후크가 아무것도 기록했는지 확인합니다.

    [rh1adm@dc1hana01]% cdtrace
    [rh1adm@dc1hana01]% awk '/ha_dr_SAPHanaSR.*crm_attribute/ \
    { printf "%s %s %s %s\n",$2,$3,$5,$16 }' nameserver_* 2018-05-04
    12:34:04.476445 ha_dr_SAPHanaSR SFAIL
    2018-05-04 12:53:06.316973 ha_dr_SAPHanaSR SOK
    Copy to Clipboard Toggle word wrap

    SAP HANA 후크가 작동하는지 확인하는 방법에 대한 자세한 내용은 M_HA_DR_PROVIDERS로 모니터링 을 참조하십시오.

3.3.3. Pacemaker 리소스 구성

Pacemaker 구성 프로세스에 대해 HANA 및 Pacemaker 환경을 제어하는 두 개의 리소스 에이전트인 SAPHanaTopologySAPHanaController 를 생성해야 합니다. 또한 최종 사용자 및 SAP 애플리케이션 서버 연결을 위해 Pacemaker에서 가상 IP 주소를 구성해야 합니다. 수행된 작업에 따라 리소스 에이전트가 올바른 순서로 실행되고 가상 IP 주소가 올바른 호스트에 매핑되도록 두 개의 종속 항목이 추가됩니다.

사전 요구 사항

  • 구성 중에 원하지 않는 영향을 미치지 않도록 클러스터 유지 관리 모드를 설정했습니다.

    [root@dc1hana01]# pcs property set maintenance-mode=true
    Copy to Clipboard Toggle word wrap
3.3.3.1. SAPHanaTopology 리소스 구성
  1. SAPHanaTopology 리소스 에이전트는 각 노드에서 SAP HANA 시스템 복제의 상태 및 구성을 수집합니다. 또한 SAP HANA 인스턴스를 시작, 중지 및 모니터링하는 데 필요한 로컬 SAP HostAgent를 시작하고 모니터링합니다. 리소스 에이전트에는 설치된 SAP HANA 환경에 따라 다음과 같은 특성이 있습니다.

    Expand

    특성 이름

    필수 여부

    기본값

    설명

    SID

    제공됨

    null

    SAP HANA 설치의 SAP 시스템 식별자(SID)는 모든 노드에 대해 동일해야 합니다. 예: RH2

    InstanceNumber

    제공됨

    null

    SAP HANA 설치 인스턴스 번호(모든 노드에 대해 동일해야 함). 예: 02

    이 솔루션에서 SID는 RH1로 설정되고 인스턴스 번호가 10으로 설정됩니다.

    참고

    첫 번째 배포에는 시간 제한 및 모니터 매개변수가 권장되며 환경을 테스트하는 동안 변경할 수 있습니다. 환경에 있는 노드 수 및 크기와 같은 여러 종속 항목이 있습니다.

  2. 전체 클러스터에서 하나의 호스트에서 root로 RHEL 8.x에 대해 다음 명령을 실행합니다.

    [root@dc1hana01]# pcs resource create rsc_SAPHanaTopology_RH1_HDB10 SAPHanaTopology SID=RH1 InstanceNumber=10 op methods interval=0s timeout=5 op monitor interval=10 timeout=600 clone clone-max=6 clone-node-max=1 interleave=true --disabled
    Copy to Clipboard Toggle word wrap

    Pacemaker에서 리소스가 생성되면 복제됩니다.

    참고

    clone-node-max 매개변수는 단일 노드에서 시작할 수 있는 리소스 에이전트의 사본 수를 정의합니다. interleave는 이 복제가 순서 제약 조건을 사용하여 다른 복제에 의존하는 경우 다른 복제의 모든 인스턴스가 시작되도록 기다리지 않고 다른 복제의 로컬 인스턴스가 시작된 후 시작할 수 있음을 의미합니다. clone-max 매개변수는 시작할 수 있는 복제본 수를 정의합니다. 예를 들어 사이트당 최소 2개의 노드가 있는 경우 SAPHanaControllerSAPHanaTopology 용으로 clone-max=4 를 사용해야 합니다. 사이트당 3개의 노드( 대기 노드 계산 없이)에서 6을 사용해야 합니다.

  3. 명령을 사용하여 리소스가 시작되면 노드 속성 형태로 저장된 수집된 정보를 볼 수 있습니다.

    root# pcs status --full
    Copy to Clipboard Toggle word wrap
3.3.3.2. SAPHanaController 리소스 구성

SAPHanaTopology 리소스 에이전트의 구성 프로세스가 완료되면 SAPHanaController 리소스 에이전트를 구성할 수 있습니다. SAP Hana Topology 리소스 에이전트는 데이터만 수집하는 반면 SAPHanaTopology 리소스 에이전트는 이전에 수집된 데이터를 기반으로 SAP 환경을 제어합니다. 다음 표에 표시된 대로 중요한 구성 매개변수 5개가 클러스터 기능을 정의합니다.

Expand

특성 이름

필수 여부

기본값

설명

SID

제공됨

null

SAP HANA 설치의 SAP 시스템 식별자(SID)는 모든 노드에 대해 동일해야 합니다. 예: RH2

InstanceNumber

제공됨

null

SAP HANA 설치 인스턴스 번호(모든 노드에 대해 동일해야 함). 예: 02

PREFER_SITE_TAKEOVER

제공되지 않음

null

리소스 에이전트가 기본 로컬로 다시 시작하는 대신 보조 인스턴스로 전환하는 것을 선호합니까? true: prefer takeover to the secondary site; false: prefer restart locally; never: no circumstances initiate a other node.

AUTOMATED_REGISTER

제공되지 않음

false

인수 이벤트가 발생하고 DUPLICATE_PRIATE_PRI Cryostat_TIMEOUT이 만료된 경우 이전 기본 인스턴스가 보조로 등록되어야 합니다. ("false": no, manual intervention will be needed; "true": yes, 전자 primary는 보조 리소스로 리소스 에이전트에 의해 등록됨) [1]

DUPLICATE_PRIMARY_TIMEOUT

제공되지 않음

7200

이중 기본 상황이 발생하는 경우 두 가지 기본 타임스탬프 간에 필요한 시간 차이(초)입니다. 시간 차이가 시간 간격보다 작으면 클러스터는 "WAITING" 상태의 인스턴스 또는 두 개의 인스턴스를 유지합니다. 이는 시스템 관리자가 인수에 대응할 수 있는 기회를 제공하기 위한 것입니다. 시간 차이가 통과된 후 AUTOMATED_REGISTER가 true로 설정되면 실패한 이전 주차가 보조로 등록됩니다. 새 기본 설정에 등록하면 이전 주차의 모든 데이터를 시스템 복제로 덮어씁니다.

[1] - 테스트 및 개념 증명(PoC) 환경을 위한 모범 사례로 AUTOMATED_REGISTER 를 기본값으로 두는 것이 좋습니다(AUTOMATED_REGISTER="false") 실패 기본 인스턴스가 자동으로 보조 인스턴스로 등록되지 않도록 합니다. 테스트 후 특히 프로덕션 환경에서 장애 조치(failover) 시나리오가 예상대로 작동하는 경우 이 경우 시스템 복제가 적시에 다시 시작되어 중단을 방지하도록 AUTOMATED_REGISTER="true" 를 설정하는 것이 좋습니다. 기본 노드에서 오류가 발생한 경우 AUTOMATED_REGISTER="false" 를 보조 HANA 시스템 복제 노드로 수동으로 등록해야 합니다.

다음 명령은 RHEL 8.x의 SAPHanaController 승격 가능한 리소스를 만드는 방법의 예입니다. 이 예제에서는 SID RH1,InstanceNumber 10, Prefer Site TakeoverAutomated_REGISTER, Duplicate Primary Timeout of 7200 의 매개변수를 기반으로 합니다.

[root@dc1hana01]# pcs resource create rsc_SAPHana_RH1_HDB10 SAPHanaController SID=RH1 InstanceNumber=10 PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=true op demote interval=0s timeout=320 op methods interval=0s timeout=5 op monitor interval=59 role="Promoted" timeout=700 op monitor interval=61 role="Unpromoted" timeout=700 op promote interval=0 timeout=3600 op start interval=0 timeout=3600 op stop interval=0 timeout=3600 promotable clone-max=6 promoted-node-max=1 interleave=true --disabled
Copy to Clipboard Toggle word wrap
참고

clone-max 의 경우 명령에 나열된HDB _WORKER의 두 배 수를 사용합니다.

/usr/sap/hostctrl/exe/sapcontrol -nr 10 -function GetSystemInstanceList

GetSystemInstanceList
OK
hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus
dc1hana01,10,51013,51014,0.3,HDB|HDB_WORKER,GREEN
dc1hana02,10,51013,51014,0.3,HDB|HDB_WORKER,GREEN
dc1hana03,10,51013,51014,0.3,HDB|HDB_WORKER,GREEN
dc1hana04,10,51013,51014,0.3,HDB|HDB_STANDBY, GREEN
Copy to Clipboard Toggle word wrap

이 솔루션에서 SAPHanaController 생성 후 리소스는 다음 명령을 사용하여 승격 가능한 리소스로 정의됩니다(SIDRH1 이고 InstanceNumber10입니다).

자세한 내용은 다중 모드가 있는 다중 상태 리소스: 리소스를 참조하십시오.

3.3.3.3. 가상 IP 주소를 관리하도록 리소스 구성

클러스터에는 클라이언트가 기본 SAP HANA Scale-Out 사이트의 마스터 이름 서버에 도달하는 데 사용하는 가상 IP 주소를 관리하는 리소스가 포함되어야 합니다.

다음 명령은 가상 IP 10.0.0.250을 사용하여 IPaddr2 리소스를 생성하는 방법의 예입니다.

[root@dc1hana01]# pcs resource create rsc_ip_SAPHana_RH1_HDB10 ocf:heartbeat:IPaddr2 ip=10.0.0.250 op monitor interval="10s" timeout="20s"
Copy to Clipboard Toggle word wrap

3.3.4. 제약 조건 생성

올바른 작업의 경우 SAPHanaTopology 리소스가 시작되기 전에 시작하고 가상 IP 주소가 SAPHanaController 의 승격된 리소스가 실행되는 노드에 있는지 확인합니다. 다음 절차에 따라 필요한 네 가지 제약 조건을 생성합니다.

절차: SAPHana Topology이전 시작

다음 명령은 리소스 시작 순서를 요구하는 제약 조건을 생성하는 방법의 예입니다.

  1. 제약 조건을 생성합니다.

    [root@dc1hana01]# pcs constraint order start rsc_SAPHanaTopology_RH1_HDB10-clone then start rsc_SAPHana_RH1_HDB10-clone
    Copy to Clipboard Toggle word wrap
  2. IPaddr2 리소스를 승격된 SAPHana 리소스와 함께 배치합니다.

    [root@dc1hana01]# pcs constraint colocation add rsc_ip_SAPHana_RH1_HDB10 with promoted rsc_SAPHana_RH1_HDB10-clone
    Copy to Clipboard Toggle word wrap
  3. 대부분의 제조자가 클러스터 환경에서 활성 역할을 사용하지 않도록 합니다.

    [root@dc1hana01]# pcs constraint location add topology-avoids-majoritymaker rsc_SAPHanaTopology_RH1_HDB10-clone majoritymaker -INFINITY resource-discovery=never
    
    [root@dc1hana01]# pcs constraint location add hana-avoids-majoritymaker rsc_SAPHana_RH1_HDB10-clone majoritymaker -INFINITY resource-discovery=never
    Copy to Clipboard Toggle word wrap
  4. maintenance-mode 를 비활성화합니다.

    maintenance-mode 를 사용하여 maintenance-mode 를 false로 설정한 후 리소스를 시작합니다. 모든 구성이 완료되기 전에 pacemaker의 활동을 방지하기 위해 위의 예제에서 --disabled 를 사용했습니다. 기본적으로 리소스는 생성되는 즉시 시작됩니다. --disabled 를 사용하면 명령을 사용하여 리소스를 시작할 수 있습니다.

    [root@dc1hana01]# pcs resource enable <resource-name>
    Copy to Clipboard Toggle word wrap

    유지 관리 모드를 종료하려면 다음을 사용하십시오.

    [root@dc1hana01]# pcs property set maintenance-mode=false
    Copy to Clipboard Toggle word wrap
  5. 다음 3 명령을 실행하여 클러스터 환경이 올바르게 작동하는지 확인합니다.

    • pcs status 는 모든 리소스에 대한 개요를 제공하고 제대로 작동하는 경우입니다.
    • pcs status --full 은 모든 리소스 및 클러스터 환경에 대한 추가 속성 정보를 제공합니다.
    • SAPHanaSR-showAttr --sid=RH1 은 특성 정보를 기반으로 읽을 수 있는 개요를 제공합니다.

      유지 관리 모드를 비활성화한 후 몇 분 후에 올바른 상태가 표시됩니다.

      [root@dc1hana01]# pcs status
      Cluster name: hanascaleoutsr Stack: corosync
      Current DC: dc2hana01 (version 1.1.18-11.el7_5.4-2b07d5c5a9) - partition with quorum
      Last updated: Tue Mar 26 14:26:38 2019
      Last change: Tue Mar 26 14:25:47 2019 by root via crm_attribute on dc1hana01
      9 nodes configured
      20 resources configured
      Online: [ dc1hana01 dc1hana02 dc1hana03 dc1hana04 dc2hana01 dc2hana02 dc2hana03 dc2hana04 majoritymaker ]
      Full list of resources:
      
      fencing (stonith:fence_rhevm): Started dc1hana01
      Clone Set: rsc_SAPHanaTopology_RH1_HDB10-clone
      [rsc_SAPHanaTopology_RH1_HDB10]
      Started: [ dc1hana01 dc1hana02 dc1hana03 dc1hana04 dc2hana01 dc2hana02 dc2hana03 dc2hana04 ]
      Stopped: [ majoritymaker ] Clone Set: msl_rsc_SAPHana_RH1_HDB10 [rsc_SAPHana_RH1_HDB10] (promotable):
      Promoted: [ dc1hana01 ]
      Unpromoted: [ dc1hana02 dc1hana03 dc1hana04 dc2hana01 dc2hana02 dc2hana03 dc2hana04 ]
      Stopped: [ majoritymaker ]
      rsc_ip_SAPHana_RH1_HDB10	(ocf::heartbeat:IPaddr2): Started dc1hana01
      Daemon Status:
        corosync: active/enabled
        pacemaker: active/enabled
        pcsd: active/enabled
      
      
      [root@dc1hana01]# SAPHanaSR-showAttr --sid=RH1
      Global prim srHook sync_state
      ------------------------------
      global DC1 SOK SOK
      Sit lpt lss mns srr
      ---------------------------------
      DC1 1553607125 4 dc1hana01 P
      DC2 30 4 dc2hana01 S
      
      H clone_state roles score site
      --------------------------------------------------------
      1 PROMOTED promoted1 promoted:worker promoted 150 DC1
      2 DEMOTED promoted2:slave:worker:slave 110 DC1
      3 DEMOTED slave:slave:worker:slave -10000 DC1
      4 DEMOTED promoted3:slave:standby:standby 115 DC1
      5 DEMOTED promoted2 promoted:worker promoted 100 DC2
      6 DEMOTED promoted3:slave:worker:slave 80 DC2
      7 DEMOTED slave:slave:worker:slave -12200 DC2
      8 DEMOTED promoted1:slave:standby:standby 80 DC2
      9 :shtdown:shtdown:shtdown
      Copy to Clipboard Toggle word wrap

4장. 선택적 설정

4.1. Active/Active(Read-Enabled) 설정에 대한 보조 가상 IP 주소 리소스 추가

SAP HANA 2.0 SPS1부터 SAP HANA 시스템 복제를 위해 'Active/Active(Read Enabled)' 설정을 수행할 수 있습니다. 이를 통해 다음을 수행할 수 있습니다.

  • SAP HANA 시스템 복제를 통해 보조 시스템에서 읽기 액세스를 지원할 수 있습니다.
  • 보조 시스템에서 read-intense 보고를 실행하여 기본 시스템에서 이 워크로드를 제거합니다.
  • 지속적인 작동에서 대역폭의 필요성을 줄입니다.

자세한 내용은 SAP HANA 시스템 복제 도 확인하십시오.

클라이언트가 보조 SAP HANA 데이터베이스에 액세스할 수 있도록 하려면 두 번째 가상 IP 주소가 필요합니다. 실패 측면에서 보조 사이트에 액세스할 수 없는 경우 두 번째 IP는 읽기 전용 액세스 다운 타임을 방지하기 위해 기본 사이트로 전환됩니다.

operationModelogreplay_readaccess 로 설정해야 합니다. 다음 명령을 사용하여 두 번째 가상 IP 및 추가 필요한 제약 조건을 구성할 수 있습니다.

root# pcs resource create rsc_ip2_SAPHana_RH1_HDB10 ocf:heartbeat:IPaddr2 ip=10.0.0.251 op monitor interval="10s" timeout="20s
Copy to Clipboard Toggle word wrap

4.1.1. 추가 제약 조건 구성

위에 나열된 제한 사항은 엄격하게 권장됩니다. 환경에 대한 동작을 조정하려면 추가 제약 조건이 필요합니다. 이에 대한 예는 다음과 같습니다.

root# pcs constraint location rsc_ip_SAPHana_RH1_HDB10 rule score=500 role=master hana_rh1_roles eq "master1:master:worker:master" and hana_rh1_clone_state eq PROMOTED
Copy to Clipboard Toggle word wrap

보조 사이트가 다운되는 경우 IP2 를 기본 사이트로 이동합니다.

root# pcs constraint location rsc_ip2_SAPHana_RH1_HDB10 rule score=50 id=vip_slave_master_constraint hana_rh1_roles eq 'master1:master:worker:master'
Copy to Clipboard Toggle word wrap
root# pcs constraint order promote rsc_SAPHana_RH1_HDB10-clone then start rsc_ip_SAPHana_RH1_HDB10
Copy to Clipboard Toggle word wrap
root# pcs constraint order start rsc_ip_SAPHana_RH1_HDB10 then start rsc_ip2_SAPHana_RH1_HDB10
Copy to Clipboard Toggle word wrap
root# pcs constraint colocation add rsc_ip_SAPHana_RH1_HDB10 with Master rsc_SAPHana_RH1_HDB10-clone 2000
Copy to Clipboard Toggle word wrap
root# pcs constraint colocation add rsc_ip2_SAPHana_RH1_HDB10 with Slave rsc_SAPHana_RH1_HDB10-clone 5
Copy to Clipboard Toggle word wrap

프로세스

  1. 클러스터가 실행 중이면 실행 중이면 동작 테스트

    root# watch pcs status
    Copy to Clipboard Toggle word wrap
  2. 다음을 사용하여 보조 HANA 인스턴스를 수동으로 중지합니다.

    sidadm% sapcontrol -nr ${TINSTANCE} -function StopSystem HDB
    Copy to Clipboard Toggle word wrap
  3. 몇 초 후에 두 번째 IP 주소가 기본 호스트로 이동됩니다. 그런 다음 다음을 사용하여 데이터베이스를 수동으로 다시 시작할 수 있습니다.

    sidadm% sapcontrol -nr ${TINSTANCE} -function StartSystem HDB
    Copy to Clipboard Toggle word wrap
  4. 추가 사용을 위해 클러스터를 다시 시작합니다.

4.2. 파일 시스템 모니터링 추가

Pacemaker는 파일 시스템 리소스가 관리하지 않는 한 마운트 지점을 적극적으로 모니터링하지 않습니다. 스케일 아웃 환경에서는 데이터베이스를 다른 가용성 영역에 배포할 수 있습니다. 영역별로 마운트 지점을 사용할 수 있으므로 노드 속성으로 지정해야 합니다. 마운트를 파일 시스템 리소스에서만 처리해야 하는 경우 /etc/fstab 에서 해당 마운트를 제거해야 합니다. 마운트는 SAP HANA 서비스를 실행하는 데 필요하므로 SAP HANA 서비스가 시작되기 전에 주문 제약 조건이 파일 시스템이 마운트되었는지 확인해야 합니다. 자세한 내용은 How do I configure SAP HANA scale-Out System Replication in a Pacemaker cluster when the HANA filesystems are on NFS shares? 를 참조하십시오.

4.2.1. 파일 시스템 리소스 예

구성의 예는 다음과 같습니다.

pcs node 특성 나열:

[root@dc1hana01]# pcs node attribute
Node Attributes:
 saphdb1: hana_hdb_gra=2.0 hana_hdb_site=DC1 hana_hdb_vhost=sapvirthdb1
 saphdb2: hana_hdb_gra=2.0 hana_hdb_site=DC1 hana_hdb_vhost=sapvirthdb2
 saphdb3: hana_hdb_gra=2.0 hana_hdb_site=DC2 hana_hdb_vhost=sapvirthdb3
 saphdb4: hana_hdb_gra=2.0 hana_hdb_site=DC2 hana_hdb_vhost=sapvirthdb4
Copy to Clipboard Toggle word wrap

pcs node 속성 및 saphdb1 hana_hdb_site=DC1 속성 이름은 소문자입니다.

현재 구성이 있다고 가정합니다.

  • SID=RH1
  • Instance_Number=10
Expand

노드

AZ

속성

현재의

dc1hana01

DC1

NFS_SHARED_RH1_SITE

DC1

dc1hana02

DC1

NFS_SHARED_RH1_SITE

DC1

dc2hana01

DC2

NFS_SHARED_RH1_SITE

DC2

dc2hana02

DC2

NFS_SHARED_RH1_SITE

DC2

다음은 유사하게 처리할 수 있는 데이터 및 로그에 대한 노드 속성 마운트 지점을 설정하는 예입니다.

[root@dc1hana01]# pcs resource create nfs_hana_shared_dc1 ocf:heartbeat:Filesystem device=svm-012ab34cd45ef67.fs-0879de29a7fbb752d.fsx.ap-southeast-2.amazonaws.com:/sap_hana_dc1_log_shared/shared directory=/hana/shared fstype=nfs options=defaults,suid op monitor interval=60s on-fail=fence timeout=20s OCF_CHECK_LEVEL=20 clone
[root@dc1hana01]# pcs resource create nfs_hana_log_dc1 ocf:heartbeat:Filesystem device=svm-012ab34cd45ef67.fs-0879de29a7fbb752d.fsx.ap-southeast-2.amazonaws.com:/sap_hana_dc1_log_shared/lognode1 directory=/hana/log/HDB fstype=nfs options=defaults,suid op monitor interval=60s on-fail=fence timeout=20s OCF_CHECK_LEVEL=20 clone
[root@dc1hana01]# pcs resource create nfs_hana_log2_dc1 ocf:heartbeat:Filesystem device=svm-012ab34cd45ef67.fs-0879de29a7fbb752d.fsx.ap-southeast-2.amazonaws.com:/sap_hana_dc1_log_shared/lognode2 directory=/hana/log/HDB fstype=nfs options=defaults,suid op monitor interval=60s on-fail=fence timeout=20s OCF_CHECK_LEVEL=20 clone
[root@dc1hana01]# pcs resource create nfs_hana_shared_dc2 ocf:heartbeat:Filesystem device=svm-012ab34cd45ef78.fs-088e3f66bf4f22c33.fsx.ap-southeast-2.amazonaws.com:/sap_hana_dc2_log_shared/shared directory=/hana/shared fstype=nfs options=defaults,suid op monitor interval=60s on-fail=fence timeout=20s OCF_CHECK_LEVEL=20 clone
[root@dc1hana01]# pcs resource create nfs_hana_log_dc2 ocf:heartbeat:Filesystem device=svm-012ab34cd45ef678.fs-088e3f66bf4f22c33.fsx.ap-southeast-2.amazonaws.com:/sap_hana_dc2_log_shared/lognode1 directory=/hana/log/HDB fstype=nfs options=defaults,suid op monitor interval=60s on-fail=fence timeout=20s OCF_CHECK_LEVEL=20 clone
[root@dc1hana01]# pcs resource create nfs_hana_log2_dc2 ocf:heartbeat:Filesystem device=svm-012ab34cd45ef678.fs-088e3f66bf4f22c33.fsx.ap-southeast-2.amazonaws.com:/sap_hana_dc2_log_shared/lognode2 directory=/hana/log/HDB fstype=nfs options=defaults,suid op monitor interval=60s on-fail=fence timeout=20s OCF_CHECK_LEVEL=20 clone
[root@dc1hana01]# pcs node attribute sap-dc1-dbn2 NFS_HDB_SITE=DC1N2
[root@dc1hana01]# pcs node attribute sap-dc2-dbn1 NFS_HDB_SITE=DC2N1
[root@dc1hana01]# pcs node attribute sap-dc2-dbn2 NFS_HDB_SITE=DC2N2
[root@dc1hana01]# pcs node attribute sap-dc1-dbn1 NFS_SHARED_HDB_SITE=DC1
[root@dc1hana01]# pcs node attribute sap-dc1-dbn2 NFS_SHARED_HDB_SITE=DC1
[root@dc1hana01]# pcs node attribute sap-dc2-dbn1 NFS_SHARED_HDB_SITE=DC2
[root@dc1hana01]# pcs node attribute sap-dc2-dbn2 NFS_SHARED_HDB_SITE=DC2
[root@dc1hana01]# pcs constraint location nfs_hana_shared_dc1-clone rule resource-discovery=never score=-INFINITY NFS_SHARED_HDB_SITE ne DC1
[root@dc1hana01]# pcs constraint location nfs_hana_log_dc1-clone rule resource-discovery=never score=-INFINITY NFS_HDB_SITE ne DC1N1
[root@dc1hana01]# pcs constraint location nfs_hana_log2_dc1-clone rule resource-discovery=never score=-INFINITY NFS_HDB_SITE ne DC1N2
[root@dc1hana01]# pcs constraint location nfs_hana_shared_dc2-clone rule resource-discovery=never score=-INFINITY NFS_SHARED_HDB_SITE ne DC2
[root@dc1hana01]# pcs constraint location nfs_hana_log_dc2-clone rule resource-discovery=never score=-INFINITY NFS_HDB_SITE ne DC2N1
[root@dc1hana01]# pcs constraint location nfs_hana_log2_dc2-clone rule resource-discovery=never score=-INFINITY NFS_HDB_SITE ne DC2N2
[root@dc1hana01]# pcs resource enable nfs_hana_shared_dc1 *[root@dc1hana01]# pcs resource enable nfs_hana_log_dc1
[root@dc1hana01]# pcs resource enable nfs_hana_log2_dc1
[root@dc1hana01]# pcs resource enable nfs_hana_shared_dc2
[root@dc1hana01]# pcs resource enable nfs_hana_log_dc2
[root@dc1hana01]# pcs resource enable nfs_hana_log2_dc2
[root@dc1hana01]# pcs resource update nfs_hana_shared_dc1-clone meta clone-max=2 interleave=true
[root@dc1hana01]# pcs resource update nfs_hana_shared_dc2-clone meta clone-max=2 interleave=true
[root@dc1hana01]# pcs resource update nfs_hana_log_dc1-clone meta clone-max=1 interleave=true
[root@dc1hana01]# pcs resource update nfs_hana_log_dc2-clone meta clone-max=1 interleave=true
[root@dc1hana01]# pcs resource update nfs_hana_log2_dc1-clone meta clone-max=1 interleave=true
[root@dc1hana01]# pcs resource update nfs_hana_log2_dc2-clone meta clone-max=1 interleave=true
Copy to Clipboard Toggle word wrap

4.3. systemd 관리 SAP 서비스

systemd 지원 SAP HANA 버전 (SAP HANA 2.0 SPS07 이상)을 사용하는 경우 종료는 이러한 서비스를 정상적으로 중지합니다. 일부 환경에서는 펜싱이 종료되고 서비스가 정상적으로 중지됩니다. 경우에 따라 pacemaker가 예상대로 작동하지 않을 수 있습니다.

드롭인 파일을 추가하는 경우 서비스가 중지되지 않습니다(예: - /etc/systemd/system/resource-agents-deps.target.d/sap_systemd_hdb_00.conf ). 다른 파일 이름도 사용할 수 있습니다.

root@saphdb1:/etc/systemd/system/resource-agents-deps.target.d# more sap_systemd_hdb_00.conf
[Unit]
Description=Pacemaker SAP resource HDB_00 needs the SAP Host Agent service
Wants=saphostagent.service
After=saphostagent.service
Wants=SAPHDB_00.service
After=SAPHDB_00.service
Copy to Clipboard Toggle word wrap

이러한 파일을 활성화해야 합니다. 다음 명령을 사용합니다.

[root]# systemctl daemon-reload
Copy to Clipboard Toggle word wrap

자세한 내용은 systemd 기반 SAP 시작 프레임워크가 활성화된 경우 SAPHana 리소스 에이전트의 중지 작업이 실패하는 이유를 확인하십시오. .

4.4. 추가 후크

위에서는 srConnectionChanged() 후크를 구성했습니다. srServiceStateChanged() 에 대한 추가 후크를 사용하여 SAP HANA 인스턴스의 hdbindexserver 프로세스의 변경 사항을 관리할 수도 있습니다.

아래의 단계를 수행하여 모든 HA 클러스터 노드에서 각 SAP HANA 인스턴스에 대해 srServiceStateChanged() 후크를 활성화합니다.

참고

이 솔루션은 기술 프리뷰 입니다. Red Hat 글로벌 지원 서비스는 지원 케이스를 생성하는 구독 고객을 대신하여 버그 보고서를 작성할 수 있습니다.

프로세스

  1. 각 노드에서 SAP HANA global.ini 파일을 업데이트하여 두 SAP HANA 인스턴스에서 후크 스크립트를 사용할 수 있도록 합니다(예: /hana/shared/RH1/global/hdb/custom/config/global.ini).

    [ha_dr_provider_chksrv]
    path = /usr/share/SAPHanaSR-ScaleOut
    execution_order = 2
    action_on_lost = stop
    
    [trace]
    ha_dr_saphanasr = info
    ha_dr_chksrv = info
    Copy to Clipboard Toggle word wrap
  2. 다음과 같이 선택적 매개변수를 설정합니다.

    • action_on_lost (기본값: ignore)
    • stop_timeout (기본값: 20)
    • kill_signal (기본값: 9)

      다음은 action_on_lost 에 사용 가능한 옵션에 대한 설명입니다.

    • ignore:이 기능을 활성화하지만 이벤트만 기록합니다. 이는 구성된 환경에서 후크의 활동을 모니터링하는 데 유용합니다.
    • stop: 이 명령은 정상 sapcontrol -nr <nr> -function StopSystem 을 실행합니다.
    • kill: 가장 빠른 정지를 위해HDB kill-<signal >을 실행합니다.

      참고

      stop_timeout 은 stop 및 kill 작업의 명령에 추가되며 kill_signal 은HDB kill -<signal> 명령의 일부로 kill 작업에 사용됩니다.

  3. HA/DR 공급자를 다시 로드하여 HANA가 실행되는 동안 새 후크를 활성화합니다.

    [rh1adm]$ hdbnsutil -reloadHADRProviders
    Copy to Clipboard Toggle word wrap
  4. 새 추적 파일을 확인하여 후크 초기화를 확인합니다.

    [rh1adm]$ cdtrace [rh1adm]$ cat nameserver_chksrv.trc
    Copy to Clipboard Toggle word wrap

    자세한 내용은 HA/DR 공급자 구현을 참조하십시오.

5장. 예제 및 모범 사례

5.1. 환경 테스트

다음 단계를 수행하여 모든 항목이 예상대로 작동하는지 확인합니다.

프로세스

  1. takeover 실행

    장애 조치(failover)를 수행하려면 마스터 노드의 점수를 변경합니다. 이 예에서 SAPHana 복제 리소스는 rsc_SAPHana_HDB_HDB00-clone 이며 saphdb3 은 두 번째 가용성 영역의 하나의 노드입니다.

    pcs constraint location rsc_SAPHana_HDB_HDB00-clone rule role=master score=100 \#uname eq saphdb3
    Copy to Clipboard Toggle word wrap

    이 제약 조건은 다음을 사용하여 다시 제거해야 합니다.

    pcs constraint remove rsc_SAPHana_HDB_HDB00
    Copy to Clipboard Toggle word wrap

    그렇지 않으면 pacemaker에서 SAPHDB1 에서 HANA를 시작하려고 합니다.

  2. 노드 펜싱

    명령을 사용하여 노드를 펜싱할 수 있습니다.

    pcs stonith fence <nodename>
    Copy to Clipboard Toggle word wrap

    다른 펜싱 옵션 및 사용된 인프라에 따라 이 노드는 다운되거나 다시 돌아갑니다.

  3. HANA 종료

    또한 데이터베이스 종료하여 SAP 리소스 에이전트가 작동하는지 확인할 수도 있습니다. sidadm 에서는 다음을 호출할 수 있습니다. 

    sidadm% HDB kill
    Copy to Clipboard Toggle word wrap

    Pacemaker에서 이 문제를 감지하고 솔루션으로 해결합니다.

5.2. 유용한 별칭

5.2.1. 사용자 root의 별칭

이러한 별칭은 .bashrc에 추가됩니다.

export ListInstances=$(/usr/sap/hostctrl/exe/saphostctrl -function ListInstances| head -1 )
export sid=$(echo "$ListInstances" |cut -d " " -f 5| tr [A-Z] [a-z])
export SID=$(echo $sid | tr [a-z] [A-Z])
export Instance=$(echo "$ListInstances" |cut -d " " -f 7 )
alias crmm='watch -n 1 crm_mon -1Arf'
alias crmv='watch -n 1 /usr/local/bin/crmmv'
alias clean=/usr/local/bin/cleanup
alias cglo='su - ${sid}adm -c cglo'
alias cdh='cd /usr/lib/ocf/resource.d/heartbeat'
alias vhdbinfo="vim /usr/sap/${SID}/home/hdbinfo;dcp /usr/sap/${SID}/home/hdbinfo"
alias gtr='su - ${sid}adm -c gtr'
alias hdb='su - ${sid}adm -c hdb'
alias hdbi='su - ${sid}adm -c hdbi'
alias hgrep='history | grep $1'
alias hri='su - ${sid}adm -c hri'
alias hris='su - ${sid}adm -c hris'
alias killnode="echo 'b' > /proc/sysrq-trigger"
alias lhc='su - ${sid}adm -c lhc'
alias python='/usr/sap/${SID}/HDB${Instance}/exe/Python/bin/python'
alias pss="watch 'pcs status --full | egrep -e Node\|master\|clone_state\|roles'"
alias srstate='su - ${sid}adm -c srstate'
alias shr='watch -n 5 "SAPHanaSR-monitor --sid=${SID}"'
alias sgsi='su - ${sid}adm -c sgsi'
alias spl='su - ${sid}adm -c spl'
alias srs='su - ${sid}adm -c srs'
alias sapstart='su - ${sid}adm -c sapstart'
alias sapstop='su - ${sid}adm -c sapstop'
alias sapmode='df -h /;su - ${sid}adm -c sapmode'
alias smm='pcs property set maintenance-mode=true'
alias usmm='pcs property set maintenance-mode=false'
alias tma='tmux attach -t 0:'
alias tmkill='tmux killw -a'
alias tm='tail -100f /var/log/messages |grep -v systemd'
alias tms='tail -1000f /var/log/messages | egrep -s\
"Setting master-rsc_SAPHana_${SID}_HDB${Instance}|sr_register\ *|WAITING4LPA\|EXCLUDE as posible takeover node|SAPHanaSR|failed|${HOSTNAME}\
|PROMOTED|DEMOTED|UNDEFINED|master_walk|SWAIT|WaitforStopped|FAILED"'
alias tmss='tail -1000f /var/log/messages | grep -v systemd\
| egrep -s "secondary with sync status|Settingmaster-rsc_SAPHana_${SID}_HDB${Instance}\
|sr_register|WAITING4LPA|EXCLUDE as posible takeover node|SAPHanaSR\
|failed|${HOSTNAME}|PROMOTED|DEMOTED|UNDEFINED|master_walk|SWAIT|WaitforStopped|FAILED"'
alias tmm='tail -1000f /var/log/messages | egrep -s \
"Settingmaster-rsc_SAPHana_${SID}_HDB${Instance}|sr_register\
|WAITING4LPA|PROMOTED|DEMOTED|UNDEFINED|master_walk|SWAIT|W aitforStopped\
|FAILED|LPT|SOK|SFAIL|SAPHanaSR-mon"| grep -v systemd'
alias tmsl='tail -1000f /var/log/messages | egrep -s\
"Settingmaster-rsc_SAPHana_${SID}_HDB${Instance}|sr_register|WAITING4LPA\
|PROMOTED|DEMOTED|UNDEFINED|ERROR|Warning|mast er_walk|SWAIT\
|WaitforStopped|FAILED|LPT|SOK|SFAIL|SAPHanaSR-mon"'
alias vih='vim /usr/lib/ocf/resource.d/heartbeat/SAPHanaStart'
alias switch1='pcs constraint location rsc_SAPHana_HDB_HDB00-clone \
rule role=master score=100 \#uname eq saphdb1'
alias switch3='pcs constraint location rsc_SAPHana_HDB_HDB00-clone \
rule role=master score=100 \#uname eq saphdb3'
alias switch0='pcs constraint remove location-rsc_SAPHana_HDB_HDB00-clone
alias switchl='pcs constraint location | grep pcs resource | grep promotable\
| awk "{ print $4 }"` | grep Constraint| awk "{ print $NF }"'
alias scl='pcs constraint location |grep " Constraint"'
Copy to Clipboard Toggle word wrap

5.2.2. SIDadm 사용자의 별칭

이러한 별칭은 ~/.customer.sh:에 추가됩니다.

alias tm='tail -100f /var/log/messages |grep -v systemd'
alias tms='tail -1000f /var/log/messages | egrep -s \
"Settingmaster-rsc_SAPHana_$SAPSYSTEMNAME_HDB${TINSTANCE}|sr_register\
|WAITING4LPA|EXCLUDE as posible takeover node|SAPHanaSR|failed\
|${HOSTNAME}|PROMOTED|DEMOTED|UNDEFINED|master_walk|SWAIT|WaitforStopped|FAILED"'
alias tmsl='tail -1000f /var/log/messages | egrep -s \
"Settingmaster-rsc_SAPHana_$SAPSYSTEMNAME_HDB${TINSTANCE}|sr_register\
|WAITING4LPA|PROMOTED|DEMOTED|UNDEFINED|master_walk|SWAIT|WaitforStopped|FAILED|LPT"'
alias sapstart='sapcontrol -nr ${TINSTANCE} -function StartSystem HDB;hdbi'
alias sapstop='sapcontrol -nr ${TINSTANCE} -function StopSystem HDB;hdbi'
alias sapmode='watch -n 5 "hdbnsutil -sr_state --sapcontrol=1 |grep site.\*Mode"'
alias sapprim='hdbnsutil -sr_stateConfiguration| grep -i primary'
alias sgsi='watch sapcontrol -nr ${TINSTANCE} -function GetSystemInstanceList'
alias spl='watch sapcontrol -nr ${TINSTANCE} -function GetProcessList'
alias splh='watch "sapcontrol -nr ${TINSTANCE} -function GetProcessList\
| grep hdbdaemon"'
alias srs="watch -n 5 'python \
/usr/sap/$SAPSYSTEMNAME/HDB${TINSTANCE}/exe/python_support/systemReplicationStatus.py * *; echo Status \$?'"
alias cdb="cd /usr/sap/${SAPSYSTEMNAME}/HDB${TINSTANCE}/backup"
alias srstate='watch -n 10 hdbnsutil -sr_state'
alias hdb='watch -n 5 "sapcontrol -nr ${TINSTANCE} -function GetProcessList\
| egrep -s hdbdaemon\|hdbnameserver\|hdbindexserver "'
alias hdbi='watch -n 5 "sapcontrol -nr ${TINSTANCE} -function GetProcessList\
| egrep -s hdbdaemon\|hdbnameserver\|hdbindexserver\
;sapcontrol -nr ${TINSTANCE} -function GetSystemInstanceList "'
alias hgrep='history | grep $1'
alias vglo="vim /usr/sap/$SAPSYSTEMNAME/SYS/global/hdb/custom/config/global.ini"
alias vgloh="vim /hana/shared/${SAPSYSTEMNAME}/HDB${TINSTANCE}/${HOSTNAME}/global.ini"
alias hri='hdbcons -e hdbindexserver "replication info"'
alias hris='hdbcons -e hdbindexserver "replication info" \
| egrep -e "SiteID|ReplicationStatus_"'
alias gtr='watch -n 10 /usr/sap/$SAPSYSTEMNAME/HDB${TINSTANCE}/exe/Python/bin/python \
/usr/sap/$SAPSYSTEMNAME/HDB${TINSTANCE}/exe/python_support/getTakeoverRecommendation.py \
--sapcontrol=1'
alias lhc='/usr/sap/$SAPSYSTEMNAME/HDB${TINSTANCE}/exe/Python/bin/python \
/usr/sap/$SAPSYSTEMNAME/HDB${TINSTANCE}/exe/python_support/landscapeHostConfiguration.py\
;echo $?'
alias reg1='hdbnsutil -sr_register --remoteHost=hana07 -remoteInstance=${TINSTANCE} \
--replicationMode=syncmem --name=DC3 --remoteName=DC1 \
--operationMode=logreplay --online'
alias reg2='hdbnsutil -sr_register --remoteHost=hana08 -remoteInstance=${TINSTANCE} \
--replicationMode=syncmem --name=DC3 --remoteName=DC2 \
--operationMode=logreplay --online'
alias reg3='hdbnsutil -sr_register --remoteHost=hana09 -remoteInstance=${TINSTANCE} \
--replicationMode=syncmem --name=DC3 --remoteName=DC3 --operationMode=logreplay \
--online'
PS1="\[\033[m\][\[\e[1;33m\]\u\[\e[1;33m\]\[\033[m\]@\[\e[1;36m\]\h\[\033[m\]: \[\e[0m\]\[\e[1;32m\]\W\[\e[0m\]]# "
Copy to Clipboard Toggle word wrap

5.3. 장애 조치 모니터링 예

수취를 강제하는 방법은 여러 가지가 있습니다. 이 예에서는 노드를 종료하지 않고 강제로 사용합니다. SAP 리소스 에이전트는 점수와 함께 SAPHana 복제 리소스를 승격할 노드를 결정합니다. 다음 명령을 사용하여 현재 상태를 확인할 수 있습니다.

[root@saphdb2:~]# alias pss='pcs status --full | egrep -e "Node|master|clone_state|roles"'
[root@saphdb2:~]# pss
Node List:
Node Attributes:
* Node: saphdb1 (1):
* hana_hdb_clone_state : PROMOTED
* hana_hdb_roles : master1:master:worker:master
* master-rsc_SAPHana_HDB_HDB00 : 150
* Node: saphdb2 (2):
* hana_hdb_clone_state : DEMOTED
* hana_hdb_roles : slave:slave:worker:slave
* master-rsc_SAPHana_HDB_HDB00 : -10000
* Node: saphdb3 (3):
* hana_hdb_clone_state : DEMOTED
* hana_hdb_roles : master1:master:worker:master
* master-rsc_SAPHana_HDB_HDB00 : 100
* Node: saphdb4 (4):
* hana_hdb_clone_state : DEMOTED
* hana_hdb_roles : slave:slave:worker:slave
* master-rsc_SAPHana_HDB_HDB00 : -12200
Copy to Clipboard Toggle word wrap

이 예에서는 SAPHana 복제 리소스는 saphdb1 에서 승격됩니다. 따라서 기본 데이터베이스는 saphdb1 에서 실행됩니다. 이 노드의 점수는 150 이며 보조 saphdb3 의 점수를 조정하여 pacemaker가 데이터베이스를 보조 상태로 전환하도록 할 수 있습니다.

6장. 유지 관리 절차

다음 섹션에서는 HANA scale-Out System Replication을 관리하는 데 사용되는 HA 클러스터 설정에서 유지 관리를 수행하는 데 권장되는 절차를 설명합니다. 이러한 절차를 서로 독립적으로 사용해야 합니다.

참고

이러한 절차를 사용할 때 클러스터를 유지 관리 모드로 설정할 필요가 없습니다. 자세한 내용은 When to use "maintenance-mode" in RHEL High Availability Add-on for pacemaker based cluster? 를 참조하십시오.

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

자세한 내용은 RHEL High Availability 또는 Resilient Storage Cluster에 소프트웨어 업데이트를 적용하는 권장 사례를 참조하십시오.

6.2. SAP HANA 인스턴스 업데이트

프로세스

이 문서에 설명된 HA 클러스터 구성이 SAP HANA 시스템 복제 설정을 관리하는 경우 업데이트 전후에 SAP HANA 인스턴스를 업데이트하는 실제 프로세스 외에도 몇 가지 추가 단계를 실행해야 합니다. 다음 단계를 실행합니다.

  1. SAPHana 리소스를 관리되지 않는 모드로 설정합니다.

    [root]# pcs resource unmanage SAPHana_RH1_HDB10-clone
    Copy to Clipboard Toggle word wrap
  2. SAP에서 제공하는 절차를 사용하여 SAP HANA 인스턴스를 업데이트합니다.
  3. SAP HANA 인스턴스의 업데이트가 완료되고 SAP HANA 시스템 복제가 다시 작동하는 것을 확인할 때 클러스터가 SAP HANA 시스템 복제 설정의 현재 상태를 인식하도록 SAPHana 리소스의 상태를 새로 고침합니다.

    [root]# pcs resource refresh SAPHana_RH1_HDB10-clone
    Copy to Clipboard Toggle word wrap
  4. HA 클러스터가 SAP HANA 시스템 복제 설정의 현재 상태를 올바르게 선택할 때 HA 클러스터가 SAP HANA 시스템 복제 설정의 문제에 다시 대응할 수 있도록 SAPHana 리소스를 다시 관리 모드로 설정합니다.

    [root]# pcs resource manage SAPHana_RH1_HDB10-clone
    Copy to Clipboard Toggle word wrap

승격 가능한 복제 리소스를 이동하여 SAP HANA 시스템 복제에 대한 수동 가져오기를 트리거합니다.

[root]# pcs resource move SAPHana_RH1_HDB10-clone
Copy to Clipboard Toggle word wrap
참고

이 명령이 올바르게 작동하려면 pcs-0.10.8-1.el8 이상이 필요합니다. 자세한 내용은 "-master"를 지정하지 않는 한 승격 가능한 복제본에 대해 pcs resource move 명령이 실패합니다.

HA 클러스터는 각 pcs resource move 명령을 호출하면 위치 제약 조건을 생성하여 리소스가 이동합니다. 자세한 내용은 pcs resource move를 실행할 때 제약 조건을 관리하는 방법이 있습니까? 를 참조하십시오.

HA 클러스터가 이전 기본 SAP HANA 인스턴스를 다시 관리할 수 있도록 SAP HANA 시스템 복제 수집이 완료되었는지 확인한 후 이 제약 조건을 제거해야 합니다.

pcs resource move 에서 생성한 제약 조건을 제거하려면 다음 명령을 사용합니다.

[root]# pcs resource clear SAPHana_RH1_HDB10-clone
Copy to Clipboard Toggle word wrap
참고

이전 SAP HANA 기본 인스턴스가 인수 완료 후 발생하는 작업은 SAPHana 리소스의 AUTOMATED_REGISTER 매개변수 설정에 따라 달라집니다.

  • Automated_REGISTER=true 인 경우 이전 SAP HANA 기본 인스턴스가 새 보조 인스턴스로 등록되고 SAP HANA 시스템 복제가 다시 활성화됩니다.
  • AUTOMATED_REGISTER=false 인 경우, 이전 SAP HANA 기본 인스턴스에서 어떤 일이 발생할지 결정하는 것은 운영자에게 달려 있습니다.

7장. 참고 자료

7.1. Red Hat

7.2. SAP

7.3. 기타

법적 공지

Copyright © 2024 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
맨 위로 이동