SAP 애플리케이션용 Azure NetApp Files를 사용하여 SUSE Linux Enterprise Server에서 Azure VM의 SAP NetWeaver 고가용성 실현

이 문서에서는 Azure NetApp Files를 사용하여 SAP NetWeaver 애플리케이션 에 대한 고가용성을 구성하는 방법을 설명합니다.

SAP 애플리케이션 15용 SLES의 새로운 구현을 위해 간단한 탑재 구성에서 SAP ASCS/ERS에 대한 고가용성을 배포하는 것이 좋습니다. 이 문서에 설명된 SAP 중앙 서비스 디렉터리에 대한 클러스터 제어 파일 시스템을 기반으로 하는 클래식 Pacemaker 구성은 여전히 지원됩니다.

예제 구성, 설치 명령 등에서 ASCS 인스턴스는 숫자 00, ERS 인스턴스 번호 01, PAS(기본 애플리케이션 인스턴스)는 02, AAS(애플리케이션 인스턴스)는 03입니다. SAP 시스템 ID QAS가 사용됩니다. 데이터베이스 계층은 이 문서에서 자세히 다루지 않습니다.

먼저 다음 SAP 노트 및 논문을 읽어보세요.

개요

SAP Netweaver 중앙 서비스의 HA(고가용성)에는 공유 스토리지가 필요합니다. 지금까지 SUSE Linux에서 이를 달성하려면 고가용성 별도의 NFS 클러스터를 빌드해야 했습니다.

이제 Azure NetApp Files에 배포된 공유 스토리지를 사용하여 SAP Netweaver HA를 달성할 수 있습니다. 공유 스토리지에 Azure NetApp Files를 사용하면 추가 NFS 클러스터가 필요하지 않습니다. SAP Netweaver 중앙 서비스(ASCS/SCS)의 HA에는 Pacemaker가 여전히 필요합니다.

SAP NetWeaver High Availability overview

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

  • ASCS용 프런트 엔드 IP 주소 10.1.1.20
  • ERS용 프런트 엔드 IP 주소 10.1.1.21
  • ASCS용 프로브 포트 62000
  • ERS용 프로브 포트 62101

Azure NetApp Files 인프라 설정

SAP NetWeaver에는 전송 및 프로필 디렉터리에 대한 공유 스토리지가 필요합니다. Azure NetApp 파일 인프라에 대한 설정을 진행하기 전에 Azure NetApp Files 설명서를 숙지 하세요. 선택한 Azure 지역에서 Azure NetApp Files를 제공하는지 확인합니다. 다음 링크는 Azure 지역별 Azure NetApp Files의 가용성을 보여줍니다. Azure 지역별 Azure NetApp Files 가용성.

Azure NetApp 파일은 여러 Azure 지역에서 사용할 수 있습니다.

Azure NetApp Files 리소스 배포

이 단계에서는 Azure Virtual Network를 이미 배포했다고 가정합니다. Azure NetApp Files 리소스가 탑재될 Azure NetApp Files 리소스 및 VM은 동일한 Azure Virtual Network 또는 피어된 Azure Virtual Network에 배포되어야 합니다.

  1. NetApp 계정 만들기 지침에 따라 선택한 Azure 지역에서 NetApp 계정을 만듭니다.
  2. Azure NetApp Files 용량 풀을 설정하는 방법에 대한 지침에 따라 Azure NetApp Files 용량 풀을 설정합니다.
    이 문서에 제시된 SAP Netweaver 아키텍처는 단일 Azure NetApp Files 용량 풀인 프리미엄 SKU를 사용합니다. Azure에서 SAP Netweaver 애플리케이션 워크로드용 Azure NetApp Files Premium SKU를 사용하는 것이 좋습니다.
  3. 지침에 설명된 대로 Azure NetApp 파일에 서브넷을 위임하여 Azure NetApp Files에 서브넷을 위임합니다.
  4. Azure NetApp Files에 대한 볼륨을 만드는 지침에 따라 Azure NetApp Files 볼륨을 배포합니다. 지정된 Azure NetApp Files 서브넷에 볼륨을 배포합니다. Azure NetApp 볼륨의 IP 주소는 자동으로 할당됩니다. Azure NetApp Files 리소스와 Azure VM은 동일한 Azure Virtual Network 또는 피어된 Azure Virtual Network에 있어야 합니다. 이 예제에서는 SapQAS 및 trans라는 두 개의 Azure NetApp Files 볼륨을 사용합니다. 해당 탑재 지점에 탑재되는 파일 경로는 /usrsapqas/sapmntQAS, /usrsapqas/usrsapQASsys 등입니다.
    1. 볼륨 sapQAS (nfs://10.1.0.4/usrsapqas/sapmntQAS)
    2. 볼륨 sapQAS (nfs://10.1.0.4/usrsapqas/usrsapQASascs)
    3. 볼륨 sapQAS (nfs://10.1.0.4/usrsapqas/usrsapQASsys)
    4. 볼륨 sapQAS (nfs://10.1.0.4/usrsapqas/usrsapQASers)
    5. 볼륨 트랜스(nfs://10.1.0.4/trans)
    6. 볼륨 sapQAS(nfs://10.1.0.4/usrsapqas/usrsapQASpas)
    7. 볼륨 sapQAS (nfs://10.1.0.4/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 디스크 스토리지로 배포할 수 있습니다.

중요 사항

SUSE 고가용성 아키텍처의 SAP Netweaver에 대한 Azure NetApp Files를 고려할 때는 다음과 같은 중요한 고려 사항을 고려해야 합니다.

  • 최소 용량 풀은 4TiB입니다. 용량 풀 크기는 1TiB 단위로 늘릴 수 있습니다.
  • 최소 볼륨은 100GiB입니다.
  • Azure NetApp Files 및 Azure NetApp Files 볼륨이 탑재되는 모든 가상 머신은 동일한 Azure Virtual Network 또는 동일한 지역의 피어된 가상 네트워크에 있어야 합니다. 이제 동일한 지역의 VNET 피어링을 통해 Azure NetApp Files 액세스가 지원됩니다. 글로벌 피어링을 통해 Azure NetApp 액세스는 아직 지원되지 않습니다.
  • 선택한 가상 네트워크에 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 애플리케이션 서버)에 대해 지원됩니다.

인프라 준비

SAP Instance에 대한 리소스 에이전트는 SAP 애플리케이션용 SUSE Linux Enterprise Server에 포함되어 있습니다. SAP 애플리케이션 12 또는 15용 SUSE Linux Enterprise Server에 대한 이미지는 Azure Marketplace에서 사용할 수 있습니다. 이미지를 사용하여 새 VM을 배포할 수 있습니다.

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

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

SAP 애플리케이션용 SLES 이미지를 사용하여 가상 머신을 배포합니다. SAP 시스템에 지원되는 적합한 버전의 SLES 이미지를 선택합니다. 가상 머신 확장 집합, 가용성 영역 또는 가용성 집합과 같은 가용성 옵션 중 하나에서 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 구성에서 지원되지 않습니다. 자세한 내용은 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로 설정합니다. 자세한 내용은 Load Balancer 상태 프로브를 참조하세요.
  • saptune이 수동으로 설정된 net.ipv4.tcp_timestamps 값을 0 다시 1변경하지 않도록 하려면 saptune 버전을 3.1.1 이상으로 업데이트해야 합니다. 자세한 내용은 saptune 3.1.1 – 업데이트해야 하나요?를 참조하세요.

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

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

  1. NFS do기본 설정을 확인합니다. 기본 Azure NetApp Files처럼 do기본 구성되었는지기본 defaultv4iddomain.com 매핑이 아무도설정되지 않았는지 확인합니다.

    Important

    VM에서 /etc/idmapd.conf NFS do기본를 Azure NetApp Filesdefaultv4iddomain.com의 기본 do기본 구성과 일치하도록 설정해야 합니다. NFS 클라이언트(즉, VM)와 NFS 서버(예: Azure NetApp 구성)의 do기본 구성이 일치하지 않는 경우 VM에 탑재된 Azure NetApp 볼륨의 파일에 대한 권한은 다음과 같이 nobody표시됩니다.

    sudo cat /etc/idmapd.conf
    
    # Example
    [General]
    Verbosity = 0
    Pipefs-Directory = /var/lib/nfs/rpc_pipefs
    Domain = defaultv4iddomain.com
    [Mapping]
    Nobody-User = nobody
    Nobody-Group = nobody
    
  2. [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 10.1.0.4:/sapmnt/qas /mnt/tmp
    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의 SUSE Linux Enterprise Server에서 Pacemaker를 설정하는 단계에 따라 이 (A)SCS 서버에 대한 기본 Pacemaker 클러스터를 만듭니다.

설치

다음 항목에는 노드 1 또는 [2]에만 적용되는 모든 노드에 적용할 수 있는 [A] 접두사로 노드 2에만 적용됩니다.

  1. [A] SUSE 커넥트or 설치

    sudo zypper install sap-suse-cluster-connector
    

    참고 항목

    호스트 이름에 대시 사용과 관련된 알려진 문제는 패키지 sap-suse-cluster-connector의 버전 3.1.1에서 해결되었습니다. 호스트 이름에 대시가 있는 클러스터 노드를 사용하는 경우 sap-suse-cluster-connector 패키지 버전 3.1.1 이상을 사용하고 있는지 확인합니다. 그렇지 않으면 클러스터가 작동하지 않습니다.

    SAP SUSE 클러스터 커넥터의 새 버전을 설치했는지 확인합니다. 이전 항목은 sap_suse_cluster_connector 호출되었으며 새 커넥터를 sap-suse-cluster-connector라고 합니다.

    sudo zypper info sap-suse-cluster-connector
    
    # Information for package sap-suse-cluster-connector:
    # ---------------------------------------------------
    # Repository     : SLE-12-SP3-SAP-Updates
    # Name           : sap-suse-cluster-connector
    # Version        : 3.1.0-8.1
    # Arch           : noarch
    # Vendor         : SUSE LLC <https://www.suse.com/>
    # Support Level  : Level 3
    # Installed Size : 45.6 KiB
    # Installed      : Yes
    # Status         : up-to-date
    # Source package : sap-suse-cluster-connector-3.1.0-8.1.src
    # Summary        : SUSE High Availability Setup for SAP Products
    
  2. [A] SAP 리소스 에이전트 업데이트

    이 문서에 설명된 새 구성을 사용하려면 리소스 에이전트 패키지에 대한 패치가 필요합니다. 다음 명령을 사용하여 패치가 이미 설치되었는지를 확인할 수 있습니다.

    sudo grep 'parameter name="IS_ERS"' /usr/lib/ocf/resource.d/heartbeat/SAPInstance
    

    출력은 다음과 유사해야 합니다.

    <parameter name="IS_ERS" unique="0" required="0">
    

    grep 명령을 실행하여 IS_ERS 매개 변수를 찾을 수 없는 경우에는 SUSE 다운로드 페이지에 나와 있는 패치를 설치해야 합니다.

    # example for patch for SLES 12 SP1
    sudo zypper in -t patch SUSE-SLE-HA-12-SP1-2017-885=1
    
    # example for patch for SLES 12 SP2
    sudo zypper in -t patch SUSE-SLE-HA-12-SP2-2017-886=1
    
  3. [A] 호스트 이름 확인 설정

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

    sudo vi /etc/hosts
    

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

    # IP address of cluster node 1
    10.1.1.18    anftstsapcl1
    # IP address of cluster node 2
    10.1.1.6     anftstsapcl2
    # IP address of the load balancer frontend configuration for SAP Netweaver ASCS
    10.1.1.20    anftstsapvh
    # IP address of the load balancer frontend configuration for SAP Netweaver ERS
    10.1.1.21    anftstsapers
    
  4. [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 10.1.0.4:/sapQAS /saptmp
    # If using NFSv4.1
    sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys,tcp 10.1.0.4:/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
    

SAP NetWeaver 설치 준비

  1. [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
    
  2. [A] 구성 autofs

    sudo vi /etc/auto.master
    
    # Add the following line to the file, save and exit
    /- /etc/auto.direct
    

    NFSv3을 사용하는 경우 다음을 사용하여 파일을 만듭니다.

    sudo vi /etc/auto.direct
    
    # Add the following lines to the file, save and exit
    /sapmnt/QAS -nfsvers=3,nobind 10.1.0.4:/usrsapqas/sapmntQAS
    /usr/sap/trans -nfsvers=3,nobind 10.1.0.4:/trans
    /usr/sap/QAS/SYS -nfsvers=3,nobind 10.1.0.4:/usrsapqas/usrsapQASsys
    

    NFSv4.1을 사용하는 경우 다음을 사용하여 파일을 만듭니다.

    sudo vi /etc/auto.direct
    
    # Add the following lines to the file, save and exit
    /sapmnt/QAS -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/usrsapqas/sapmntQAS
    /usr/sap/trans -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/trans
    /usr/sap/QAS/SYS -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/usrsapqas/usrsapQASsys
    

    참고 항목

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

    새 공유를 탑재하려면 다시 시작 autofs

    sudo systemctl enable autofs
    sudo service autofs restart
    
  3. [A] SWAP 파일 구성

    sudo vi /etc/waagent.conf
    
    # Check if property ResourceDisk.Format is already set to y and if not, set it
    ResourceDisk.Format=y
    
    # 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 ASCS/ERS 설치

  1. [1] ASCS 인스턴스에 대한 가상 IP 리소스 및 상태 프로브 만들기

    Important

    최근 테스트 결과, 백로그와 하나의 연결만 처리하는 제한으로 인해 netcat이 요청에 응답하지 않는 것으로 확인되었습니다. netcat 리소스는 Azure Load Balancer 요청 수신을 중지하고 부동 IP를 사용할 수 없게 됩니다.
    기존 Pacemaker 클러스터의 경우 과거에 netcat을 socat으로 바꾸는 것이 좋습니다. 현재 다음 패키지 버전 요구 사항을 사용하여 패키지 리소스 에이전트의 일부인 azure-lb 리소스 에이전트를 사용하는 것이 좋습니다.

    • SLES 12 SP4/SP5의 경우 버전은 resource-agents-4.3.018.a7fb5035-3.30.1 이상이어야 합니다.
    • SLES 15/15 SP1의 경우 버전은 resource-agents-4.3.0184.6ee15eb2-4.13.1 이상이어야 합니다.

    변경에는 짧은 가동 중지 시간이 필요합니다.
    기존 Pacemaker 클러스터의 경우 Azure Load-Balancer 감지 강화의 설명에 따라 socat을 사용하도록 구성을 이미 변경한 경우 즉시 azure-lb 리소스 에이전트로 전환할 필요가 없습니다.

    sudo crm node standby anftstsapcl2
    
    # If using NFSv3
    sudo crm configure primitive fs_QAS_ASCS Filesystem device='10.1.0.4/usrsapqas/usrsapQASascs' directory='/usr/sap/QAS/ASCS00' fstype='nfs' \
      op start timeout=60s interval=0 \
      op stop timeout=60s interval=0 \
      op monitor interval=20s timeout=40s
    
    # If using NFSv4.1
    sudo crm configure primitive fs_QAS_ASCS Filesystem device='10.1.0.4:/usrsapqas/usrsapQASascs' directory='/usr/sap/QAS/ASCS00' fstype='nfs' options='sec=sys,nfsvers=4.1' \
      op start timeout=60s interval=0 \
      op stop timeout=60s interval=0 \
      op monitor interval=20s timeout=105s
    
    sudo crm configure primitive vip_QAS_ASCS IPaddr2 \
      params ip=10.1.1.20 \
      op monitor interval=10 timeout=20
    
    sudo crm configure primitive nc_QAS_ASCS azure-lb port=62000 \
      op monitor timeout=20s interval=10
    
    sudo crm configure group g-QAS_ASCS fs_QAS_ASCS nc_QAS_ASCS vip_QAS_ASCS \
       meta resource-stickiness=3000
    

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

    sudo crm_mon -r
    
    # Node anftstsapcl2: standby
    # Online: [ anftstsapcl1 ]
    # 
    # Full list of resources:
    #
    # 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
    # stonith-sbd     (stonith:external/sbd): Started anftstsapcl2
    
  2. [1] SAP NetWeaver ASCS 설치

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

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

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=virtual_hostname
    

    설치가 /usr/sap/QAS/ASCS00에서 하위 폴더를 만들지 못하는 경우 ASCS00 폴더의 소유자 및 그룹을 설정하고 다시 시도합니다.

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

    sudo crm node online anftstsapcl2
    sudo crm node standby anftstsapcl1
    
    # If using NFSv3
    sudo crm configure primitive fs_QAS_ERS Filesystem device='10.1.0.4:/usrsapqas/usrsapQASers' directory='/usr/sap/QAS/ERS01' fstype='nfs' \
      op start timeout=60s interval=0 \
      op stop timeout=60s interval=0 \
      op monitor interval=20s timeout=40s
    
    # If using NFSv4.1
    sudo crm configure primitive fs_QAS_ERS Filesystem device='10.1.0.4:/usrsapqas/usrsapQASers' directory='/usr/sap/QAS/ERS01' fstype='nfs' options='sec=sys,nfsvers=4.1' \
      op start timeout=60s interval=0 \
      op stop timeout=60s interval=0 \
      op monitor interval=20s timeout=105s
    
    sudo crm configure primitive vip_QAS_ERS IPaddr2 \
      params ip=10.1.1.21 \
      op monitor interval=10 timeout=20
    
    sudo crm configure primitive nc_QAS_ERS azure-lb port=62101 \
      op monitor timeout=20s interval=10
    
    sudo crm configure group g-QAS_ERS fs_QAS_ERS nc_QAS_ERS vip_QAS_ERS
    

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

    sudo crm_mon -r
    
    # Node anftstsapcl1: standby
    # Online: [ anftstsapcl2 ]
    # 
    # Full list of resources:
    #
    # stonith-sbd     (stonith:external/sbd): 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_ERS
    #      fs_QAS_ERS (ocf::heartbeat:Filesystem):    Started anftstsapcl2
    #      nc_QAS_ERS (ocf::heartbeat:azure-lb):      Started anftstsapcl2
    #      vip_QAS_ERS  (ocf::heartbeat:IPaddr2):     Started anftstsapcl2
    
  4. [2] SAP NetWeaver ERS 설치

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

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

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=virtual_hostname
    

    참고 항목

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

    설치가 /usr/sap/QAS/ERS 01에서 하위 폴더를 만들지 못하는 경우 ERS01 폴더의 소유자 및 그룹을 설정하고 다시 시도합니다.

    chown qasadm /usr/sap/QAS/ERS01
    chgrp sapsys /usr/sap/QAS/ERS01
    
  5. [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 following lines
      service/halib = $(DIR_CT_RUN)/saphascriptco.so
      service/halib_cluster_connector = /usr/bin/sap_suse_cluster_connector
      
      # 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)
      
      # Add the following lines
      service/halib = $(DIR_CT_RUN)/saphascriptco.so
      service/halib_cluster_connector = /usr/bin/sap_suse_cluster_connector
      
      # remove Autostart from ERS profile
      # Autostart = 1
      
  6. [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
    
  7. [A] 설치 후 SAP 사용자 구성

    # Add sidadm to the haclient group
    sudo usermod -aG haclient qasadm
    
  8. [1] 파일에 ASCS 및 ERS SAP 서비스 sapservice 추가

    두 번째 노드에 ASCS 서비스 항목을 추가하고 ERS 서비스 항목을 첫 번째 노드에 복사합니다.

    cat /usr/sap/sapservices | grep ASCS00 | sudo ssh anftstsapcl2 "cat >>/usr/sap/sapservices"
    sudo ssh anftstsapcl2 "cat /usr/sap/sapservices" | grep ERS01 | sudo tee -a /usr/sap/sapservices
    
  9. [1] SAP 클러스터 리소스를 만듭니다.

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

    sudo crm configure property maintenance-mode="true"
    
    # If using NFSv3
    sudo crm configure primitive rsc_sap_QAS_ASCS00 SAPInstance \
        operations \$id=rsc_sap_QAS_ASCS00-operations \
        op monitor interval=11 timeout=60 on-fail=restart \
        params InstanceName=QAS_ASCS00_anftstsapvh START_PROFILE="/sapmnt/QAS/profile/QAS_ASCS00_anftstsapvh" \
        AUTOMATIC_RECOVER=false \
        meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10
    
    # If using NFSv4.1
    sudo crm configure primitive rsc_sap_QAS_ASCS00 SAPInstance \
        operations \$id=rsc_sap_QAS_ASCS00-operations \
        op monitor interval=11 timeout=105 on-fail=restart \
        params InstanceName=QAS_ASCS00_anftstsapvh START_PROFILE="/sapmnt/QAS/profile/QAS_ASCS00_anftstsapvh" \
        AUTOMATIC_RECOVER=false \
        meta resource-stickiness=5000 failure-timeout=105 migration-threshold=1 priority=10
    
    # If using NFSv3   
    sudo crm configure primitive rsc_sap_QAS_ERS01 SAPInstance \
        operations \$id=rsc_sap_QAS_ERS01-operations \
        op monitor interval=11 timeout=60 on-fail=restart \
        params InstanceName=QAS_ERS01_anftstsapers START_PROFILE="/sapmnt/QAS/profile/QAS_ERS01_anftstsapers" AUTOMATIC_RECOVER=false IS_ERS=true \
        meta priority=1000
    
    # If using NFSv4.1
    sudo crm configure primitive rsc_sap_QAS_ERS01 SAPInstance \
        operations \$id=rsc_sap_QAS_ERS01-operations \
        op monitor interval=11 timeout=105 on-fail=restart \
        params InstanceName=QAS_ERS01_anftstsapers START_PROFILE="/sapmnt/QAS/profile/QAS_ERS01_anftstsapers" AUTOMATIC_RECOVER=false IS_ERS=true \
        meta priority=1000
    
    sudo crm configure modgroup g-QAS_ASCS add rsc_sap_QAS_ASCS00
    sudo crm configure modgroup g-QAS_ERS add rsc_sap_QAS_ERS01
    
    sudo crm configure colocation col_sap_QAS_no_both -5000: g-QAS_ERS g-QAS_ASCS
    sudo crm configure location loc_sap_QAS_failover_to_ers rsc_sap_QAS_ASCS00 rule 2000: runs_ers_QAS eq 1
    sudo crm configure order ord_sap_QAS_first_start_ascs Optional: rsc_sap_QAS_ASCS00:start rsc_sap_QAS_ERS01:stop symmetrical=false
    
    sudo crm_attribute --delete --name priority-fencing-delay
    
    sudo crm node online anftstsapcl1
    sudo crm configure property maintenance-mode="false"
    

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

참고 항목

NFSv4.1을 사용할 때 권장되는 더 높은 시간 제한은 NFSv4.1 임대 갱신과 관련된 프로토콜별 일시 중지로 인해 필요합니다. 자세한 내용은 NetApp 모범 사례의 NFS를 참조 하세요.

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

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

sudo crm_mon -r
  
# Full list of resources:
#
# stonith-sbd     (stonith:external/sbd): Started anftstsapcl2
#  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
#      rsc_sap_QAS_ASCS00 (ocf::heartbeat:SAPInstance):   Started anftstsapcl1
#  Resource Group: g-QAS_ERS
#      fs_QAS_ERS (ocf::heartbeat:Filesystem):    Started anftstsapcl2
#      nc_QAS_ERS (ocf::heartbeat:azure-lb):      Started anftstsapcl2
#      vip_QAS_ERS        (ocf::heartbeat:IPaddr2):       Started anftstsapcl2
#      rsc_sap_QAS_ERS01  (ocf::heartbeat:SAPInstance):   Started anftstsapcl2

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

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

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

다음 항목에는 PAS 및 AAS, [P] 모두에 적용되는 [A] 접두사로, PAS 또는 [S]에만 적용되며 AAS에만 적용됩니다.

  1. [A] 운영 체제 구성

    더티 캐시의 크기를 줄입니다. 자세한 내용은 RAM이 큰 SLES 11/12 서버에서 낮은 쓰기 성능을 참조하세요.

    sudo vi /etc/sysctl.conf
    
    # Change/set the following settings
    vm.dirty_bytes = 629145600
    vm.dirty_background_bytes = 314572800
    
  2. [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/SCS
    10.1.1.20 anftstsapvh
    # IP address of the load balancer frontend configuration for SAP NetWeaver ERS
    10.1.1.21 anftstsapers
    # IP address of all application servers
    10.1.1.15 anftstsapa01
    10.1.1.16 anftstsapa02
    
  3. [A] sapmnt 디렉터리 만들기

    sudo mkdir -p /sapmnt/QAS
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/QAS
    sudo chattr +i /usr/sap/trans
    
  4. [P] PAS 디렉터리 만들기

    sudo mkdir -p /usr/sap/QAS/D02
    sudo chattr +i /usr/sap/QAS/D02
    
  5. [S] AAS 디렉터리 만들기

    sudo mkdir -p /usr/sap/QAS/D03
    sudo chattr +i /usr/sap/QAS/D03
    
  6. [P] PAS에서 autofs 구성

    sudo vi /etc/auto.master
    
    # Add the following line to the file, save and exit
    /- /etc/auto.direct
    

    NFSv3을 사용하는 경우 다음을 사용하여 새 파일을 만듭니다.

    sudo vi /etc/auto.direct
    
    # Add the following lines to the file, save and exit
    /sapmnt/QAS -nfsvers=3,nobind 10.1.0.4:/usrsapqas/sapmntQAS
    /usr/sap/trans -nfsvers=3,nobind 10.1.0.4:/trans
    /usr/sap/QAS/D02 -nfsvers=3,nobind 10.1.0.4:/usrsapqas/usrsapQASpas
    

    NFSv4.1을 사용하는 경우 다음을 사용하여 새 파일을 만듭니다.

    sudo vi /etc/auto.direct
    # Add the following lines to the file, save and exit
    /sapmnt/QAS -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/usrsapqas/sapmntQAS
    /usr/sap/trans -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/trans
    /usr/sap/QAS/D02 -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/usrsapqas/usrsapQASpas
    

    새 공유를 탑재하려면 다시 시작 autofs

    sudo systemctl enable autofs
    sudo service autofs restart
    
  7. [P] AAS에서 구성 autofs

    sudo vi /etc/auto.master
    
    # Add the following line to the file, save and exit
    /- /etc/auto.direct
    

    NFSv3을 사용하는 경우 다음을 사용하여 새 파일을 만듭니다.

    sudo vi /etc/auto.direct
    
    # Add the following lines to the file, save and exit
    /sapmnt/QAS -nfsvers=3,nobind 10.1.0.4:/usrsapqas/sapmntQAS
    /usr/sap/trans -nfsvers=3,nobind 10.1.0.4:/trans
    /usr/sap/QAS/D03 -nfsvers=3,nobind 10.1.0.4:/usrsapqas/usrsapQASaas
    

    NFSv4.1을 사용하는 경우 다음을 사용하여 새 파일을 만듭니다.

    sudo vi /etc/auto.direct
    
    # Add the following lines to the file, save and exit
    /sapmnt/QAS -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/usrsapqas/sapmntQAS
    /usr/sap/trans -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/trans
    /usr/sap/QAS/D03 -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/usrsapqas/usrsapQASaas
    

    새 공유를 탑재하려면 다시 시작 autofs

    sudo systemctl enable autofs
    sudo service autofs restart
    
  8. [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를 설치하는 방법에 대한 자세한 내용은 Azure VM(Virtual Machines)에서 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. [A] 애플리케이션 서버 준비. 위에 있는 SAP NetWeaver 애플리케이션 서버 준비 챕터의 단계에 따라 애플리케이션 서버를 준비합니다.

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

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

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

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

    다음 명령을 실행하여 항목을 나열합니다.

    hdbuserstore List
    

    이 경우 모든 항목을 나열해야 하며 다음과 비슷합니다.

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

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

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

클러스터 설정 테스트

Pacemaker 클러스터를 철저히 테스트합니다. 일반적인 장애 조치(failover) 테스트를 실행합니다.

다음 단계