SAP 애플리케이션용 Red Hat Enterprise Linux의 Azure VM 기반 SAP NetWeaver에 대한 다중 SID 고가용성

이 문서에서는 SAP 애플리케이션용 Red Hat Enterprise Linux를 사용하는 Azure VM의 2노드 클러스터에 여러 SAP NetWeaver 고가용성 시스템(다중 SID)을 배포하는 방법에 대해 설명합니다.

예 구성에서는 3개의 SAP NetWeaver 7.50 시스템이 단일 2노드 고가용성 클러스터에 배포됩니다. SAP 시스템 SID는 다음과 같습니다.

  • NW1: ASCS 인스턴스 번호 00 및 가상 호스트 이름 msnw1ascs. ERS 인스턴스 번호 02 및 가상 호스트 이름 msnw1ers.
  • NW2: ASCS 인스턴스 번호 10 및 가상 호스트 이름 msnw2ascs. ERS 인스턴스 번호 12 및 가상 호스트 이름 msnw2ers.
  • NW3: ASCS 인스턴스 번호 20 및 가상 호스트 이름 msnw3ascs. ERS 인스턴스 번호 22 및 가상 호스트 이름 msnw3ers.

이 문서에서는 데이터베이스 계층과 SAP NFS 공유 배포에 대해 설명하지 않습니다.

이 문서의 예에서는 볼륨이 이미 배포되었다고 가정하고 NFS 공유에 대해 Azure NetApp Files 볼륨 sapMSID를 사용합니다. 이 예에서는 Azure NetApp Files 볼륨이 NFSv3 프로토콜을 사용하여 배포되었다고 가정합니다. SAP 시스템 NW1, NW2NW3의 ASCS 및 ERS 인스턴스에 대한 클러스터 리소스에 대해 다음 파일 경로를 사용합니다.

  • sapMSID 볼륨(nfs://10.42.0.4/sapmntNW1)
  • sapMSID 볼륨(nfs://10.42.0.4/usrsapNW1ascs)
  • sapMSID 볼륨(nfs://10.42.0.4/usrsapNW1sys)
  • sapMSID 볼륨(nfs://10.42.0.4/usrsapNW1ers)
  • sapMSID 볼륨(nfs://10.42.0.4/sapmntNW2)
  • sapMSID 볼륨(nfs://10.42.0.4/usrsapNW2ascs)
  • sapMSID 볼륨(nfs://10.42.0.4/usrsapNW2sys)
  • sapMSID 볼륨(nfs://10.42.0.4/usrsapNW2ers)
  • sapMSID 볼륨(nfs://10.42.0.4/sapmntNW3)
  • sapMSID 볼륨(nfs://10.42.0.4/usrsapNW3ascs)
  • sapMSID 볼륨(nfs://10.42.0.4/usrsapNW3sys)
  • sapMSID 볼륨(nfs://10.42.0.4/usrsapNW3ers)

시작하기 전에 다음 SAP Note와 문서를 참조하세요.

개요

장애 조치(failover)가 발생하는 경우 클러스터에 참가하는 가상 머신은 모든 리소스를 실행할 수 있도록 크기를 조정해야 합니다. 각 SAP SID는 다중 SID 고가용성 클러스터에서 서로 독립적으로 장애 조치(failover)할 수 있습니다.

고가용성을 달성하려면 SAP NetWeaver에 고가용성 공유가 필요합니다. 이 문서에서는 Azure NetApp Files NFS 볼륨에 배포된 SAP 공유의 예를 보여 줍니다. 대신 여러 SAP 시스템에서 사용할 수 있는 고가용성 GlusterFS 클러스터에서 공유를 호스팅할 수 있습니다.

Diagram shows S A P NetWeaver High Availability overview with Pacemaker cluster and SAP NFS shares.

Important

Azure VM에서 Red Hat Linux를 게스트 운영 체제로 사용하는 SAP ASCS/ERS의 다중 SID 클러스터링에 대한 지원은 동일한 클러스터에서 5개의 SAP SID로 제한됩니다. 각각의 새 SID는 복잡성을 증가시킵니다. 동일한 클러스터에서 SAP 큐에 넣기 복제 서버 1과 큐에 넣기 복제 서버 2를 함께 사용하는 것은 지원되지 않습니다. 다중 SID 클러스터링은 서로 다른 SID가 있는 여러 SAP ASCS/ERS 인스턴스를 하나의 Pacemaker 클러스터에 설치하는 방법을 설명합니다. 현재 다중 SID 클러스터링은 ASCS/ERS에만 지원됩니다.

SAP ASCS/ERS의 다중 SID 클러스터링은 더 복잡한 솔루션입니다. 구현하는 것이 더 복잡합니다. 또한 유지 관리 작업(예: OS 패치 적용)을 실행할 때 더 많은 관리 활동이 필요합니다. 실제 구현을 시작하기 전에 배포 및 모든 관련 구성 요소(예: VM, NFS 탑재, VIP, 부하 분산 장치 구성 등)를 신중하게 계획하세요.

SAP NetWeaver ASCS, SAP NetWeaver SCS 및 SAP NetWeaver ERS는 가상 호스트 이름 및 가상 IP 주소를 사용합니다. Azure에서는 가상 IP 주소를 사용하려면 부하 분산 장치가 필요합니다. 표준 부하 분산 장치를 사용하는 것이 좋습니다.

  • ASCS의 프런트 엔드 IP 주소: 10.3.1.50(NW1), 10.3.1.52(NW2), 10.3.1.54(NW3)
  • ERS의 프런트 엔드 IP 주소: 10.3.1.51(NW1), 10.3.1.53(NW2), 10.3.1.55(NW3)
  • NW1 ASCS의 경우 프로브 포트 62000, NW2 ASCS의 경우 62010, NW3 ASCS의 경우 62020
  • NW1 ASCS의 경우 프로브 포트 62102, NW2 ASCS의 경우 62112, NW3 ASCS의 경우 62122

Important

부동 IP는 부하 분산 시나리오의 NIC 보조 IP 구성에서 지원되지 않습니다. 자세한 내용은 Azure Load Balancer 제한 사항을 참조하세요. VM에 대한 추가 IP 주소가 필요한 경우 두 번째 NIC를 배포합니다.

참고 항목

공용 IP 주소가 없는 VM이 내부(공용 IP 주소 없음) 표준 Azure 부하 분산 장치의 백 엔드 풀에 배치되는 경우 퍼블릭 엔드포인트로 라우팅을 허용하기 위해 추가 구성을 수행하지 않는 한 아웃바운드 인터넷 연결이 없습니다. 아웃바운드 연결을 설정하는 방법에 대한 자세한 내용은 SAP 고가용성 시나리오에서 Azure 표준 Load Balancer를 사용하는 Virtual Machines에 대한 퍼블릭 엔드포인트 연결을 참조하세요.

Important

Azure Load Balancer 뒤에 배치되는 Azure VM에서 TCP 타임스탬프를 사용하도록 설정하면 안 됩니다. TCP 타임스탬프를 사용하도록 설정하면 상태 프로브에 오류가 발생합니다. 매개 변수 net.ipv4.tcp_timestamps를 0으로 설정합니다. 자세한 내용은 부하 분산 장치 상태 프로브를 참조하세요.

SAP 공유

SAP NetWeaver에는 전송, 프로필 디렉터리 등에 대한 공유 스토리지가 필요합니다. 고가용성 SAP 시스템의 경우 고가용성 공유를 사용해야 합니다. SAP 공유의 아키텍처를 결정해야 합니다. 한 가지 옵션은 공유를 Azure NetApp Files NFS 볼륨에 배포하는 것입니다. Azure NetApp Files를 사용하면 SAP NFS 공유에 대한 기본 제공 고가용성이 제공됩니다.

또 다른 옵션은 여러 SAP 시스템 간에 공유할 수 있는 SAP NetWeaver용 Red Hat Enterprise Linux 기반 Azure VM의 GlusterFS를 빌드하는 것입니다.

클러스터에 첫 번째 SAP 시스템 배포

SAP 공유의 아키텍처를 결정한 후 해당 설명서에 따라 클러스터의 첫 번째 SAP 시스템을 배포합니다.

이 문서에서는 필요한 인프라 준비, 클러스터 빌드, SAP 애플리케이션 실행을 위한 OS 준비 단계를 안내합니다.

첫 번째 시스템이 배포되면 추가 SAP SID를 클러스터에 추가하기 전에 항상 클러스터의 장애 조치(failover) 기능을 테스트하세요. 이렇게 하면 추가 SAP 시스템의 복잡성을 클러스터에 추가하기 전에 클러스터 기능이 작동하는지 알 수 있습니다.

클러스터에 더 많은 SAP 시스템 배포

이 예에서는 NW1 시스템이 이미 클러스터에 배포되었다고 가정합니다. 이 예에서는 클러스터에 SAP 시스템 NW2NW3을 배포하는 방법을 보여 줍니다.

다음 항목에는 접두사가 붙습니다.

  • [A]: 모든 노드에 적용 가능
  • [1] 노드 1에만 적용 가능
  • [2] 노드 2에만 적용 가능

필수 조건

Important

지침에 따라 클러스터에 추가 SAP 시스템을 배포하기 전에 클러스터에 첫 번째 SAP 시스템을 배포합니다. 첫 번째 시스템 배포 중에만 필요한 단계가 있습니다.

이 문서에서는 다음을 가정합니다.

  • Pacemaker 클러스터가 이미 구성되어 실행되고 있습니다.
  • 하나 이상의 SAP 시스템(ASCS / ERS 인스턴스)이 이미 배포되어 클러스터에서 실행되고 있습니다.
  • 클러스터 장애 조치(failover) 기능이 테스트되었습니다.
  • 모든 SAP 시스템에 대한 NFS 공유가 배포됩니다.

SAP NetWeaver 설치 준비

  1. Azure Portal을 통해 수동으로 Azure Load Balancer 배포 지침에 따라 새로 배포된 시스템(즉, NW2NW3)에 대한 구성을 기존 Azure Load Balancer에 추가합니다. 구성에 대한 IP 주소, 상태 프로브 포트 및 부하 분산 규칙을 조정합니다.

  2. [A] 더 많은 SAP 시스템에 대한 이름 확인을 설정합니다. DNS 서버를 사용하거나 모든 노드에서 /etc/hosts를 수정할 수 있습니다. 이 예에서는 /etc/hosts 파일 사용 방법을 보여줍니다. IP 주소 및 호스트 이름을 환경에 맞게 조정합니다.

    sudo vi /etc/hosts
    # IP address of the load balancer frontend configuration for NW2 ASCS
    10.3.1.52 msnw2ascs
    # IP address of the load balancer frontend configuration for NW3 ASCS
    10.3.1.54 msnw3ascs
    # IP address of the load balancer frontend configuration for NW2 ERS
    10.3.1.53 msnw2ers
    # IP address of the load balancer frontend configuration for NW3 ERS
    10.3.1.55 msnw3ers
    
  3. [A] 클러스터에 배포할 NW2NW3 SAP 시스템의 공유 디렉터리를 만듭니다.

    sudo mkdir -p /sapmnt/NW2
    sudo mkdir -p /usr/sap/NW2/SYS
    sudo mkdir -p /usr/sap/NW2/ASCS10
    sudo mkdir -p /usr/sap/NW2/ERS12
    sudo mkdir -p /sapmnt/NW3
    sudo mkdir -p /usr/sap/NW3/SYS
    sudo mkdir -p /usr/sap/NW3/ASCS20
    sudo mkdir -p /usr/sap/NW3/ERS22
    
    
    sudo chattr +i /sapmnt/NW2
    sudo chattr +i /usr/sap/NW2/SYS
    sudo chattr +i /usr/sap/NW2/ASCS10
    sudo chattr +i /usr/sap/NW2/ERS12
    sudo chattr +i /sapmnt/NW3
    sudo chattr +i /usr/sap/NW3/SYS
    sudo chattr +i /usr/sap/NW3/ASCS20
    sudo chattr +i /usr/sap/NW3/ERS22
    
  4. [A] 클러스터에 배포하는 다른 SAP 시스템의 경우 /sapmnt/SID/usr/sap/SID/SYS 파일 시스템에 대한 탑재 항목을 추가합니다. 이 예에서는 NW2NW3입니다.

    클러스터에 배포 중인 다른 SAP 시스템의 파일 시스템으로 파일 /etc/fstab을 업데이트합니다.

ASCS/ERS 설치

  1. 클러스터에 배포 중인 다른 SAP 시스템의 ASCS 인스턴스에 대한 가상 IP 및 상태 프로브 클러스터 리소스를 만듭니다. 이 예에서는 NFSv3 프로토콜을 통해 Azure NetApp Files 볼륨에서 NFS를 사용하는 NW2NW3 ASCS를 사용합니다.

    sudo pcs resource create fs_NW2_ASCS Filesystem device='10.42.0.4:/sapMSIDR/usrsapNW2ascs' \
    directory='/usr/sap/NW2/ASCS10' fstype='nfs' force_unmount=safe \
    op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=40 \
     --group g-NW2_ASCS
    
    sudo pcs resource create vip_NW2_ASCS IPaddr2 \
    ip=10.3.1.52 \
     --group g-NW2_ASCS
    
    sudo pcs resource create nc_NW2_ASCS azure-lb port=62010 \
     --group g-NW2_ASCS
    
    sudo pcs resource create fs_NW3_ASCS Filesystem device='10.42.0.4:/sapMSIDR/usrsapNW3ascs' \
    directory='/usr/sap/NW3/ASCS20' fstype='nfs' force_unmount=safe \
    op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=40 \
    --group g-NW3_ASCS
    
    sudo pcs resource create vip_NW3_ASCS IPaddr2 \
    ip=10.3.1.54 \
    --group g-NW3_ASCS
    
    sudo pcs resource create nc_NW3_ASCS azure-lb port=62020 \
    --group g-NW3_ASCS
    

    클러스터 상태가 정상이고 모든 리소스가 시작되었는지 확인합니다. 리소스가 실행되는 노드는 중요하지 않습니다.

  2. [1] SAP NetWeaver ASCS를 설치합니다.

    ASCS에 대한 부하 분산 장치 프런트 엔드 구성의 IP 주소에 매핑되는 가상 호스트 이름을 사용하여 루트 권한으로 SAP NetWeaver ASCS를 설치합니다. 예를 들어 NW2 시스템의 경우 가상 호스트 이름은 msnw2ascs, 10.3.1.52 및 부하 분산 장치의 프로브에 사용한 인스턴스 번호(예: 10)입니다. NW3 시스템의 경우 가상 호스트 이름은 msnw3ascs, 10.3.1.54 및 부하 분산 장치의 프로브에 사용한 인스턴스 번호(예: 20)입니다. 각 SAP SID에 대해 ASCS를 설치한 클러스터 노드를 적어 둡니다.

    sapinst 매개 변수 SAPINST_REMOTE_ACCESS_USER를 사용하여 루트가 아닌 사용자가 sapinst에 연결할 수 있습니다. 매개 변수 SAPINST_USE_HOSTNAME을 사용하여 가상 호스트 이름을 사용하여 SAP를 설치할 수 있습니다.

    # Allow access to SWPM. This rule is not permanent. If you reboot the machine, you have to run the command again
    sudo firewall-cmd --zone=public --add-port=4237/tcp
    sudo swpm/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=virtual_hostname
    

    설치에서 하위 폴더를 /usr/sap/<SID>/ASCS<Instance#>에 만들지 못하는 경우 소유자를 <sid>adm으로 설정하고, 그룹을 ASCS<Instance#>의 sapsys로 설정하고, 다시 시도합니다.

  3. [1] 클러스터에 배포할 다른 SAP 시스템의 ERS 인스턴스에 대한 가상 IP 및 상태 프로브 클러스터 리소스를 만듭니다. 이 예는 NFSv3 프로토콜을 통해 Azure NetApp Files 볼륨에서 NFS를 사용하는 NW2NW3 ERS에 대한 것입니다.

    sudo pcs resource create fs_NW2_AERS Filesystem device='10.42.0.4:/sapMSIDR/usrsapNW2ers' \
    directory='/usr/sap/NW2/ERS12' fstype='nfs' force_unmount=safe \
    op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=40 \
     --group g-NW2_AERS
    
    sudo pcs resource create vip_NW2_AERS IPaddr2 \
    ip=10.3.1.53 \
     --group g-NW2_AERS
    
    sudo pcs resource create nc_NW2_AERS azure-lb port=62112 \
     --group g-NW2_AERS
    
    sudo pcs resource create fs_NW3_AERS Filesystem device='10.42.0.4:/sapMSIDR/usrsapNW3ers' \
    directory='/usr/sap/NW3/ERS22' fstype='nfs' force_unmount=safe \
    op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=40 \
     --group g-NW3_AERS
    
    sudo pcs resource create vip_NW3_AERS IPaddr2 \
    ip=10.3.1.55 \
     --group g-NW3_AERS
    
    sudo pcs resource create nc_NW3_AERS azure-lb port=62122 \
     --group g-NW3_AERS
    

    클러스터 상태가 정상이고 모든 리소스가 시작되었는지 확인합니다.

    다음으로, 새로 만든 ERS 그룹의 리소스가 동일한 SAP 시스템의 ASCS 인스턴스가 설치된 클러스터 노드의 반대쪽에 있는 클러스터 노드에서 실행되고 있는지 확인합니다. 예를 들어 NW2 ASCS가 rhelmsscl1에 설치된 경우 NW2 ERS 그룹이 rhelmsscl2에서 실행되고 있는지 확인합니다. 그룹의 클러스터 리소스 중 하나에 대해 다음 명령을 실행하여 NW2 ERS 그룹을 rhelmsscl2로 마이그레이션할 수 있습니다.

    pcs resource move fs_NW2_AERS rhelmsscl2
    
  4. [2] SAP NetWeaver ERS를 설치합니다.

    ERS에 대한 부하 분산 장치 프런트 엔드 구성의 IP 주소에 매핑되는 가상 호스트 이름을 사용하여 루트 권한으로 SAP NetWeaver ERS를 다른 노드에 설치합니다. 예를 들어 NW2 시스템의 경우 가상 호스트 이름은 msnw2ers, 10.3.1.53 및 부하 분산 장치의 프로브에 사용한 인스턴스 번호(예: 12)입니다. NW3 시스템의 경우 가상 호스트 이름은 msnw3ers, 10.3.1.55 및 부하 분산 장치의 프로브에 사용한 인스턴스 번호(예: 22)입니다.

    sapinst 매개 변수 SAPINST_REMOTE_ACCESS_USER를 사용하여 루트가 아닌 사용자가 sapinst에 연결할 수 있습니다. 매개 변수 SAPINST_USE_HOSTNAME을 사용하여 가상 호스트 이름을 사용하여 SAP를 설치할 수 있습니다.

    # Allow access to SWPM. This rule is not permanent. If you reboot the machine, you have to run the command again
    sudo firewall-cmd --zone=public --add-port=4237/tcp
    sudo swpm/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=virtual_hostname
    

    참고 항목

    SWPM SP 20 PL 05 이상을 사용합니다. 하위 버전은 권한을 올바르게 설정하지 않으므로 설치가 실패합니다.

    설치에서 하위 폴더를 /usr/sap/<NW2>/ERS<Instance#>에 만들지 못하는 경우 소유자를 <sid>adm으로 설정하고, 그룹을 ERS<Instance#> 폴더의 sapsys로 설정하고, 다시 시도합니다.

    새로 배포된 SAP 시스템의 ERS 그룹을 다른 클러스터 노드로 마이그레이션해야 하는 경우 ERS 그룹에 대한 위치 제약 조건을 제거해야 합니다. 다음 명령을 실행하여 제약 조건을 제거할 수 있습니다. 이 예는 SAP 시스템 NW2NW3에 대해 제공됩니다. ERS 클러스터 그룹을 이동하기 위해 명령에 사용한 것과 동일한 리소스에 대한 임시 제약 조건을 제거해야 합니다.

    pcs resource clear fs_NW2_AERS
    pcs resource clear fs_NW3_AERS
    
  5. [1] ASCS/SCS 및 ERS 인스턴스 프로필을 새로 설치된 SAP 시스템에 맞게 조정합니다. 아래에 표시된 예는 NW2에 대한 것입니다. ASCS/SCS 및 ERS 프로필을 클러스터에 추가된 모든 SAP 인스턴스에 맞게 조정해야 합니다.

    • ASCS/SCS 프로필

      sudo vi /sapmnt/NW2/profile/NW2_ASCS10_msnw2ascs
      
      # Change the restart command to a start command
      #Restart_Program_01 = local $(_EN) pf=$(_PF)
      Start_Program_01 = local $(_EN) pf=$(_PF)
      
      # Add the keep alive parameter, if using ENSA1
      enque/encni/set_so_keepalive = true
      

      ENSA1 및 ENSA2 모두에서 keepalive OS 매개 변수는 SAP Note 1410736에 설명된 대로 설정해야 합니다.

    • ERS 프로필

      sudo vi /sapmnt/NW2/profile/NW2_ERS12_msnw2ers
      
      # Change the restart command to a start command
      #Restart_Program_00 = local $(_ER) pf=$(_PFL) NR=$(SCSID)
      Start_Program_00 = local $(_ER) pf=$(_PFL) NR=$(SCSID)
      
      # remove Autostart from ERS profile
      # Autostart = 1
      
  6. [A]/usr/sap/sapservices 파일 업데이트

    sapinit 시작 스크립트에 의해 인스턴스가 시작되지 않도록 하려면 /usr/sap/sapservices 파일에서 Pacemaker가 관리하는 모든 인스턴스를 주석 처리해야 합니다. 아래 표시된 예는 SAP 시스템 NW2NW3에 대한 것입니다.

    # Depending on whether the SAP Startup framework is integrated with systemd, you may observe below entries on the node for ASCS instances. You should comment out the line(s). 
    # LD_LIBRARY_PATH=/usr/sap/NW2/ASCS10/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW2/ASCS10/exe/sapstartsrv pf=/usr/sap/NW2/SYS/profile/NW2_ASCS10_msnw2ascs -D -u nw2adm
    # LD_LIBRARY_PATH=/usr/sap/NW3/ASCS20/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW3/ASCS20/exe/sapstartsrv pf=/usr/sap/NW3/SYS/profile/NW3_ASCS20_msnw3ascs -D -u nw3adm
    # systemctl --no-ask-password start SAPNW2_10 # sapstartsrv pf=/usr/sap/NW2/SYS/profile/NW2_ASCS10_msnw2ascs
    # systemctl --no-ask-password start SAPNW3_20 # sapstartsrv pf=/usr/sap/NW3/SYS/profile/NW3_ASCS20_msnw3ascs
    
    # Depending on whether the SAP Startup framework is integrated with systemd, you may observe below entries on the node for ERS instances. You should comment out the line(s). 
    #LD_LIBRARY_PATH=/usr/sap/NW2/ERS12/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW2/ERS12/exe/sapstartsrv pf=/usr/sap/NW2/ERS12/profile/NW2_ERS12_msnw2ers -D -u nw2adm
    #LD_LIBRARY_PATH=/usr/sap/NW3/ERS22/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW3/ERS22/exe/sapstartsrv pf=/usr/sap/NW3/ERS22/profile/NW3_ERS22_msnw3ers -D -u nw3adm
    # systemctl --no-ask-password start SAPNW2_12 # sapstartsrv pf=/usr/sap/NW2/ERS12/profile/NW2_ERS12_msnw2ers
    # systemctl --no-ask-password start SAPNW3_22 # sapstartsrv pf=/usr/sap/NW3/ERS22/profile/NW3_ERS22_msnw3ers
    

    Important

    시스템 기반 SAP Startup Framework를 사용하면 이제 systemd에서 SAP 인스턴스를 관리할 수 있습니다. 필요한 최소 RHEL(Red Hat Enterprise Linux) 버전은 SAP용 RHEL 8입니다. SAP Note 3115048에 설명된 대로, 통합 시스템 기반 SAP Startup Framework 지원을 사용하여 SAP 커널을 새로 설치하면 항상 시스템 제어 SAP 인스턴스가 생성됩니다. 그러나 기존 SAP 설치를 시스템 기반 SAP Startup Framework 지원이 있는 커널로 SAP 커널을 업그레이드한 후에는 SAP Note 3115048에 설명된 대로 일부 수동 단계를 수행하여 기존 SAP 시작 환경을 시스템 제어되는 환경으로 변환해야 합니다.

    SAP(클러스터 구성)용 Red Hat HA 서비스를 활용하여 SAP ASCS 및 SAP ERS와 같은 SAP 애플리케이션 서버 인스턴스를 관리하는 경우 SAPInstance 리소스 에이전트와 새 시스템 기반 SAP 시작 프레임워크 간의 호환성을 보장하기 위해 추가 수정이 필요합니다. 따라서 SAP 애플리케이션 서버 인스턴스가 SAP Note 3115048에 따라 시스템 지원 SAP 커널을 설치하거나 전환한 후에는 모든 클러스터 노드에서 Red Hat KBA 6884531에 설명된 단계를 성공적으로 완료해야 합니다.

  7. [1] 새로 설치된 SAP 시스템에 대한 SAP 클러스터 리소스를 만듭니다.

    ENSA1 또는 ENSA2 시스템을 실행하는지 여부에 따라 해당 탭을 선택하여 다음과 같이 SAP 시스템 NW2NW3에 대한 리소스를 정의합니다. SAP는 SAP NetWeaver 7.52에서 복제를 포함하여 ENSA2에 대한 지원을 도입했습니다. ABAP 플랫폼 1809부터 ENSA2가 기본적으로 설치됩니다. ENSA2 지원에 대해서는 큐에 넣기 서버 2 지원에 대한 SAP Note 2630416을 참조하세요.

    ENSA2(큐에 넣기 서버 2 아키텍처)를 사용하는 경우 리소스 에이전트 Resource-agents-sap-4.1.1-12.el7.x86_64 이상을 설치하고 SAP 시스템 NW2NW3에 대한 리소스를 다음과 같이 정의합니다.

    sudo pcs property set maintenance-mode=true
    
    sudo pcs resource create rsc_sap_NW2_ASCS10 SAPInstance \
    InstanceName=NW2_ASCS10_msnw2ascs START_PROFILE="/sapmnt/NW2/profile/NW2_ASCS10_msnw2ascs" \
    AUTOMATIC_RECOVER=false \
    meta resource-stickiness=5000 migration-threshold=1 failure-timeout=60 \
    op monitor interval=20 on-fail=restart timeout=60 \
    op start interval=0 timeout=600 op stop interval=0 timeout=600 \
    --group g-NW2_ASCS
    
    sudo pcs resource meta g-NW2_ASCS resource-stickiness=3000
    
    sudo pcs resource create rsc_sap_NW2_ERS12 SAPInstance \
    InstanceName=NW2_ERS12_msnw2ers START_PROFILE="/sapmnt/NW2/profile/NW2_ERS12_msnw2ers" \
    AUTOMATIC_RECOVER=false IS_ERS=true \
    op monitor interval=20 on-fail=restart timeout=60 op start interval=0 timeout=600 op stop interval=0 timeout=600 \
    --group g-NW2_AERS
    
    sudo pcs constraint colocation add g-NW2_AERS with g-NW2_ASCS -5000
    sudo pcs constraint location rsc_sap_NW2_ASCS10 rule score=2000 runs_ers_NW2 eq 1
    sudo pcs constraint order start g-NW2_ASCS then stop g-NW2_AERS kind=Optional symmetrical=false
    
    sudo pcs resource create rsc_sap_NW3_ASCS20 SAPInstance \
    InstanceName=NW3_ASCS20_msnw3ascs START_PROFILE="/sapmnt/NW3/profile/NW3_ASCS20_msnw3ascs" \
    AUTOMATIC_RECOVER=false \
    meta resource-stickiness=5000 migration-threshold=1 failure-timeout=60 \
    op monitor interval=20 on-fail=restart timeout=60 \
    op start interval=0 timeout=600 op stop interval=0 timeout=600 \
    --group g-NW3_ASCS
    
    sudo pcs resource meta g-NW3_ASCS resource-stickiness=3000
    
    sudo pcs resource create rsc_sap_NW3_ERS22 SAPInstance \
    InstanceName=NW3_ERS22_msnw3ers START_PROFILE="/sapmnt/NW3/profile/NW2_ERS22_msnw3ers" \
    AUTOMATIC_RECOVER=false IS_ERS=true \
    op monitor interval=20 on-fail=restart timeout=60 op start interval=0 timeout=600 op stop interval=0 timeout=600 \
    --group g-NW3_AERS
    
    sudo pcs constraint colocation add g-NW3_AERS with g-NW3_ASCS -5000
    sudo pcs constraint location rsc_sap_NW3_ASCS20 rule score=2000 runs_ers_NW3 eq 1
    sudo pcs constraint order start g-NW3_ASCS then stop g-NW3_AERS kind=Optional symmetrical=false
    
    sudo pcs property set maintenance-mode=false
    

    이전 버전에서 업그레이드하고 큐에 넣기 서버 2로 전환하는 경우 SAP Note 2641019를 참조하세요.

    참고 항목

    위의 구성에서 시간 제한은 단지 예제이며 특정 SAP 설정에 맞게 조정해야 할 수 있습니다.

    클러스터 상태가 정상이며 모든 리소스가 시작되었는지 확인합니다. 리소스가 실행되는 노드는 중요하지 않습니다. 다음 예에서는 SAP 시스템 NW2NW3이 클러스터에 추가된 후의 클러스터 리소스 상태를 보여 줍니다.

    sudo pcs status
    
    # Online: [ rhelmsscl1 rhelmsscl2 ]
    
    # Full list of resources:
    
    # rsc_st_azure   (stonith:fence_azure_arm):      Started rhelmsscl1
    # Resource Group: g-NW1_ASCS
    #   fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
    #   vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
    #   nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
    #   rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    # Resource Group: g-NW1_AERS
    #   fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
    #   vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
    #   nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
    #   rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    # Resource Group: g-NW2_ASCS
    #   fs_NW2_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
    #   vip_NW2_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
    #   nc_NW2_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
    #   rsc_sap_NW2_ASCS10 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    # Resource Group: g-NW2_AERS
    #   fs_NW2_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
    #   vip_NW2_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
    #   nc_NW2_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
    #   rsc_sap_NW2_ERS12  (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    # Resource Group: g-NW3_ASCS
    #   fs_NW3_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
    #   vip_NW3_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
    #   nc_NW3_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
    #   rsc_sap_NW3_ASCS20 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    # Resource Group: g-NW3_AERS
    #   fs_NW3_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
    #   vip_NW3_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
    #   nc_NW3_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
    #  rsc_sap_NW3_ERS22  (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    
  8. [A] 두 노드에서 ASCS 및 ERS용 방화벽 규칙을 추가합니다. 아래 예에서는 SAP 시스템 NW2NW3 모두에 대한 방화벽 규칙을 보여 줍니다.

    # NW1 - ASCS
    sudo firewall-cmd --zone=public --add-port={62010,3210,3610,3910,8110,51013,51014,51016}/tcp --permanent
    sudo firewall-cmd --zone=public --add-port={62010,3210,3610,3910,8110,51013,51014,51016}/tcp
    # NW2 - ERS
    sudo firewall-cmd --zone=public --add-port={62112,3212,3312,51213,51214,51216}/tcp --permanent
    sudo firewall-cmd --zone=public --add-port={62112,3212,3312,51213,51214,51216}/tcp
    # NW3 - ASCS
    sudo firewall-cmd --zone=public --add-port={62020,3220,3620,3920,8120,52013,52014,52016}/tcp --permanent
    sudo firewall-cmd --zone=public --add-port={62020,3220,3620,3920,8120,52013,52014,52016}/tcp
    # NW3 - ERS
    sudo firewall-cmd --zone=public --add-port={62122,3222,3322,52213,52214,52216}/tcp --permanent
    sudo firewall-cmd --zone=public --add-port={62122,3222,3322,52213,52214,52216}/tcp
    

SAP 설치 진행

다음을 수행하여 SAP 설치를 완료합니다.

다중 SID 클러스터 설정 테스트

다음 테스트는 Red Hat의 모범 사례 가이드에 있는 테스트 사례의 하위 세트입니다. 사용자의 편의를 위해 포함되어 있습니다. 클러스터 테스트의 전체 목록은 다음 설명서를 참조하세요.

항상 Red Hat 모범 사례 가이드를 읽고 추가되었을 수 있는 다른 모든 테스트를 수행합니다. 제공되는 테스트는 세 개의 SAP 시스템이 설치된 2노드 다중 SID 클러스터에 있습니다.

  1. ASCS 인스턴스를 수동으로 마이그레이션합니다. 다음 예제에서는 NW3 SAP 시스템에 대한 ASCS 인스턴스를 마이그레이션하는 방법을 보여 줍니다.

    테스트 시작 전 리소스 상태:

    Online: [ rhelmsscl1 rhelmsscl2 ]
    
    Full list of resources:
    
    rsc_st_azure   (stonith:fence_azure_arm):      Started rhelmsscl1
    Resource Group: g-NW1_ASCS
        fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW1_AERS
        fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW2_ASCS
        fs_NW2_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW2_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW2_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW2_ASCS10 (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW2_AERS
        fs_NW2_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW2_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW2_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW2_ERS12  (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW3_ASCS
        fs_NW3_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW3_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW3_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW3_ASCS20 (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW3_AERS
        fs_NW3_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW3_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW3_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW3_ERS22  (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    

    다음 명령을 루트 권한으로 실행하여 NW3 ASCS 인스턴스를 마이그레이션합니다.

    pcs resource move rsc_sap_NW3_ASCS200
    # Clear temporary migration constraints
    pcs resource clear rsc_sap_NW3_ASCS20
    
    # Remove failed actions for the ERS that occurred as part of the migration
    pcs resource cleanup rsc_sap_NW3_ERS22
    

    테스트 후 리소스 상태:

    Online: [ rhelmsscl1 rhelmsscl2 ]
    
    Full list of resources:
    
    rsc_st_azure   (stonith:fence_azure_arm):      Started rhelmsscl1
    Resource Group: g-NW1_ASCS
        fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW1_AERS
        fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW2_ASCS
        fs_NW2_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW2_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW2_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW2_ASCS10 (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW2_AERS
        fs_NW2_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW2_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW2_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW2_ERS12  (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW3_ASCS
        fs_NW3_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW3_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW3_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW3_ASCS20 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW3_AERS
        fs_NW3_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW3_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW3_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW3_ERS22  (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    
  2. 노드 작동 중단을 시뮬레이트합니다.

    테스트 시작 전 리소스 상태:

    Online: [ rhelmsscl1 rhelmsscl2 ]
    
    Full list of resources:
    
    rsc_st_azure   (stonith:fence_azure_arm):      Started rhelmsscl1
    Resource Group: g-NW1_ASCS
        fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW1_AERS
        fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW2_ASCS
        fs_NW2_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW2_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW2_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW2_ASCS10 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW2_AERS
        fs_NW2_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW2_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW2_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW2_ERS12  (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW3_ASCS
        fs_NW3_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW3_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW3_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW3_ASCS20 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW3_AERS
        fs_NW3_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW3_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW3_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW3_ERS22  (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    

    하나 이상의 ASCS 인스턴스가 실행되는 노드에서 루트 권한으로 다음 명령을 실행합니다. 이 예는 NW1, NW2NW3에 대한 ASCS 인스턴스가 실행 중인 rhelmsscl1에서 명령을 실행합니다.

    echo c > /proc/sysrq-trigger
    

    테스트 후 및 작동이 중단된 노드가 다시 시작된 후의 상태는 다음 결과와 같아야 합니다.

    Full list of resources:
    
    rsc_st_azure    (stonith:fence_azure_arm):      Started rhelmsscl2
    Resource Group: g-NW1_ASCS
        fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW1_AERS
        fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW2_ASCS
        fs_NW2_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW2_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW2_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW2_ASCS10 (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW2_AERS
        fs_NW2_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW2_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW2_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW2_ERS12  (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW3_ASCS
        fs_NW3_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW3_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW3_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW3_ASCS20 (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW3_AERS
        fs_NW3_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW3_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW3_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW3_ERS22  (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    

    실패한 리소스에 대한 메시지가 있는 경우 실패한 리소스의 상태를 정리합니다. 예시:

    pcs resource cleanup rsc_sap_NW1_ERS02
    

다음 단계

Azure VM에서 SAP HANA의 재해 복구를 계획하고 고가용성을 설정하는 방법을 알아보려면 Azure VM(가상 머신)의 SAP HANA 고가용성을 참조하세요.