Azure Files의 NFS를 사용하여 RHEL의 VM에서 SAP NetWeaver에 대한 고가용성

이 문서에서는 Azure Files에서 NFS를 사용하여 VM(가상 머신)을 배포 및 구성하고, 클러스터 프레임워크를 설치하고, HA(고가용성) SAP NetWeaver 시스템을 설치하는 방법을 설명합니다. 예제 구성은 RHEL(Red Hat Enterprise Linux)에서 실행되는 VM을 사용합니다.

필수 조건

개요

SAP NetWeaver 애플리케이션 계층을 배포하려면 환경에 /sapmnt/SID/usr/sap/trans와 같은 공유 디렉터리가 필요합니다. 또한 HA SAP 시스템을 배포할 때는 다음과 같이 /sapmnt/SID/usr/sap/SID/ASCS고가용성 파일 시스템을 보호하고 만들어야 합니다.

이제 Azure Files의 NFS에 이러한 파일 시스템을 배치할 수 있습니다. Azure Files의 NFS는 HA 스토리지 솔루션입니다. 이 솔루션은 ZRS(동기 영역 중복 스토리지)를 제공하며 가용성 영역에 배포된 SAP ASCS/ERS 인스턴스에 적합합니다. SAP NetWeaver 중앙 서비스(ASCS/SCS)와 같은 단일 실패 지점 구성 요소를 보호하려면 여전히 Pacemaker 클러스터가 필요합니다.

예제 구성 및 설치 명령은 다음 인스턴스 번호를 사용합니다.

인스턴스 이름 인스턴스 번호
ABAP SAP 중앙 서비스(ASCS) 00
ERS 01
ABAP SAP 중앙 서비스(ASCS) 02
AAS(추가 애플리케이션 서버) 03
SAP 시스템 식별자 NW1

Diagram that shows SAP NetWeaver high availability with NFS on Azure Files.

이 다이어그램은 일반적인 SAP NetWeaver HA 아키텍처를 보여줍니다. 'sapmnt' 및 'saptrans' 파일 시스템은 Azure Files의 NFS 공유에 배포됩니다. SAP 중앙 서비스는 Pacemaker 클러스터로 보호됩니다. 클러스터형 VM은 Azure Load Balancer 인스턴스 뒤에 있습니다. NFS 공유는 프라이빗 엔드포인트를 통해 탑재됩니다.

인프라 준비

Azure Marketplace에는 다양한 버전의 Red Hat을 사용하여 새 VM을 배포하는 데 사용할 수 있는 고가용성 추가 기능이 포함된 SAP에 적합한 이미지가 포함되어 있습니다.

Azure Portal을 통해 수동으로 Linux VM 배포

이 문서에서는 Azure 가상 네트워크, 서브넷 및 리소스 그룹을 이미 배포했다고 가정합니다.

SAP ASCS, ERS 및 애플리케이션 서버용 VM을 배포합니다. SAP 시스템에 지원되는 적합한 RHEL 이미지를 선택합니다. 가상 머신 확장 집합, 가용성 영역 또는 가용성 집합과 같은 가용성 옵션 중 하나에서 VM을 배포할 수 있습니다.

Azure 부하 분산 장치 구성

VM 구성 중에 네트워킹 섹션에서 종료 부하 분산 장치를 만들거나 선택하는 옵션이 있습니다. 아래 단계에 따라 SAP ASCS 및 SAP ERS의 고가용성 설정에 대한 표준 부하 분산 장치를 구성합니다.

부하 분산 장치 만들기 가이드에 따라 Azure Portal을 사용하여 고가용성 SAP 시스템에 대한 표준 부하 분산 장치를 설정합니다. 부하 분산 장치를 설정하는 동안 다음 사항을 고려합니다.

  1. 프런트 엔드 IP 구성: 두 개의 프런트 엔드 IP를 만듭니다. 하나는 ASCS용이고 다른 하나는 ERS용입니다. ASCS/ERS 가상 머신과 동일한 가상 네트워크 및 서브넷을 선택합니다.
  2. 백 엔드 풀: 백 엔드 풀을 만들고 ASCS 및 ERS VM을 추가합니다.
  3. 인바운드 규칙: 두 개의 부하 분산 규칙을 만듭니다. 하나는 ASCS용이고 다른 하나는 ERS용입니다. 두 부하 분산 규칙에 대해 동일한 단계를 수행합니다.
    • 프런트 엔드 IP 주소: 프런트 엔드 IP 선택
    • 백 엔드 풀: 백 엔드 풀 선택
    • "고가용성 포트" 확인
    • 프로토콜: TCP
    • 상태 프로브: 아래 세부 정보를 사용하여 상태 프로브 만들기(ASCS 또는 ERS 모두에 적용됨)
      • 프로토콜: TCP
      • 포트: [예: ASCS의 경우 620<Instance-no.> 621<Instance-no.> ERS]
      • 간격: 5
      • 프로브 임계값: 2
    • 유휴 시간 제한(분): 30
    • "부동 IP 사용" 확인

참고 항목

상태 프로브 구성 속성 numberOfProbes(포털에서 “비정상 임계값”으로 알려짐)는 적용되지 않습니다. 따라서 성공 또는 실패한 연속 프로브 수를 제어하려면 속성 "probeThreshold"를 2로 설정합니다. 현재 Azure Portal을 사용하여 이 속성을 설정할 수 없으므로 Azure CLI 또는 PowerShell 명령을 사용합니다.

Important

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

참고 항목

공용 IP 주소가 없는 VM이 Load Balancer의 내부(공용 IP 주소 없음) 표준 인스턴스의 백 엔드 풀에 배치되는 경우 공용 엔드포인트로 라우팅할 수 있도록 더 많은 구성을 수행하지 않는 한 아웃바운드 인터넷 연결이 없습니다. 아웃바운드 연결을 달성하는 방법에 대한 자세한 내용은 SAP 고가용성 시나리오에서 Azure 표준 Load Balancer 사용하여 가상 머신에 대한 퍼블릭 엔드포인트 연결을 참조하세요.

Important

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

Azure Files 스토리지 계정 및 NFS 공유 배포

Azure Files의 NFS는 Azure Files 프리미엄 스토리지 위에서 실행됩니다. Azure Files의 NFS를 설정하기 전에 NFS 공유를 만드는 방법을 참조하세요.

Azure 지역 내에는 중복성에 대한 두 가지 옵션이 있습니다.

선택한 Azure 지역이 적절한 중복성으로 Azure Files의 NFS 4.1을 제공하는지 확인합니다. Premium Files Storage에서 Azure 지역별 Azure Files의 가용성을 검토합니다. 시나리오가 ZRS를 활용하는 경우 ZRS를 사용하는 프리미엄 파일 공유가 Azure 지역에서 지원되는지 확인합니다.

Azure 프라이빗 엔드포인트를 통해 Azure Storage 계정에 액세스하는 것이 좋습니다. 동일한 Azure 가상 네트워크 또는 피어된 Azure 가상 네트워크에 NFS 공유를 탑재해야 하는 Azure Files 스토리지 계정 엔드포인트 및 VM을 배포해야 합니다.

  1. 라는 sapafsnfsAzure Files 스토리지 계정을 배포합니다. 이 예제에서는 ZRS를 사용합니다. 프로세스에 익숙하지 않은 경우 Azure Portal에 대한 스토리지 계정 만들기를 참조하세요.

  2. 기본 사항 탭에서 다음 설정을 사용합니다.

    1. 스토리지 계정 이름sapafsnfs를 입력합니다.
    2. 성능에 대해 프리미엄을 선택합니다.
    3. 프리미엄 계정 유형에 대해 FileStorage를 선택합니다.
    4. 복제의 경우 ZRS(영역 중복성)를 선택합니다.
  3. 다음을 선택합니다.

  4. 고급 탭에서 REST API 작업에 대한 보안 전송 필요를 지웁니다. 이 옵션을 선택 취소하지 않으면 NFS 공유를 VM에 탑재할 수 없습니다. 탑재 작업 시간이 초과됩니다.

  5. 다음을 선택합니다.

  6. 네트워킹 섹션에서 다음 설정을 구성합니다.

    1. 네트워킹 연결에서 연결 방법으로 프라이빗 엔드포인트를 선택합니다.
    2. 프라이빗 엔드포인트에서 프라이빗 엔드포인트 추가를 선택합니다.
  7. 프라이빗 엔드포인트 만들기 창에서 구독, 리소스 그룹위치를 선택합니다. 이름sapafsnfs_pe를 입력합니다. 스토리지 하위 리소스에 대해 파일을 선택합니다. 네트워킹에서 가상 네트워크에 대해 사용할 가상 네트워크와 서브넷을 선택합니다. 다시 말하지만 SAP VM이 있는 가상 네트워크 또는 피어된 가상 네트워크를 사용할 수 있습니다. 프라이빗 DNS 통합에서 프라이빗 DNS 영역과 통합에 대해 기본 옵션인 를 적용합니다. 프라이빗 DNS 영역을 선택해야 합니다. 확인을 선택합니다.

  8. 네트워킹 탭에서 다시 다음을 선택합니다.

  9. 데이터 보호 탭에서 모든 기본 설정을 유지합니다.

  10. 검토 + 만들기를 선택하여 구성의 유효성을 검사합니다.

  11. 유효성 검사가 완료될 때까지 기다립니다. 계속하기 전에 문제를 해결합니다.

  12. 검토 + 만들기 탭에서 만들기를 선택합니다.

다음으로, 사용자가 만든 스토리지 계정에 NFS 공유를 배포합니다. 이 예제에는 두 개의 NFS 공유인 sapnw1saptrans가 있습니다.

  1. Azure Portal에 로그인합니다.
  2. 스토리지 계정을 선택하거나 검색합니다.
  3. 스토리지 계정 페이지에서 sapafsnfs를 선택합니다.
  4. sapafsnfs에 대한 리소스 메뉴의 데이터 스토리지에서 파일 공유를 선택합니다.
  5. 파일 공유 페이지에서 파일 공유를 선택합니다.
    1. 이름sapnw1, saptrans를 입력합니다.
    2. 적절한 공유 크기를 선택합니다. 예를 들어 128GB입니다. 공유 및 IOPS 및 처리량 요구 사항에 저장된 데이터의 크기를 고려합니다. 자세한 내용은 Azure 파일 공유 대상을 참조하세요.
    3. 프로토콜로 NFS를 선택합니다.
    4. 루트 Squash 없음을 선택합니다. 그렇지 않으면 VM에 공유를 탑재할 때 파일 소유자 또는 그룹을 볼 수 없습니다.

Important

앞의 공유 크기는 예제일 뿐입니다. 공유 크기를 적절하게 조정해야 합니다. 크기는 공유에 저장된 데이터의 크기뿐만 아니라 IOPS 및 처리량에 대한 요구 사항을 기반으로 합니다. 자세한 내용은 Azure 파일 공유 대상을 참조하세요.

NFS를 통해 탑재할 필요가 없는 SAP 파일 시스템은 Azure 디스크 스토리지에 배포할 수도 있습니다. 이 예제에서는 Azure 디스크 스토리지에 /usr/sap/NW1/D02/usr/sap/NW1/D03을 배포할 수 있습니다.

Azure Files 공유의 NFS에 대한 중요한 고려 사항

Azure Files의 NFS를 통해 배포를 계획할 때는 다음과 같은 중요한 사항을 고려하세요.

  • 최소 공유 크기는 100GiB입니다. 프로비전된 공유의 용량에 대해서만 지불 합니다.
  • 용량 요구 사항뿐만 아니라 IOPS 및 처리량 요구 사항에 따라 NFS 공유의 크기를 조정합니다. 자세한 내용은 Azure 파일 공유 대상을 참조하세요.
  • 워크로드를 테스트하여 크기 조정의 유효성을 검사하고 성능 목표를 충족하는지 확인합니다. Azure Files의 NFS 성능 문제를 해결하는 방법을 알아보려면 Azure 파일 공유 성능 문제 해결을 참조하세요.
  • SAP J2EE 시스템의 경우 Azure Files의 NFS에 /usr/sap/<SID>/J<nr>를 배치할 수 없습니다.
  • SAP 시스템에 대량의 일괄 처리 작업 로드가 있는 경우 수백만 개의 작업 로그가 있을 수 있습니다. SAP 일괄 처리 작업 로그가 파일 시스템에 저장되어 있는 경우 sapmnt 공유의 크기 조정에 특히 주의해야 합니다. SAP_BASIS 7.52부터 일괄 작업 로그의 기본 동작은 데이터베이스에 저장됩니다. 자세한 내용은 데이터베이스의 작업 로그를 참조하세요.
  • 각 SAP 시스템에 대해 별도의 sapmnt 공유를 배포합니다.
  • 인터페이스와 saptrans같은 다른 작업에는 공유를 사용하지 sapmnt 마세요.
  • 인터페이스와 sapmnt같은 다른 작업에는 공유를 사용하지 saptrans 마세요.
  • 단일 스토리지 계정에 너무 많은 SAP 시스템의 공유를 통합하지 않도록 합니다. 스토리지 계정 성능 확장 목표도 있습니다. 스토리지 계정의 한도를 초과하지 않도록 주의해야 합니다.
  • 일반적으로 단일 스토리지 계정에 5개를 초과하는 SAP 시스템에 대한 공유를 통합하지 마세요. 이 지침은 스토리지 계정 제한을 초과하지 않도록 방지하고 성능 분석을 간소화하는 데 도움이 됩니다.
  • 일반적으로 동일한 스토리지 계정에서 비프로덕션 및 프로덕션 SAP 시스템과 같은 sapmnt 공유를 혼합하지 마세요.
  • NFS 클라이언트 개선의 이점을 활용하려면 RHEL 8.4 이상에 배포하는 것이 좋습니다.
  • 프라이빗 엔드포인트를 사용합니다. 영역 오류가 발생할 가능성이 낮으면 NFS 세션이 자동으로 정상 영역으로 리디렉션됩니다. VM에서 NFS 공유를 다시 탑재할 필요가 없습니다.
  • 가용성 영역에 VM을 배포하는 경우 ZRS를 지원하는 Azure 지역에서 ZRS가 있는 스토리지 계정을 사용합니다.
  • Azure Files는 현재 재해 복구 시나리오에 대해 지역 간 자동 복제를 지원하지 않습니다.

설정(A)SCS

다음으로 SAP ASCS 및 ERS 인스턴스를 준비하고 설치합니다.

Pacemaker 클러스터 만들기

Azure의 Red Hat Enterprise Linux에서 Pacemaker 설정의 단계에 따라 이 (A)SCS 서버에 대한 기본 Pacemaker 클러스터를 만듭니다.

SAP NetWeaver 설치 준비

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

  • [A]: 모든 노드에 적용 가능
  • [1]: 노드 1에만 적용
  • [2]: 노드 2에만 적용
  1. [A] 호스트 이름 확인을 설정합니다.

    DNS 서버를 사용하거나 모든 노드에서 파일을 수정할 /etc/hosts 수 있습니다. 다음 예제에서는 /etc/hosts 파일을 사용하는 방법을 보여 줍니다. 다음 명령에서 IP 주소와 호스트 이름을 바꿉니다.

    sudo vi /etc/hosts
    

    /etc/hosts에 다음 줄을 삽입합니다. 사용자 환경에 맞게 IP 주소와 호스트 이름을 변경합니다.

     # IP address of cluster node 1
     10.90.90.7    sap-cl1
     # IP address of cluster node 2
     10.90.90.8     sap-cl2
     # IP address of the load balancer frontend configuration for SAP Netweaver ASCS
     10.90.90.10   sapascs
     # IP address of the load balancer frontend configuration for SAP Netweaver ERS
     10.90.90.9    sapers
    
  2. [A] NFS 클라이언트 및 기타 요구 사항을 설치합니다.

    sudo yum -y install nfs-utils resource-agents resource-agents-sap
    
  3. [1] NFS 공유에 SAP 디렉터리를 만듭니다.
    VM 중 하나에 일시적으로 NFS 공유 sapnw1 을 탑재하고 중첩된 탑재 지점으로 사용할 SAP 디렉터리를 만듭니다.

    # mount temporarily the volume
    sudo mkdir -p /saptmp
    sudo mount -t nfs sapnfs.file.core.windows.net:/sapnfsafs/sapnw1 /saptmp -o noresvport,vers=4,minorversion=1,sec=sys
    # create the SAP directories
    sudo cd /saptmp
    sudo mkdir -p sapmntNW1
    sudo mkdir -p usrsapNW1ascs
    sudo mkdir -p usrsapNW1ers
    sudo mkdir -p usrsapNW1sys
    # unmount the volume and delete the temporary directory
    cd ..
    sudo umount /saptmp
    sudo rmdir /saptmp
    
  4. [A] 공유 디렉터리를 만듭니다.

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/trans
    sudo mkdir -p /usr/sap/NW1/SYS
    sudo mkdir -p /usr/sap/NW1/ASCS00
    sudo mkdir -p /usr/sap/NW1/ERS01
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/trans
    sudo chattr +i /usr/sap/NW1/SYS
    sudo chattr +i /usr/sap/NW1/ASCS00
    sudo chattr +i /usr/sap/NW1/ERS01
    
  5. [A] 의 버전을 resource-agents-sap확인합니다.

    설치된 resource-agents-sap 패키지의 버전이 적어도 3.9.5-124.el7있는지 확인합니다.

    sudo yum info resource-agents-sap
    
  6. [A] 탑재 항목을 추가합니다.

    vi /etc/fstab
    # Add the following lines to fstab, save and exit
    sapnfs.file.core.windows.net:/sapnfsafs/saptrans /usr/sap/trans  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0
    sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/sapmntNW1 /sapmnt/NW1  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0
    sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1sys/ /usr/sap/NW1/SYS  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0
    
    # Mount the file systems
    mount -a 
    
  7. [A] SWAP 파일을 구성합니다.

    sudo vi /etc/waagent.conf
    
    # Set the property ResourceDisk.EnableSwap to y
    # Create and use swapfile on resource disk.
    ResourceDisk.EnableSwap=y
    
    # Set the size of the SWAP file with property ResourceDisk.SwapSizeMB
    # The free space of resource disk varies by virtual machine size. Make sure that you do not set a value that is too big. You can check the SWAP space with command swapon
    # Size of the swapfile.
    ResourceDisk.SwapSizeMB=2000
    

    에이전트를 다시 시작하여 변경 내용을 활성화합니다.

    sudo service waagent restart
    
  8. [A] RHEL을 구성합니다.

    RHEL 7.x용 SAP Note 2002167 , RHEL 8.x용 SAP Note 2772999 또는 RHEL 9.x용 SAP Note 3108316 설명된 대로 RHEL을 구성합니다.

SAP NetWeaver ASCS/ERS 설치

  1. [1] 클러스터 기본 속성을 구성합니다.

    # If using RHEL 7.x
    pcs resource defaults resource-stickiness=1
    pcs resource defaults migration-threshold=3
    # If using RHEL 8.x or later
    pcs resource defaults update resource-stickiness=1
    pcs resource defaults update migration-threshold=3
    
  2. [1] ASCS 인스턴스에 대한 가상 IP 리소스 및 상태 프로브를 만듭니다.

    sudo pcs node standby sap-cl2
    
    sudo pcs resource create fs_NW1_ASCS Filesystem device='sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1ascs' \
      directory='/usr/sap/NW1/ASCS00' fstype='nfs' force_unmount=safe options='noresvport,vers=4,minorversion=1,sec=sys' \
      op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=40 \
      --group g-NW1_ASCS
    
    sudo pcs resource create vip_NW1_ASCS IPaddr2 \
      ip=10.90.90.10 \
      --group g-NW1_ASCS
    
    sudo pcs resource create nc_NW1_ASCS azure-lb port=62000 \
      --group g-NW1_ASCS
    

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

    sudo pcs status
    
    # Node sap-cl2: standby
    # Online: [ sap-cl1 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl1
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl1 
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    
  3. [1] SAP NetWeaver ASCS를 설치합니다.

    SAP NetWeaver ASCS를 ASCS에 대한 부하 분산 장치 프런트 엔드 구성의 IP 주소(예: sapascs 및 10.90.90.10) 및 부하 분산 장치의 프로브에 사용한 인스턴스 번호(예: 00)에 매핑하는 가상 호스트 이름을 사용하여 첫 번째 노드에 루트로 설치합니다.

    매개 변수 SAPINST_REMOTE_ACCESS_USERsapinst 사용하여 비루트 사용자가 연결할 수 있도록 허용할 수 있습니다sapinst.

    # 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/NW1/ASCS00에 하위 폴더를 만들지 못하면 ASCS00 폴더의 소유자와 그룹을 설정하고 다시 시도합니다.

    sudo chown nw1adm /usr/sap/NW1/ASCS00
    sudo chgrp sapsys /usr/sap/NW1/ASCS00
    
  4. [1] ERS 인스턴스에 대한 가상 IP 리소스 및 상태 프로브를 만듭니다.

    sudo pcs node unstandby sap-cl2
    sudo pcs node standby sap-cl1
    
    sudo pcs resource create fs_NW1_AERS Filesystem device='sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1ers' \
      directory='/usr/sap/NW1/ERS01' fstype='nfs' force_unmount=safe options='noresvport,vers=4,minorversion=1,sec=sys' \
      op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=40 \
     --group g-NW1_AERS
    
    sudo pcs resource create vip_NW1_AERS IPaddr2 \
      ip=10.90.90.9 \
     --group g-NW1_AERS
    
    sudo pcs resource create nc_NW1_AERS azure-lb port=62101 \
     --group g-NW1_AERS
    

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

    sudo pcs status
    
    # Node sap-cl1: standby
    # Online: [ sap-cl2 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl2
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    
  5. [2] SAP NetWeaver ERS를 설치합니다.

    sapers 및 10.90.90.9와 같이 ERS에 대한 부하 분산 장치 프런트 엔드 구성의 IP 주소에 매핑되는 가상 호스트 이름과 부하 분산 장치의 프로브에 사용한 인스턴스 번호(예: 01)를 사용하여 SAP NetWeaver ERS를 두 번째 노드에 루트로 설치합니다.

    매개 변수 SAPINST_REMOTE_ACCESS_USERsapinst 사용하여 비루트 사용자가 연결할 수 있도록 허용할 수 있습니다sapinst.

    # 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/NW1/ERS01에 하위 폴더를 만들지 못하면 ERS01 폴더의 소유자와 그룹을 설정하고 다시 시도합니다.

    sudo chown qaadm /usr/sap/NW1/ERS01
    sudo chgrp sapsys /usr/sap/NW1/ERS01
    
  6. [1] ASCS/SCS 및 ERS 인스턴스 프로필을 조정합니다.

    • ASCS/SCS 프로필:

      sudo vi /sapmnt/NW1/profile/NW1_ASCS00_sapascs
      
      # 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의 경우 SAP Note 1410736 설명된 대로 OS 매개 변수가 설정되어 있는지 확인 keepalive 합니다.

    • ERS 프로필:

      sudo vi /sapmnt/NW1/profile/NW1_ERS01_sapers
      
      # 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
      
  7. [A] Keep Alive를 구성합니다.

    SAP NetWeaver 애플리케이션 서버와 ASCS/SCS 간의 통신은 소프트웨어 부하 분산 장치를 통해 라우팅됩니다. 부하 분산 장치는 구성 가능한 시간 제한이 지나면 비활성 연결을 끊습니다. 이 작업을 방지하려면 ENSA1을 사용하는 경우 SAP NetWeaver ASCS/SCS 프로필에서 매개 변수를 설정합니다. ENSA1 및 ENSA2 모두에 대해 모든 SAP 서버에서 Linux 시스템 keepalive 설정을 변경합니다. 자세한 내용은 SAP Note 1410736 참조하세요.

    # Change the Linux system configuration
    sudo sysctl net.ipv4.tcp_keepalive_time=300
    
  8. [A] 파일을 업데이트합니다 /usr/sap/sapservices .

    시작 스크립트로 인스턴스 sapinit 가 시작되지 않도록 하려면 Pacemaker에서 관리하는 모든 인스턴스를 파일에서 /usr/sap/sapservices 주석 처리해야 합니다.

    sudo vi /usr/sap/sapservices
    
    # Depending on whether the SAP Startup framework is integrated with systemd, you will observe one of the two entries on the ASCS node. You should comment out the line(s). 
    # LD_LIBRARY_PATH=/usr/sap/NW1/ASCS00/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW1/ASCS00/exe/sapstartsrv pf=/usr/sap/NW1/SYS/profile/NW1_ASCS00_sapascs -D -u nw1adm
    # systemctl --no-ask-password start SAPNW1_00 # sapstartsrv pf=/usr/sap/NW1/SYS/profile/NW1_ASCS00_sapascs
    
    # Depending on whether the SAP Startup framework is integrated with systemd, you will observe one of the two entries on the ERS node. You should comment out the line(s). 
    # LD_LIBRARY_PATH=/usr/sap/NW1/ERS01/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW1/ERS01/exe/sapstartsrv pf=/usr/sap/NW1/ERS01/profile/NW1_ERS01_sapers -D -u nw1adm
    # systemctl --no-ask-password start SAPNW1_00 # sapstartsrv pf=/usr/sap/NW1/SYS/profile/NW1_ERS01_sapers
    

    Important

    시스템 기반 SAP Startup Framework를 사용하면 이제 시스템화에서 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 멘션 단계가 성공적으로 완료되어야 합니다.

  9. [1] SAP 클러스터 리소스를 만듭니다.

    ENSA1 또는 ENSA2 시스템을 실행하는지 여부에 따라 해당 탭을 선택하여 리소스를 정의합니다. 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 이상 설치하고 다음과 같이 리소스를 정의합니다.

    sudo pcs property set maintenance-mode=true
    
    sudo pcs resource create rsc_sap_NW1_ASCS00 SAPInstance \
     InstanceName=NW1_ASCS00_sapascs START_PROFILE="/sapmnt/NW1/profile/NW1_ASCS00_sapascs" \
     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-NW1_ASCS
    
    sudo pcs resource meta g-NW1_ASCS resource-stickiness=3000
    
    sudo pcs resource create rsc_sap_NW1_ERS01 SAPInstance \
     InstanceName=NW1_ERS01_sapers START_PROFILE="/sapmnt/NW1/profile/NW1_ERS01_sapers" \
     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-NW1_AERS
    
    sudo pcs constraint colocation add g-NW1_AERS with g-NW1_ASCS -5000
    sudo pcs constraint location rsc_sap_NW1_ASCS00 rule score=2000 runs_ers_NW1 eq 1
    sudo pcs constraint order start g-NW1_ASCS then stop g-NW1_AERS kind=Optional symmetrical=false
    
    sudo pcs node unstandby sap-cl1
    sudo pcs property set maintenance-mode=false
    

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

    참고 항목

    이전 구성의 시간 제한은 예제일 뿐이며 특정 SAP 설정에 맞게 조정해야 할 수도 있습니다.

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

    sudo pcs status
    
    # Online: [ sap-cl1 sap-cl2 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl2
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl2
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl1
    
  10. [1] 다음 단계를 실행하여 구성 priority-fencing-delay 합니다(pacemaker-2.0.4-6.el8 이상에서만 적용 가능).

    참고 항목

    2노드 클러스터가 있는 경우 클러스터 속성을 구성하는 priority-fencing-delay 옵션이 있습니다. 이 속성은 분할 브레인 시나리오가 발생할 때 총 리소스 우선 순위가 더 높은 노드를 펜싱하는 추가 지연을 발생합니다. 자세한 내용은 Pacemaker가 실행 중인 리소스가 가장 적은 클러스터 노드를 펜스할 수 있나요?를 참조하세요.

    이 속성 priority-fencing-delay 은 pacemaker-2.0.4-6.el8 버전 이상에 적용됩니다. 기존 클러스터에서 설정한 priority-fencing-delay 경우 펜싱 디바이스에서 설정을 지워 pcmk_delay_max 야 합니다.

    sudo pcs resource defaults update priority=1
    sudo pcs resource update rsc_sap_NW1_ASCS00 meta priority=10
    
    sudo pcs property set priority-fencing-delay=15s
    
  11. [A] 두 노드에서 ASCS 및 ERS용 방화벽 규칙을 추가합니다.

    # Probe Port of ASCS
    sudo firewall-cmd --zone=public --add-port={62000,3200,3600,3900,8100,50013,50014,50016}/tcp --permanent
    sudo firewall-cmd --zone=public --add-port={62000,3200,3600,3900,8100,50013,50014,50016}/tcp
    # Probe Port of ERS
    sudo firewall-cmd --zone=public --add-port={62101,3201,3301,50113,50114,50116}/tcp --permanent
    sudo firewall-cmd --zone=public --add-port={62101,3201,3301,50113,50114,50116}/tcp
    

SAP NetWeaver 애플리케이션 서버 준비

일부 데이터베이스는 애플리케이션 서버에서 데이터베이스 인스턴스 설치를 실행해야 합니다. 이러한 경우 사용할 수 있도록 애플리케이션 서버 VM을 준비합니다.

다음 단계에서는 ASCS/SCS 및 HANA 서버와 다른 서버에 애플리케이션 서버를 설치한다고 가정합니다. 그렇지 않으면 일부 단계(예: 호스트 이름 확인 구성)가 필요하지 않습니다.

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

  • [A]: PAS 및 AAS 모두에 적용 가능
  • [P]: PAS에만 적용
  • [S]: AAS에만 적용
  1. [A] 호스트 이름 확인을 설정합니다. DNS 서버를 사용하거나 모든 노드에서 파일을 수정할 /etc/hosts 수 있습니다. 다음 예제에서는 /etc/hosts 파일을 사용하는 방법을 보여 줍니다. 다음 명령에서 IP 주소와 호스트 이름을 바꿉니다.

    sudo vi /etc/hosts
    

    /etc/hosts에 다음 줄을 삽입합니다. 사용자 환경에 맞게 IP 주소와 호스트 이름을 변경합니다.

    10.90.90.7    sap-cl1
    10.90.90.8    sap-cl2
    # IP address of the load balancer frontend configuration for SAP Netweaver ASCS
    10.90.90.10   sapascs
    # IP address of the load balancer frontend configuration for SAP Netweaver ERS
    10.90.90.9    sapers
    10.90.90.12   sapa01
    10.90.90.13   sapa02
    
  2. [A] 디렉터리를 만듭니 sapmnt 다.

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/trans
    
  3. [A] NFS 클라이언트 및 기타 요구 사항을 설치합니다.

    sudo yum -y install nfs-utils uuidd
    
  4. [A] 탑재 항목을 추가합니다.

    vi /etc/fstab
    # Add the following lines to fstab, save and exit
    sapnfs.file.core.windows.net:/sapnfsafs/saptrans /usr/sap/trans  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0
    sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/sapmntNW1 /sapmnt/NW1  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0
    
    # Mount the file systems
    mount -a 
    
  5. [A] SWAP 파일을 구성합니다.

    sudo vi /etc/waagent.conf
    
    # Set the property ResourceDisk.EnableSwap to y
    # Create and use swapfile on resource disk.
    ResourceDisk.EnableSwap=y
    
    # Set the size of the SWAP file with property ResourceDisk.SwapSizeMB
    # The free space of resource disk varies by virtual machine size. Make sure that you do not set a value that is too big. You can check the SWAP space with command swapon
    # Size of the swapfile.
    ResourceDisk.SwapSizeMB=2000
    

    에이전트를 다시 시작하여 변경 내용을 활성화합니다.

    sudo service waagent restart
    

데이터베이스 설치

이 예제에서는 SAP NetWeaver가 SAP HANA에 설치됩니다. 이 설치에 지원되는 모든 데이터베이스를 사용할 수 있습니다. Azure에 SAP HANA를 설치하는 방법에 대한 자세한 내용은 Red Hat Enterprise Linux에 설치된 Azure VM의 SAP HANA 고가용성을 참조하세요. 지원되는 데이터베이스 목록은 SAP Note 1928533을 참조하세요.

데이터베이스에 대한 부하 분산 장치 프런트 엔드 구성의 IP 주소에 매핑되는 가상 호스트 이름을 사용하여 SAP NetWeaver 데이터베이스 인스턴스를 루트로 설치합니다.

매개 변수 SAPINST_REMOTE_ACCESS_USERsapinst 사용하여 비루트 사용자가 연결할 수 있도록 허용할 수 있습니다sapinst.

# 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

SAP NetWeaver 애플리케이션 서버 설치

다음 단계에 따라 SAP 애플리케이션 서버를 설치합니다.

  1. [A] 애플리케이션 서버를 준비합니다.

    이전 섹션 SAP NetWeaver 애플리케이션 서버 준비 의 단계에 따라 애플리케이션 서버를 준비합니다.

  2. [A] SAP NetWeaver 애플리케이션 서버를 설치합니다.

    기본 또는 추가 SAP NetWeaver 애플리케이션 서버를 설치합니다.

    매개 변수 SAPINST_REMOTE_ACCESS_USERsapinst 사용하여 비루트 사용자가 연결할 수 있도록 허용할 수 있습니다sapinst.

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin
    
  3. [A] SAP HANA 보안 저장소를 업데이트합니다.

    SAP HANA 시스템 복제 설정의 가상 이름을 가리키도록 SAP HANA 보안 저장소를 업데이트합니다.

    다음 명령을 실행하여 항목을 로 <sapsid>adm나열합니다.

    hdbuserstore List
    

    모든 항목을 나열하고 다음과 유사하게 표시해야 합니다.

    DATA FILE       : /home/nw1adm/.hdb/sapa01/SSFS_HDB.DAT
    KEY FILE        : /home/nw1adm/.hdb/sapa01/SSFS_HDB.KEY
    
    KEY DEFAULT
      ENV : 10.90.90.5:30313
      USER: SAPABAP1
      DATABASE: NW1
    

    이 예제에서 기본 진입점의 IP 주소는 부하 분산 장치가 아니라 VM을 가리킵니다. 항목을 부하 분산 장치의 가상 호스트 이름을 가리키도록 변경합니다. 동일한 포트와 데이터베이스 이름을 사용해야 합니다. 예를 들어 샘플 출력에서 30313NW1을 사용합니다.

    su - nw1adm
    hdbuserstore SET DEFAULT nw1db:30313@NW1 SAPABAP1 <password of ABAP schema>
    

클러스터 설정 테스트

Pacemaker 클러스터를 철저히 테스트합니다. 자세한 내용은 일반적인 장애 조치(failover) 테스트 실행을 참조 하세요.

다음 단계