SAP 애플리케이션용 Azure NetApp Files를 사용하는 RHEL의 SAP NetWeaver에 대한 Azure Virtual Machines HA

이 문서에서는 Azure NetApp Files를 사용하여 VM(가상 머신)을 배포 및 구성하고, 클러스터 프레임워크와 고가용성 SAP NetWeaver 7.50 시스템을 설치하는 방법을 설명합니다. 예제 구성 및 설치 명령에서 ASCS 인스턴스는 번호 00, ERS 인스턴스는 번호 01, 기본 애플리케이션 인스턴스(PAS)는 02, 애플리케이션 인스턴스(AAS)는 03입니다. SAP 시스템 ID QAS가 사용됩니다.

데이터베이스 레이어는 이 문서에서 자세히 다루지 않습니다.

필수 조건

다음 SAP Note 및 문서를 먼저 읽어 보세요.

개요

SAP NetWeaver 중앙 서비스의 HA(고가용성)를 위해서는 공유 스토리지가 필요합니다. 지금까지 Red Hat Linux에서 HA를 실현하기 위해서는 고가용성 GlusterFS 클러스터를 별도로 구축해야 했습니다.

이제 Azure NetApp Files에 배포된 공유 스토리지를 사용하여 SAP NetWeaver HA를 실현할 수 있습니다. 공유 스토리지에 Azure NetApp Files를 사용하면 추가 GlusterFS 클러스터가 필요 없습니다. SAP NetWeaver 중앙 서비스(ASCS/SCS)의 HA를 위해서는 Pacemaker가 계속 필요합니다.

Diagram that shows SAP NetWeaver high-availability overview.

SAP NetWeaver ASCS, SAP NetWeaver SCS, SAP NetWeaver ERS 및 SAP HANA 데이터베이스는 가상 호스트 이름 및 가상 IP 주소를 사용합니다. Azure에서는 가상 IP 주소를 사용하려면 부하 분산 장치가 필요합니다. Azure Load Balancer 표준을 사용하는 것이 좋습니다. 여기 나와 있는 구성은 다음이 포함된 부하 분산 장치를 보여 줍니다.

  • 프런트 엔드 IP 주소: ASCS의 경우 192.168.14.9
  • 프런트 엔드 IP 주소: ERS의 경우 192.168.14.10
  • ASCS용 프로브 포트 62000
  • ERS용 프로브 포트 62101

Azure NetApp Files 인프라 설정

SAP NetWeaver에는 전송 및 프로필 디렉터리에 대한 공유 스토리지가 필요합니다. Azure NetApp Files 인프라 설정을 진행하기 전에 Azure NetApp Files 설명서를 숙지하세요. 선택한 Azure 지역에서 Azure NetApp Files를 제공하는지 확인합니다. Azure 지역별 Azure NetApp Files 가용성에 대한 자세한 내용은 Azure 지역별 Azure NetApp Files 가용성을 참조하세요.

Azure NetApp Files는 여러 Azure 지역에서 사용할 수 있습니다.

Azure NetApp Files 리소스 배포

이 단계에서는 Azure Virtual Network를 이미 배포했다고 가정합니다. Azure NetApp Files 리소스가 탑재될 Azure NetApp Files 리소스와 VM을 동일하거나 피어링된 Azure Virtual Network에 배포해야 합니다.

  1. Azure NetApp Files 계정 만들기 지침에 따라 선택한 Azure 지역에서 Azure NetApp Files 계정을 만듭니다.

  2. Azure NetApp Files 용량 풀 설정 방법 관련 지침에 따라 Azure NetApp Files 용량 풀을 설정합니다. 이 문서에 나온 SAP NetWeaver 아키텍처에서는 단일 Azure NetApp Files 용량 풀인 프리미엄 SKU를 사용합니다. Azure의 SAP NetWeaver 애플리케이션 워크로드에는 Azure NetApp Files 프리미엄 SKU가 권장됩니다.

  3. Azure NetApp Files에 서브넷을 위임하는 방법 관련 지침에 따라 Azure NetApp Files에 서브넷을 위임합니다.

  4. Azure NetApp Files용 볼륨을 만드는 지침에 따라 Azure NetApp Files 볼륨을 배포합니다. 지정된 Azure NetApp Files 서브넷에 볼륨을 배포합니다. Azure NetApp 볼륨의 IP 주소는 자동으로 할당됩니다. Azure NetApp Files 리소스와 Azure VM은 동일하거나 피어링된 Azure 가상 네트워크에 있어야 합니다. 이 예에서는 sapQAS 및 transSAP이라는 2개의 Azure NetApp Files 볼륨을 사용합니다. 해당 탑재 지점에 탑재되는 파일 경로는 /usrsapqas/sapmntQAS, /usrsapqas/usrsapQASsys입니다.

    1. 볼륨 sapQAS(nfs://192.168.24.5/usrsapqas/sapmntQAS)
    2. 볼륨 sapQAS(nfs://192.168.24.5/usrsapqas/usrsapQASascs)
    3. 볼륨 sapQAS(nfs://192.168.24.5/usrsapqas/usrsapQASsys)
    4. 볼륨 sapQAS(nfs://192.168.24.5/usrsapqas/usrsapQASers)
    5. 볼륨 transSAP(nfs://192.168.24.4/transSAP)
    6. 볼륨 sapQAS(nfs://192.168.24.5/usrsapqas/usrsapQASpas)
    7. 볼륨 sapQAS(nfs://192.168.24.5/usrsapqas/usrsapQASaas)

이 예제에서는 모든 SAP NetWeaver 파일 시스템에 Azure NetApp Files를 사용하여 Azure NetApp Files 사용 방법을 설명했습니다. NFS를 통해 탑재할 필요가 없는 SAP 파일 시스템을 Azure 디스크 스토리지로 배포할 수도 있습니다. 이 예제에서 a-e는 Azure NetApp Files에 있어야 하며, f-g(즉, /usr/sap/QAS/D02 및 /usr/sap/QAS/D03)를 Azure 디스크 스토리지로 배포할 수 있어야 합니다.

중요 사항

RHEL HA 아키텍처에서 SAP Netweaver용 Azure NetApp Files를 고려하는 경우 다음과 같은 중요한 사항을 고려해야 합니다.

  • 최소 용량 풀은 4TiB입니다. 용량 풀의 크기는 1TiB 단위로 늘릴 수 있습니다.
  • 최소 볼륨은 100GiB입니다.
  • Azure NetApp Files와 Azure NetApp Files 볼륨이 탑재될 모든 VM은 동일한 Azure Virtual Network나 동일한 지역의 피어링된 가상 네트워크에 있어야 합니다. 현재는 동일한 지역에서 가상 네트워크 피어링을 통한 Azure NetApp Files 액세스가 지원됩니다. 글로벌 피어링을 통한 Azure NetApp Files 액세스는 아직 지원되지 않습니다.
  • 선택한 가상 네트워크에 Azure NetApp Files로 위임된 서브넷이 있어야 합니다.
  • Azure NetApp Files 볼륨의 처리량 및 성능 특성은 볼륨 할당량과 서비스 수준의 함수입니다. 자세한 내용은 Azure NetApp Files에 대한 서비스 수준을 참조하세요. SAP Azure NetApp 볼륨의 크기를 조정하는 동안 결과 처리량이 애플리케이션 요구 사항을 충족하는지 확인해야 합니다.
  • Azure NetApp Files는 내보내기 정책을 제공합니다. 허용된 클라이언트 및 액세스 형식(예: 읽기/쓰기 및 읽기 전용)을 제어할 수 있습니다.
  • Azure NetApp Files 기능은 아직 영역을 인식하지 않습니다. 현재 Azure NetApp Files 기능은 Azure 지역의 모든 가용성 영역에 배포되지 않습니다. 일부 Azure 지역에서 잠재적 대기 시간 영향을 염두에 두어야 합니다.
  • Azure NetApp Files 볼륨은 NFSv3 또는 NFSv4.1 볼륨으로 배포할 수 있습니다. 두 프로토콜 모두 SAP 애플리케이션 레이어(ASCS/ERS, SAP 애플리케이션 서버)에 대해 지원됩니다.

인프라 준비

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

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

이 문서에서는 Azure Virtual Network, 서브넷 및 리소스 그룹을 이미 배포했다고 가정합니다.

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

Azure Load Balancer 구성

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

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

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

참고 항목

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

Important

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

참고 항목

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

Important

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

ID 매핑 사용 안 함(NFSv4.1을 사용하는 경우)

이 섹션의 지침은 NFSv4.1 프로토콜과 함께 Azure NetApp Files 볼륨을 사용하는 경우에만 적용됩니다. Azure NetApp Files NFSv4.1 볼륨이 탑재될 모든 VM에서 구성을 수행합니다.

  1. NFS 도메인 설정 확인 도메인이 기본 Azure NetApp Files 도메인, 즉 defaultv4iddomain.com으로 구성되어 있고 매핑이 nobody로 설정되어 있는지 확인합니다.

    Important

    VM의 /etc/idmapd.conf에서 NFS 도메인을 Azure NetApp Files의 기본 도메인 구성(defaultv4iddomain.com)과 일치하도록 설정해야 합니다. NFS 클라이언트(즉, VM)의 도메인 구성과 NFS 서버(즉, Azure NetApp 구성)가 일치하지 않는 경우 VM에 탑재된 Azure NetApp 볼륨의 파일에 대한 사용 권한이 nobody로 표시됩니다.

    sudo cat /etc/idmapd.conf
    
    # Example
    [General]
    Domain = defaultv4iddomain.com
    [Mapping]
    Nobody-User = nobody
    Nobody-Group = nobody
    

다음 [A] 접두사는 PAS와 AAS에 모두 적용됩니다.

  1. [A]nfs4_disable_idmapping을 확인합니다. Y로 설정되어야 합니다. nfs4_disable_idmapping이 있는 디렉터리 구조를 만들려면 mount 명령을 실행합니다. 커널 및 드라이버에 대한 액세스가 예약되어 있으므로 /sys/modules 아래에 디렉터리를 수동으로 만들 수 없습니다.

    # Check nfs4_disable_idmapping 
    cat /sys/module/nfs/parameters/nfs4_disable_idmapping
    
    # If you need to set nfs4_disable_idmapping to Y
    mkdir /mnt/tmp
    mount 192.168.24.5:/sapQAS
    umount  /mnt/tmp
    echo "Y" > /sys/module/nfs/parameters/nfs4_disable_idmapping
    
    # Make the configuration permanent
    echo "options nfs nfs4_disable_idmapping=Y" >> /etc/modprobe.d/nfs.conf
    

(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
    192.168.14.5    anftstsapcl1
    # IP address of cluster node 2
    192.168.14.6     anftstsapcl2
    # IP address of the load balancer frontend configuration for SAP Netweaver ASCS
    192.168.14.9    anftstsapvh
    # IP address of the load balancer frontend configuration for SAP Netweaver ERS
    192.168.14.10    anftstsapers
    
  2. [1] Azure NetApp Files 볼륨에 SAP 디렉터리를 만듭니다. VM 중 하나에 Azure NetApp Files 볼륨을 탑재하고 SAP 디렉터리(파일 경로)를 만듭니다.

    # mount temporarily the volume
    sudo mkdir -p /saptmp
    
    # If using NFSv3
    sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,nfsvers=3,tcp 192.168.24.5:/sapQAS /saptmp
    
    # If using NFSv4.1
    sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys,tcp 192.168.24.5:/sapQAS /saptmp
    
    # create the SAP directories
    sudo cd /saptmp
    sudo mkdir -p sapmntQAS
    sudo mkdir -p usrsapQASascs
    sudo mkdir -p usrsapQASers
    sudo mkdir -p usrsapQASsys
    sudo mkdir -p usrsapQASpas
    sudo mkdir -p usrsapQASaas
    
    # unmount the volume and delete the temporary directory
    sudo cd ..
    sudo umount /saptmp
    sudo rmdir /saptmp
    
  3. [A] 공유 디렉터리를 만듭니다.

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

    sudo yum -y install nfs-utils resource-agents resource-agents-sap
    
  5. [A]resource-agents-sap의 버전을 확인합니다.

    설치된 resource-agents-sap 패키지 버전이 3.9.5-124.el7 이상인지 확인합니다.

    sudo yum info resource-agents-sap
    
    # Loaded plugins: langpacks, product-id, search-disabled-repos
    # Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
    # Installed Packages
    # Name        : resource-agents-sap
    # Arch        : x86_64
    # Version     : 3.9.5
    # Release     : 124.el7
    # Size        : 100 k
    # Repo        : installed
    # From repo   : rhel-sap-for-rhel-7-server-rpms
    # Summary     : SAP cluster resource agents and connector script
    # URL         : https://github.com/ClusterLabs/resource-agents
    # License     : GPLv2+
    # Description : The SAP resource agents and connector script interface with
    #          : Pacemaker to allow SAP instances to be managed in a cluster
    #          : environment.
    
  6. [A] 탑재 항목을 추가합니다.

    NFSv3을 사용하는 경우:

    sudo vi /etc/fstab
    
    # Add the following lines to fstab, save and exit
    192.168.24.5:/sapQAS/sapmntQAS /sapmnt/QAS nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3
    192.168.24.5:/sapQAS/usrsapQASsys /usr/sap/QAS/SYS nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3
    192.168.24.4:/transSAP /usr/sap/trans nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3
    

    NFSv4.1을 사용하는 경우:

    sudo vi /etc/fstab
    
    # Add the following lines to fstab, save and exit
    192.168.24.5:/sapQAS/sapmntQAS /sapmnt/QAS nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys
    192.168.24.5:/sapQAS/usrsapQASsys /usr/sap/QAS/SYS nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys
    192.168.24.4:/transSAP /usr/sap/trans nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys
    

    참고 항목

    볼륨을 탑재할 때 Azure NetApp Files 볼륨의 NFS 프로토콜 버전과 일치하는지 확인합니다. Azure NetApp Files 볼륨이 NFSv3 볼륨으로 만들어지는 경우 해당 NFSv3 구성을 사용합니다. Azure NetApp Files 볼륨이 NFSv4.1 볼륨으로 만들어지는 경우 지침에 따라 ID 매핑을 사용하지 않도록 설정하고 해당 NFSv4.1 구성을 사용해야 합니다. 이 예제에서는 Azure NetApp Files 볼륨이 NFSv3 볼륨으로 만들어졌습니다.

    새 공유를 탑재합니다.

    sudo 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 VM 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 OS 구성을 수행합니다.

    RHEL 버전에 따라 SAP Note 2002167, 2772999 또는 3108316에서 언급된 구성을 수행합니다.

SAP NetWeaver ASCS/ERS 설치

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

    pcs resource defaults resource-stickiness=1
    pcs resource defaults migration-threshold=3
    
  2. [1] ASCS 인스턴스에 대한 가상 IP 리소스 및 상태 프로브를 만듭니다.

    sudo pcs node standby anftstsapcl2
    
    # If using NFSv3
    sudo pcs resource create fs_QAS_ASCS Filesystem device='192.168.24.5:/sapQAS/usrsapQASascs' \
      directory='/usr/sap/QAS/ASCS00' 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-QAS_ASCS
    
    # If using NFSv4.1
    sudo pcs resource create fs_QAS_ASCS Filesystem device='192.168.24.5:/sapQAS/usrsapQASascs' \
      directory='/usr/sap/QAS/ASCS00' fstype='nfs' force_unmount=safe options='sec=sys,nfsvers=4.1' \
      op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=105 \
      --group g-QAS_ASCS
    
    sudo pcs resource create vip_QAS_ASCS IPaddr2 \
      ip=192.168.14.9 \
      --group g-QAS_ASCS
    
    sudo pcs resource create nc_QAS_ASCS azure-lb port=62000 \
      --group g-QAS_ASCS
    

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

    sudo pcs status
    
    # Node anftstsapcl2: standby
    # Online: [ anftstsapcl1 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started anftstsapcl1
    #  Resource Group: g-QAS_ASCS
    #      fs_QAS_ASCS        (ocf::heartbeat:Filesystem):    Started anftstsapcl1
    #      nc_QAS_ASCS        (ocf::heartbeat:azure-lb):      Started anftstsapcl1
    #      vip_QAS_ASCS       (ocf::heartbeat:IPaddr2):       Started anftstsapcl1
    
  3. [1] SAP NetWeaver ASCS를 설치합니다.

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

    sapinst 매개 변수 SAPINST_REMOTE_ACCESS_USER를 사용하여 루트가 아닌 사용자가 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/QAS/ASCS00에 하위 폴더를 만들지 못하면 ASCS00 폴더의 소유자 및 그룹을 설정하고 다시 시도합니다.

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

    sudo pcs node unstandby anftstsapcl2
    sudo pcs node standby anftstsapcl1
    
    # If using NFSv3
    sudo pcs resource create fs_QAS_AERS Filesystem device='192.168.24.5:/sapQAS/usrsapQASers' \
      directory='/usr/sap/QAS/ERS01' 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-QAS_AERS
    
    # If using NFSv4.1
    sudo pcs resource create fs_QAS_AERS Filesystem device='192.168.24.5:/sapQAS/usrsapQASers' \
      directory='/usr/sap/QAS/ERS01' fstype='nfs' force_unmount=safe options='sec=sys,nfsvers=4.1' \
      op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=105 \
     --group g-QAS_AERS
    
    sudo pcs resource create vip_QAS_AERS IPaddr2 \
      ip=192.168.14.10 \
     --group g-QAS_AERS
    
    sudo pcs resource create nc_QAS_AERS azure-lb port=62101 \
     --group g-QAS_AERS
    

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

    sudo pcs status
    
    # Node anftstsapcl1: standby
    # Online: [ anftstsapcl2 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started anftstsapcl2
    #  Resource Group: g-QAS_ASCS
    #      fs_QAS_ASCS        (ocf::heartbeat:Filesystem):    Started anftstsapcl2
    #      nc_QAS_ASCS        (ocf::heartbeat:azure-lb):      Started anftstsapcl2<
    #      vip_QAS_ASCS       (ocf::heartbeat:IPaddr2):       Started anftstsapcl2
    #  Resource Group: g-QAS_AERS
    #      fs_QAS_AERS        (ocf::heartbeat:Filesystem):    Started anftstsapcl2
    #      nc_QAS_AERS        (ocf::heartbeat:azure-lb):      Started anftstsapcl2
    #      vip_QAS_AERS       (ocf::heartbeat:IPaddr2):       Started anftstsapcl2
    
  5. [2] SAP NetWeaver ERS를 설치합니다.

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

    sapinst 매개 변수 SAPINST_REMOTE_ACCESS_USER를 사용하여 루트가 아닌 사용자가 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/QAS/ERS01에 하위 폴더를 만들지 못하면 ERS01 폴더의 소유자와 그룹을 설정하고 다시 시도합니다.

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

    • ASCS/SCS 프로필

      sudo vi /sapmnt/QAS/profile/QAS_ASCS00_anftstsapvh
      
      # 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/QAS/profile/QAS_ERS01_anftstsapers
      
      # 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] 연결 유지를 구성합니다.

    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 시작 스크립트에 의해 인스턴스가 시작되지 않도록 하려면 /usr/sap/sapservices 파일에서 Pacemaker가 관리하는 모든 인스턴스를 주석 처리해야 합니다.

    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/QAS/ASCS00/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/QAS/ASCS00/exe/sapstartsrv pf=/usr/sap/QAS/SYS/profile/QAS_ASCS00_anftstsapvh -D -u qasadm
    # systemctl --no-ask-password start SAPQAS_00 # sapstartsrv pf=/usr/sap/QAS/SYS/profile/QAS_ASCS00_anftstsapvh
    
    # 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/QAS/ERS01/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/QAS/ERS01/exe/sapstartsrv pf=/usr/sap/QAS/ERS01/profile/QAS_ERS01_anftstsapers -D -u qasadm
    # systemctl --no-ask-password start SAPQAS_01 # sapstartsrv pf=/usr/sap/QAS/ERS01/profile/QAS_ERS01_anftstsapers
    

    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에 설명된 단계를 성공적으로 완료해야 합니다.

  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
    
    # If using NFSv3
    sudo pcs resource create rsc_sap_QAS_ASCS00 SAPInstance \
    InstanceName=QAS_ASCS00_anftstsapvh START_PROFILE="/sapmnt/QAS/profile/QAS_ASCS00_anftstsapvh" \
    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-QAS_ASCS
    
    # If using NFSv4.1
    sudo pcs resource create rsc_sap_QAS_ASCS00 SAPInstance \
    InstanceName=QAS_ASCS00_anftstsapvh START_PROFILE="/sapmnt/QAS/profile/QAS_ASCS00_anftstsapvh" \
    AUTOMATIC_RECOVER=false \
    meta resource-stickiness=5000 migration-threshold=1 failure-timeout=60 \
    op monitor interval=20 on-fail=restart timeout=105 \
    op start interval=0 timeout=600 op stop interval=0 timeout=600 \
    --group g-QAS_ASCS
    
    sudo pcs resource meta g-QAS_ASCS resource-stickiness=3000
    
    # If using NFSv3
    sudo pcs resource create rsc_sap_QAS_ERS01 SAPInstance \
    InstanceName=QAS_ERS01_anftstsapers START_PROFILE="/sapmnt/QAS/profile/QAS_ERS01_anftstsapers" \
    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-QAS_AERS
    
    # If using NFSv4.1
    sudo pcs resource create rsc_sap_QAS_ERS01 SAPInstance \
    InstanceName=QAS_ERS01_anftstsapers START_PROFILE="/sapmnt/QAS/profile/QAS_ERS01_anftstsapers" \
    AUTOMATIC_RECOVER=false IS_ERS=true \
    op monitor interval=20 on-fail=restart timeout=105 op start interval=0 timeout=600 op stop interval=0 timeout=600 \
    --group g-QAS_AERS
    
    sudo pcs constraint colocation add g-QAS_AERS with g-QAS_ASCS -5000
    sudo pcs constraint location rsc_sap_QAS_ASCS00 rule score=2000 runs_ers_QAS eq 1
    sudo pcs constraint order start g-QAS_ASCS then stop g-QAS_AERS kind=Optional symmetrical=false
    
    sudo pcs node unstandby anftstsapcl1
    sudo pcs property set maintenance-mode=false
    

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

    참고 항목

    NFSv4.1을 사용할 때 권장되는 더 높은 시간 제한은 NFSv4.1 임대 갱신과 관련된 프로토콜별 일시 중지로 인해 필요합니다. 자세한 내용은 NetApp의 NFS 모범 사례를 참조하세요. 앞의 구성에서 시간 제한은 단지 예제이며 특정 SAP 설정에 맞게 조정해야 할 수 있습니다.

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

    sudo pcs status
    
    # Online: [ anftstsapcl1 anftstsapcl2 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started anftstsapcl2
    #  Resource Group: g-QAS_ASCS
    #      fs_QAS_ASCS        (ocf::heartbeat:Filesystem):    Started anftstsapcl2
    #      nc_QAS_ASCS        (ocf::heartbeat:azure-lb):      Started anftstsapcl2
    #      vip_QAS_ASCS       (ocf::heartbeat:IPaddr2):       Started anftstsapcl2
    #      rsc_sap_QAS_ASCS00 (ocf::heartbeat:SAPInstance):   Started anftstsapcl2
    #  Resource Group: g-QAS_AERS
    #      fs_QAS_AERS        (ocf::heartbeat:Filesystem):    Started anftstsapcl1
    #      nc_QAS_AERS        (ocf::heartbeat:azure-lb):      Started anftstsapcl1
    #      vip_QAS_AERS       (ocf::heartbeat:IPaddr2):       Started anftstsapcl1
    #      rsc_sap_QAS_ERS01  (ocf::heartbeat:SAPInstance):   Started anftstsapcl1
    
  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_QAS_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 주소와 호스트 이름을 변경합니다.

    # IP address of the load balancer frontend configuration for SAP NetWeaver ASCS
    192.168.14.9 anftstsapvh
    # IP address of the load balancer frontend configuration for SAP NetWeaver ASCS ERS
    192.168.14.10 anftstsapers
    192.168.14.7 anftstsapa01
    192.168.14.8 anftstsapa02
    
  2. [A]sapmnt 디렉터리를 만듭니다.

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

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

    NFSv3을 사용하는 경우:

    sudo vi /etc/fstab
    
    # Add the following lines to fstab, save and exit
    192.168.24.5:/sapQAS/sapmntQAS /sapmnt/QAS nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3
    192.168.24.4:/transSAP /usr/sap/trans nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3
    

    NFSv4.1을 사용하는 경우:

    sudo vi /etc/fstab
    
    # Add the following lines to fstab, save and exit
    192.168.24.5:/sapQAS/sapmntQAS /sapmnt/QAS nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys
    192.168.24.4:/transSAP /usr/sap/trans nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys
    

    새 공유를 탑재합니다.

    sudo mount -a
    
  5. [P] PAS 디렉터리를 만들고 탑재합니다.

    NFSv3을 사용하는 경우:

    sudo mkdir -p /usr/sap/QAS/D02
    sudo chattr +i /usr/sap/QAS/D02
    
    sudo vi /etc/fstab
    # Add the following line to fstab
    92.168.24.5:/sapQAS/usrsapQASpas /usr/sap/QAS/D02 nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3
    
    # Mount
    sudo mount -a
    

    NFSv4.1을 사용하는 경우:

    sudo mkdir -p /usr/sap/QAS/D02
    sudo chattr +i /usr/sap/QAS/D02
    
    sudo vi /etc/fstab
    # Add the following line to fstab
    92.168.24.5:/sapQAS/usrsapQASpas /usr/sap/QAS/D02 nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys
    
    # Mount
    sudo mount -a
    
  6. [P] AAS 디렉터리를 만들고 탑재합니다.

    NFSv3을 사용하는 경우:

    sudo mkdir -p /usr/sap/QAS/D03
    sudo chattr +i /usr/sap/QAS/D03
    
    sudo vi /etc/fstab
    # Add the following line to fstab
    92.168.24.5:/sapQAS/usrsapQASaas /usr/sap/QAS/D03 nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3
    
    # Mount
    sudo mount -a
    

    NFSv4.1을 사용하는 경우:

    sudo mkdir -p /usr/sap/QAS/D03
    sudo chattr +i /usr/sap/QAS/D03
    
    sudo vi /etc/fstab
    # Add the following line to fstab
    92.168.24.5:/sapQAS/usrsapQASaas /usr/sap/QAS/D03 nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys
    
    # Mount
    sudo 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 VM 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을 참조하세요.

  • SAP 데이터베이스 인스턴스 설치를 실행합니다.

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

    sapinst 매개 변수 SAPINST_REMOTE_ACCESS_USER를 사용하여 루트가 아닌 사용자가 sapinst에 연결할 수 있습니다.

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin
    

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

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

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

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

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

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

    sapinst 매개 변수 SAPINST_REMOTE_ACCESS_USER를 사용하여 루트가 아닌 사용자가 sapinst에 연결할 수 있습니다.

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

    설치한 SAP HANA System Replication의 가상 이름을 가리키도록 SAP HANA 보안 저장소를 업데이트합니다.

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

    hdbuserstore List
    

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

    DATA FILE       : /home/qasadm/.hdb/anftstsapa01/SSFS_HDB.DAT
    KEY FILE        : /home/qasadm/.hdb/anftstsapa01/SSFS_HDB.KEY
    
    KEY DEFAULT
      ENV : 192.168.14.4:30313
      USER: SAPABAP1
      DATABASE: QAS
    

    출력은 기본 항목의 IP 주소가 부하 분산 장치의 IP 주소가 아니라 VM을 가리키고 있음을 나타냅니다. 항목을 부하 분산 장치의 가상 호스트 이름을 가리키도록 변경해야 합니다. 동일한 포트(위 출력의 30313) 및 데이터베이스 이름(위 출력의 QAS)을 사용해야 합니다.

    su - qasadm
    hdbuserstore SET DEFAULT qasdb:30313@QAS SAPABAP1 <password of ABAP schema>
    

클러스터 설정 테스트

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

다음 단계