IBM Cloud Docs
Red Hat Enterprise Linux 고가용성 애드온 클러스터에서 SAP S/4HANA (ASCS 및 ERS)에 대한 고가용성 구성하기

Red Hat Enterprise Linux 고가용성 애드온 클러스터에서 SAP S/4HANA (ASCS 및 ERS)에 대한 고가용성 구성하기

다음 정보는 Red Hat Enterprise Linux (RHEL) 고가용성 애드온 클러스터에서 ABAP SAP 중앙 서비스(ASCS) 및 대기열 복제 서버(ERS) 의 구성에 대해 설명합니다. 클러스터는 IBM® Power® Virtual Server 클러스터 노드로.

이 구성 예는 2세대 독립형 대기열 서버 에 적용됩니다 ENSA2.

SAP S/4HANA 1809의 출시와 함께, ENSA2 가 기본적으로 설치되며, 2노드 또는 다중 노드 클러스터에서 구성할 수 있습니다. 이 예제에서는 ENSA2 2노드 RHEL HA Add-On 클러스터의 설정. 2노드 클러스터에서 ASCS 서비스가 실패하면, ERS 인스턴스가 실행 중인 노드에서 다시 시작됩니다. SAP 의 잠금 항목은 ERS 인스턴스의 잠금 테이블 복사본에서 복원됩니다. 관리자가 실패한 클러스터 노드를 활성화하면, ERS 인스턴스는 다른 노드(반대 배치)로 이동하여 락 테이블의 사본을 보호합니다.

ASCERS를 위해 2노드 클러스터 외부의 가상 서버 인스턴스에 SAP 데이터베이스 인스턴스와 다른 SAP 애플리케이션 서버 인스턴스를 설치하는 것이 좋습니다.

시작하기 전에

SAP 애플리케이션을 위한 고가용성 구현하기(IBM Power Virtual Server 참조)에 나와 있는 일반 요구 사항, 제품 설명서, 지원 문서 및 SAP 참고 사항을 검토하세요.

전제조건

  • 이 정보는 클러스터 노드에서 액세스할 수 있는 공유 가능한 저장소 볼륨을 사용하는 설정에 대해 설명합니다. 특정 파일 시스템은 공유 가능한 저장소 볼륨에 생성되어 두 클러스터 노드에 마운트될 수 있습니다. 이 설정은 두 인스턴스 디렉토리에 모두 적용됩니다.

    • /usr/sap/<SID>/ASCS<INSTNO> aSC의 인스턴스.
    • /usr/sap/<SID>/ERS<INSTNO> eRS 인스턴스의

    이 파일 시스템에 대해 생성된 저장 용량이 두 가상 서버 인스턴스에 모두 연결되어 있는지 확인하십시오. SAP 의 인스턴스 설치와 RHEL HA Add-On 클러스터 구성 중에 각 인스턴스 디렉터리는 적절한 노드에 마운트되어야 합니다. HA-LVM은 두 인스턴스 디렉토리 각각이 한 번에 하나의 노드에만 마운트되도록 합니다.

    NFS 와 같은 인스턴스 디렉토리에 대한 다른 저장소 설정도 가능합니다. 파일 저장 또는 클러스터 파일 시스템 자원 생성을 위한 스토리지 설정 단계는 이 문서에서 다루지 않습니다.

  • ASCSERS 인스턴스의 가상 호스트 이름은 SAP ABAP 플랫폼 서버의 호스트 이름 에 설명된 요구 사항을 충족해야 합니다. SAP 의 가상 IP 주소가 네트워크 어댑터에 할당되어 있고 네트워크에서 통신할 수 있는지 확인하십시오.

  • SAP 애플리케이션 서버 인스턴스는 읽기 및 쓰기 권한이 있는 공통 공유 파일 시스템 sapmnt /sapmnt/<SID>saptrans /usr/sap/trans 와 같은 다른 공유 파일 시스템이 필요합니다. 이러한 파일 시스템은 일반적으로 외부 파일 서버( NFS )에서 제공됩니다. NFS 서버는 가용성이 높아야 하며, ENSA2 클러스터.

    Red Hat 고가용성 클러스터에서 액티브-패시브 NFS 서버 구성에서는 Power Virtual Server 의 가상 서버 인스턴스를 사용하여 Red Hat Enterprise Linux 8이 설치된 RHEL HA 애드온 클러스터에서 액티브-패시브 NFS 서버를 구현하는 방법을 설명합니다. NFS 활성-수동(active-passive) RHEL HA Add-On 클러스터 서버는 단일 Power Virtual Server 작업 공간에 배치해야 합니다.

ASC와 ERS 인스턴스를 설치할 노드 준비

SAP 다음 정보는 노드 준비 방법을 설명합니다. 노드 준비 방법은 노드에 ASCSERS 인스턴스를 설치하는 데 사용됩니다.

환경 변수 준비하기

설정을 단순화하기 위해 두 클러스터 노드에서 사용자 root 에 대해 다음 환경 변수를 준비합니다. 이 환경 변수는 이 정보의 이후 운영 체제 명령과 함께 사용됩니다.

두 노드 모두에서 다음 환경 변수를 설정합니다.

# General settings
export SID=<SID>                   # SAP System ID (uppercase)
export sid=<sid>                   # SAP System ID (lowercase)

# ASCS instance
export ASCS_INSTNO=<INSTNO>        # ASCS instance number
export ASCS_VH=<virtual hostname>  # ASCS virtual hostname
export ASCS_IP=<IP address>        # ASCS virtual IP address
export ASCS_VG=<vg name>           # ASCS volume group name
export ASCS_LV=<lv name>           # ASCS logical volume name

# ERS instance
export ERS_INSTNO=<INSTNO>         # ERS instance number
export ERS_VH=<virtual hostname>   # ERS virtual hostname
export ERS_IP=<IP address>         # ERS virtual IP address
export ERS_VG=<vg name>            # ERS volume group name
export ERS_LV=<lv name>            # ERS logical volume name

# NFS settings
export NFS_SERVER="NFS server"           # Hostname or IP address of the highly available NFS server
export NFS_SHARE="NFS server directory"  # Exported file system directory on the NFS server
export NFS_OPTIONS="rw,sec=sys"          # Sample NFS client mount options

볼륨 그룹과 그 내용을 나타내는 논리 볼륨에는 의미 있는 이름을 사용하는 것이 좋습니다. 예를 들어, 이름에 SIDASCS 또는 ER을 포함합니다. 볼륨 그룹이나 논리 볼륨 이름에 하이픈을 사용하지 마십시오.

  • s01ascsvg 그리고 s01ascslv
  • s01ersvg 그리고 s01erslv

가상 IP 주소 할당

가상 IP 주소 예약에 있는 정보를 검토하십시오.

SAP 인스턴스의 가상 IP 주소가 있는지 확인하십시오. 그렇지 않으면, IP 주소를 할당할 올바른 네트워크 어댑터를 식별해야 합니다.

두 노드에서 현재 활성화된 IP 주소 목록을 확인하십시오.

ip -o -f inet address show | '/scope global/ {print $2, $4}'

이전 명령의 샘플 출력.

# ip -o -f inet address show | awk '/scope global/ {print $2, $4}'
env2 10.51.0.66/24
env3 10.52.0.41/24
env4 10.111.1.28/24

네트워크 어댑터의 장치 이름이 첫 번째 열에 나타납니다. 두 번째 열에는 활성 IP 주소와 네트워크 마스크를 위해 예약된 비트 수가 슬래시로 구분되어 나열되어 있습니다.

SAP 의 가상 IP 주소가 존재하지 않는다면, 다른 가상 서버 인스턴스에 잘못 설정되어 있지 않은지 확인하십시오.

NODE1 에서 다음 명령을 실행합니다.

ping -c 3 ${ASCS_VH}

샘플 출력:

# ping -c 2 cl-sap-scs
PING cl-sap-scs (10.111.1.248) 56(84) bytes of data.
From cl-sap-1.tst.ibm.com (10.111.1.28) icmp_seq=1 Destination Host Unreachable
From cl-sap-1.tst.ibm.com (10.111.1.28) icmp_seq=2 Destination Host Unreachable

--- cl-sap-ers ping statistics ---
2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 2112ms
pipe 3

ping 의 출력이 Destination Host Unreachable 로 표시되면, IP 주소를 사용할 수 있는 상태이고, 가상 서버 인스턴스에 IP 별칭을 할당할 수 있습니다. IP 주소의 서브넷과 일치하는 네트워크 어댑터의 올바른 장치 이름 env를 사용하십시오.

명령 예 NODE1:

ip addr add ${ASCS_IP} dev env4

명령 예 NODE2:

ip addr add ${ERS_IP} dev env4

특정 네트워크 구성에 따라 네트워크 어댑터의 장치 이름이 다를 수 있습니다.

SAP 를 설치하려면 IP 주소가 필요하며, 이 IP 주소는 수동으로 설정됩니다. 나중에 가상 IP 주소는 Red Hat 의 HA 클러스터 애드온에 의해 제어됩니다.

볼륨 그룹, 논리 볼륨, 공유 파일 시스템 준비

공유 저장소는 ENSA2 클러스터. ASCSERS는 두 노드에서 실행될 수 있어야 하며, 이들의 런타임 환경은 공유 스토리지 볼륨에 저장됩니다. 모든 클러스터 노드는 공유 스토리지 볼륨에 액세스해야 하지만, 볼륨에 대한 독점적인 읽기 및 쓰기 액세스 권한을 가진 노드는 하나뿐입니다.

논리 볼륨 관리자 고가용성 설정 준비하기

/etc/lvm/lvm.conf 파일을 편집하여 볼륨 그룹에 시스템 ID를 포함시키십시오.

두 노드 모두에서, lvm.conf 파일을 편집합니다.

vi /etc/lvm/lvm.conf

system_id_source 매개 변수를 검색하고 그 값을 uname 로 변경하십시오.

etc/lvm/lvm.confsystem_id_source 매개변수에 대한 샘플 설정.

system_id_source = "uname"

공유 저장소 볼륨의 월드 와이드 이름 식별

공유 볼륨 그룹의 일부인 각 저장 볼륨에 대한 월드 와이드 이름(WWN)을 결정합니다.

  1. IBM Cloud® 에 로그인하여 Power Virtual Server 의 스토리지 볼륨 보기로 이동합니다.

  2. 작업 공간을 선택합니다.

  3. 저장 용량 목록에서 용량 접두사를 필터링하고, ASCSERS 인스턴스에 해당하는 모든 용량의 월드 와이드 네임을 식별합니다. 월드 와이드 네임 은 32자리 16진수입니다.

    해당 볼륨의 공유 가능 속성이 켜짐으로 설정되어 있는지 확인하십시오.

가상 서버 인스턴스 보기 에서 클러스터의 두 가상 서버 인스턴스로 이동합니다. ASCERS의 적용 범위에 속하는 모든 볼륨이 두 가상 서버 인스턴스에 연결되어 있는지 확인하십시오.

새로운 저장 용량을 가상 서버 인스턴스에 연결할 때, SCSI 버스를 다시 스캔하여 새로운 용량을 감지하도록 하십시오. 그 다음, 가상 서버 인스턴스의 다중 경로 구성을 업데이트합니다.

새로운 저장 용량 첨부 파일이 있는 노드에서 다음 명령을 실행합니다.

rescan-scsi-bus.sh && sleep 10 && multipathd reconfigure

두 클러스터 노드에 로그인하고 WWN을 사용자 root 의 환경 변수에 추가합니다.

pvs --all 명령을 사용하여 적절한 WWN 값을 결정하십시오.

NODE1 에서 환경 변수 ASCS_PVID 을 내보냅니다.

export ASCS_PVID=3<WWN>  # WWN of shared storage volume for ASCS

NODE2 에서 환경 변수 ERS_PVID 을 내보냅니다.

export ERS_PVID=3<WWN>   # WWN of shared storage volume for ERS

환경 변수를 설정할 때는 반드시 소문자 16진수를 사용해야 합니다.

물리적 볼륨 생성

NODE1 에서 다음 명령을 실행합니다.

pvcreate /dev/mapper/${ASCS_PVID}

샘플 출력:

# pvcreate /dev/mapper/${ASCS_PVID}
  Physical volume "/dev/mapper/360050768108103357000000000002ddc" successfully created.

NODE2 에서 다음 명령을 실행합니다.

pvcreate /dev/mapper/${ERS_PVID}

샘플 출력:

# pvcreate /dev/mapper/${ERS_PVID}
  Physical volume "/dev/mapper/360050768108103357000000000002e31" successfully created.

볼륨 그룹 만들기

ASC에 대한 볼륨 그룹을 만듭니다.

NODE1 에서 다음 명령을 실행합니다.

vgcreate ${ASCS_VG} /dev/mapper/${ASCS_PVID}

시스템 ID가 설정되어 있는지 확인하십시오.

vgs -o+systemid

샘플 출력:

# vgs -o+systemid
  VG          #PV #LV #SN Attr   VSize   VFree   System ID
  s01ascsvg     1   0   0 wz--n- <50.00g <50.00g cl-sap-1

ERS에 대한 볼륨 그룹을 만듭니다.

NODE2 에서 다음 명령을 실행합니다.

vgcreate ${ERS_VG} /dev/mapper/${ERS_PVID}

시스템 ID가 설정되어 있는지 확인하십시오.

샘플 출력:

# vgs -o+systemid
  VG          #PV #LV #SN Attr   VSize   VFree   System ID
  s01ersvg     1   0   0 wz--n- <50.00g <50.00g cl-sap-2

논리 볼륨과 파일 시스템 만들기

ASC에 대한 논리 볼륨을 생성하고 XFS 파일 시스템으로 포맷합니다.

NODE1 에서 다음 명령을 실행합니다.

lvcreate -l 100%FREE -n ${ASCS_LV} ${ASCS_VG}
mkfs.xfs /dev/${ASCS_VG}/${ASCS_LV}

ERS를 위한 논리 볼륨을 생성하고 XFS 파일 시스템으로 포맷합니다.

NODE2 에서 다음 명령을 실행합니다.

lvcreate -l 100%FREE -n ${ERS_LV} ${ERS_VG}
mkfs.xfs /dev/${ERS_VG}/${ERS_LV}

볼륨 그룹이 여러 클러스터 노드에서 활성화되지 않도록 확인

클러스터로 관리되는 볼륨 그룹은 시작 시 자동으로 활성화되지 않아야 합니다.

RHEL 8.5 이상에서는 vgcreate 명령에 --setautoactivation n 플래그를 지정하여 볼륨 그룹을 생성할 때 자동 활성화를 비활성화하십시오.

두 노드 모두에서, /etc/lvm/lvm.conf 파일을 편집하고 auto_activation_volume_list 항목을 수정하여 자동 활성화를 특정 볼륨 그룹으로 제한하십시오.

vi /etc/lvm/lvm.conf

auto_activation_volume_list 매개변수를 찾아서 NFS 클러스터에 대해 정의한 볼륨 그룹을 제외한 모든 볼륨 그룹을 이 목록에 추가합니다.

/etc/lvm/lvm.conf 에서 ' auto_activation_volume_list ' 항목을 설정하는 방법에 대한 예제를 보려면 다음을 참조하십시오

auto_activation_volume_list = [ "rhel_root" ]

클러스터에서 제어하는 볼륨 그룹을 부트 이미지가 활성화하지 않도록 하려면 initramfs 부트 이미지를 다시 빌드합니다.

두 노드에서 다음 명령을 실행합니다.

dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r)

두 노드를 재부팅하십시오.

SAP 설치용 파일 시스템 마운트

볼륨 그룹을 활성화하고 SAP 의 인스턴스 파일 시스템을 마운트합니다.

NODE1 (ASCS )에서 다음 명령을 실행합니다.

vgchange -a y ${ASCS_VG}
mkdir -p /usr/sap/${SID}/ASCS${ASCS_INSTNO}
mount /dev/${ASCS_VG}/${ASCS_LV} /usr/sap/${SID}/ASCS${ASCS_INSTNO}

NODE2 (ERS) 에서 다음 명령을 실행합니다.

vgchange -a y ${ERS_VG}
mkdir -p /usr/sap/${SID}/ERS${ERS_INSTNO}
mount /dev/${ERS_VG}/${ERS_LV} /usr/sap/${SID}/ERS${ERS_INSTNO}

NFS 파일 시스템 설치

두 노드 모두에서, NFS 파일 시스템 /sapmnt/usr/sap/trans 이 마운트되어 있는지 확인하십시오.

mount | grep nfs

다른 노드에 ASCS 및 ERS 마운트 포인트 생성

인스턴스 파일 시스템의 마운트 포인트를 생성하고 소유권을 조정합니다.

NODE1 에서 다음 명령을 실행합니다.

mkdir /usr/sap/${SID}/ERS${ERS_INSTNO}
chown ${sid}adm:sapsys /usr/sap/${SID}/ERS${ERS_INSTNO}

NODE2 에서 다음 명령을 실행합니다.

mkdir /usr/sap/${SID}/ASCS${ASCS_INSTNO}
chown ${sid}adm:sapsys /usr/sap/${SID}/ASCS${ASCS_INSTNO}

ASC와 ERS 인스턴스 설치

SWPM( SAP Software Provisioning Manager )을 사용하여 두 인스턴스를 설치하십시오.

  • 클러스터 노드에 SAP 인스턴스를 설치합니다.

    • NODE1 에 ASCS 인 스턴스를 설치하려면 ASCS의 가상 IP 주소와 연결된 가상 호스트 이름 ${ASCS_VH} 을 사용하십시오
    <swpm>/sapinst SAPINST_USE_HOSTNAME=${ASCS_VH}
    
    • ERS 가상 IP 주소 와 연결된 가상 호스트 이름 ${ERS_VH} 를 사용하여 NODE2 에 ERS 인스턴스를 설치합니다
    <swpm>/sapinst SAPINST_USE_HOSTNAME=${ERS_VH}
    
  • 클러스터 외부에 다른 모든 SAP 애플리케이션 인스턴스를 설치하십시오.

RHEL HA 애드온 클러스터 설치 및 설정

Red Hat Enterprise Linux 고가용성 애드온 클러스터 구현에 따라 RHEL HA 애드온 클러스터를 설치하고 설정합니다.

펜싱 장치 만들기에 설명된 대로 펜싱을 구성하고 테스트합니다.

클러스터 통합을 위한 ASCS 및 ERS 인스턴스 준비하기

다음 단계에 따라 클러스터 통합을 위해 SAP 인스턴스를 준비합니다.

ASCS 및 ERS에 대한 SAP 인스턴스 에이전트 자동 시작 비활성화하기

재부팅 후 ASCSERS 인스턴스 모두에 대해 sapstartsrv 인스턴스 에이전트의 자동 시작을 비활성화해야 합니다.

SAP 인스턴스 에이전트 통합 유형 확인

SAP 인스턴스 에이전트 sapstartsrv 의 최신 버전은 Linux 에서 기본 systemd 지원을 제공합니다. 자세한 내용은 SAP 참고 사항에 나와 있는 SAP 참고 사항을 참조하세요.

두 노드에서 /usr/sap/sapservices 파일의 내용을 확인합니다.

cat /usr/sap/sapservices

systemd 형식에서는 줄이 systemctl 항목으로 시작됩니다.

예:

systemctl --no-ask-password start SAPS01_01 # sapstartsrv pf=/usr/sap/S01/SYS/profile/S01_ASCS01_cl-sap-scs

ASCS 및 ERS의 항목이 systemd 형식인 경우 ASCS 및 ERS SAP 인스턴스의 시스템 서비스 비활성화하기의 단계를 계속 진행합니다.

classic 형식에서는 줄이 LD_LIBRARY_PATH 항목으로 시작됩니다.

예:

LD_LIBRARY_PATH=/usr/sap/S01/ASCS01/exe:$LD_LIBRARY_PATH;export LD_LIBRARY_PATH;/usr/sap/S01/ASCS01/exe/sapstartsrv pf=/usr/sap/S01/SYS/profile/S01_ASCS01_cl-sap-scs -D -u s01adm

ASCS 및 ERS의 항목이 classic 형식인 경우 /usr/sap/sapservices 파일을 수정하여 재부팅 후 ASCSERS 인스턴스 모두에 대해 sapstartsrv 인스턴스 에이전트가 자동으로 시작되지 않도록 합니다.

두 노드 모두에서 SAP 서비스 파일에서 ASCS와 ERS의 sapstartsrv 항목을 제거하거나 주석 처리합니다.

sed -i -e 's/^LD_LIBRARY_PATH=/#LD_LIBRARY_PATH=/' /usr/sap/sapservices

예:

#LD_LIBRARY_PATH=/usr/sap/S01/ASCS01/exe:$LD_LIBRARY_PATH;export LD_LIBRARY_PATH;/usr/sap/S01/ASCS01/exe/sapstartsrv pf=/usr/sap/S01/SYS/profile/S01_ASCS01_cl-sap-scs -D -u s01adm

영구 라이선스 키 설치(SAP )로 진행합니다.

ASCS 및 ERS 인스턴스의 시스템 서비스 비활성화하기

두 노드 모두에서 ASCS에 대한 인스턴스 에이전트를 비활성화합니다.

systemctl disable --now SAP${SID}_${ASCS_INSTNO}.service

두 노드 모두에서 ERS에 대한 인스턴스 에이전트를 비활성화합니다.

systemctl disable --now SAP${SID}_${ERS_INSTNO}.service

충돌한 ASCS 또는 ERS 인스턴스의 systemd 재시작 사용 안 함

Systemd 에는 크래시된 서비스를 다시 시작하는 자체 메커니즘이 있습니다. 고가용성 설정에서는 HA 클러스터만 SAP ASCS 및 ERS 인스턴스를 관리합니다. 두 클러스터 노드에 systemd drop-in files 을 생성하여 systemd 이 충돌한 SAP 인스턴스를 다시 시작하지 못하도록 합니다.

두 노드에서 드롭인 파일의 디렉터리를 만듭니다.

mkdir /etc/systemd/system/SAP${SID}_${ASCS_INSTNO}.service.d
mkdir /etc/systemd/system/SAP${SID}_${ERS_INSTNO}.service.d

두 노드 모두에서 ASCS 및 ERS용 드롭인 파일을 만듭니다.

cat >> /etc/systemd/system/SAP${SID}_${ASCS_INSTNO}.service.d/HA.conf << EOT
[Service]
Restart=no
EOT
cat >> /etc/systemd/system/SAP${SID}_${ERS_INSTNO}.service.d/HA.conf << EOT
[Service]
Restart=no
EOT

Restart=no [Service] 섹션에 있어야 하며 모든 클러스터 노드에서 드롭인 파일을 사용할 수 있어야 합니다.

두 노드 모두에서 systemd 단위 파일을 다시 로드합니다.

systemctl daemon-reload

영구 SAP 라이선스 키 설치

SAP ASCS 인스턴스가 Power Virtual Server 인스턴스에 설치되면 SAP 라이선스 메커니즘은 파티션 UUID에 의존합니다. 자세한 내용은 SAP 참고 2879336 - 고유 ID 기반 하드웨어 키를 참조하세요.

두 노드에서 사용자 <sid>adm 로 다음 명령을 실행하여 노드의 HARDWARE KEY 을 식별합니다.

sudo -i -u ${sid}adm -- sh -c 'saplikey -get'

샘플 출력:

$ sudo -i -u ${sid}adm -- sh -c 'saplikey -get'

saplikey: HARDWARE KEY = H1428224519

각 노드의 HARDWARE KEY 을 참고하세요.

두 개의 서로 다른 SAP 라이선스 키를 요청하려면 두 개의 하드웨어 키가 모두 필요합니다. SAP 라이선스 키 요청에 대한 자세한 내용은 다음 SAP 참고 사항을 확인하세요:

SAP 리소스 에이전트 설치

필요한 소프트웨어 패키지를 설치합니다. resource-agents-sap 에는 SAP 인스턴스를 관리하기 위한 SAPInstance 클러스터 리소스 에이전트가 포함되어 있습니다.

SAP 인스턴스에 대해 sap_cluster_connector 가 구성되지 않은 경우, RHEL HA 애드온 클러스터는 인스턴스의 모든 상태 변경을 문제로 간주합니다. sapcontrol 같은 다른 SAP 도구를 사용하여 인스턴스를 관리하는 경우 sap_cluster_connector 는 클러스터 내에서 실행 중인 SAP 인스턴스를 제어할 수 있는 권한을 부여합니다. SAP 인스턴스가 클러스터 도구로만 관리되는 경우, 다음과 같은 구현은 sap_cluster_connector 는 필요하지 않습니다.

리소스 에이전트용 패키지와 SAP 클러스터 커넥터 라이브러리를 설치합니다. 자세한 내용은 RHEL HA 애드온으로 관리되는 SAP ABAP 애플리케이션 서버 인스턴스에 대해 SAP HA 인터페이스 활성화 방법을 참조하십시오

두 노드에서 다음 명령을 실행합니다.

필요한 경우 subscription-manager 을 사용하여 SAP NetWeaver 리포지토리를 활성화합니다. SAP 구독 및 리포지토리용 RHEL 문서에서는 필요한 리포지토리를 사용 설정하는 방법에 대해 설명합니다.

subscription-manager repos --enable="rhel-8-for-ppc64le-sap-netweaver-e4s-rpms"

필수 패키지를 설치하십시오.

dnf install -y resource-agents-sap  sap-cluster-connector

SAP 클러스터 커넥터 구성

haclient 그룹에 ${sid}adm 사용자를 추가합니다.

두 노드에서 다음 명령을 실행합니다.

usermod -a -G haclient ${sid}adm

SAP 인스턴스 프로필 조정하기

클러스터 외부의 SAP 도구로 관리되는 모든 SAP 인스턴스의 시작 프로필을 수정합니다. ASCSERS 인스턴스는 모두 RHEL HA 애드온 클러스터와 해당 리소스 에이전트로 제어할 수 있습니다. SAP 인스턴스 프로필을 조정하여 인스턴스 프로세스의 자동 재시작을 방지합니다.

NODE1 에서 SAP 프로필 디렉토리로 이동합니다.

cd /sapmnt/${SID}/profile

ASCSERS의 인스턴스 프로필에서 Restart_Program 의 모든 항목을 Start_Program 으로 변경합니다.

sed -i -e 's/Restart_Program_\([0-9][0-9]\)/Start_Program_\1/' ${SID}_ASCS${ASCS_INSTNO}_${ASCS_VH}
sed -i -e 's/Restart_Program_\([0-9][0-9]\)/Start_Program_\1/' ${SID}_ERS${ERS_INSTNO}_${ERS_VH}

SAP 인스턴스 프로필의 끝에 다음 두 줄을 추가하여 ASCSERS 인스턴스에 대해 sap_cluster_connector 을 구성합니다.

service/halib = $(DIR_EXECUTABLE)/saphascriptco.so
service/halib_cluster_connector = /usr/bin/sap_cluster_connector

ASC와 ERS 클러스터 자원 구성하기

지금까지 다음 사항이 가정됩니다

  • RHEL HA 애드온 클러스터가 가상 서버 인스턴스에서 실행되고 있으며, 노드의 펜싱이 테스트되었습니다.
  • SAP 시스템이 실행 중입니다.
    • SAP ASCS가 클러스터의 노드 1에 설치되어 활성화되어 있습니다.
    • SAP ERS가 클러스터의 노드 2에 설치되어 활성화되어 있습니다.
  • 클러스터 통합을 위한 ASCS 및 ERS 인스턴스 준비의 모든 단계가 완료되었습니다.

SAP 클러스터 리소스 구성

복제된 파일 시스템 클러스터 자원을 생성하여 외부 NFS 서버의 SAPMNT 공유를 모든 클러스터 노드에 마운트합니다.

환경 변수 ${NFS_VH} 가 NFS 서버의 가상 호스트 이름으로 설정되어 있는지, ${NFS_OPTIONS} 가 원하는 마운트 옵션으로 설정되어 있는지 확인하십시오.

NODE1 에서 다음 명령을 실행합니다.

pcs resource create fs_sapmnt Filesystem \
    device="${NFS_VH}:/${SID}/sapmnt" \
    directory="/sapmnt/${SID}" \
    fstype='nfs' \
    options="${NFS_OPTIONS}" \
    clone interleave=true

ASC 자원 그룹 구성

ASC의 가상 IP 주소에 대한 리소스를 생성합니다.

NODE1 에서 다음 명령을 실행합니다.

pcs resource create ${sid}_vip_ascs${ASCS_INSTNO} IPaddr2 \
    ip=${ASCS_IP} \
    --group ${sid}_ascs${ASCS_INSTNO}_group

공유 저장소 볼륨에 HA-LVM 파일 시스템을 위한 리소스를 생성하는 이 예제에서는 LVM 활성화와 ASCS의 인스턴스 파일 시스템을 위한 리소스를 생성합니다.

pcs resource create ${sid}_fs_ascs${ASCS_INSTNO}_lvm LVM-activate \
    vgname="${ASCS_VG}" \
    vg_access_mode=system_id \
    --group ${sid}_ascs${ASCS_INSTNO}_group
pcs resource create ${sid}_fs_ascs${ASCS_INSTNO} Filesystem \
    device="/dev/mapper/${ASCS_VG}-${ASCS_LV}" \
    directory=/usr/sap/${SID}/ASCS${ASCS_INSTNO} \
    fstype=xfs \
    --group ${sid}_ascs${ASCS_INSTNO}_group

또 다른 예로, ASCS의 인스턴스 파일 시스템이 HA NFS 서버에 의해 제공되는 경우, 파일 시스템 리소스만 필요합니다. NFS 서버에 따라 환경 변수 ${NFS_VH} 를 정의했는지, 그리고 ASCS 인스턴스의 SAP 설치 과정에서 NFS 루트 디렉토리 아래에 ${SID}/ASCS 디렉토리를 생성했는지 확인하십시오.

pcs resource create ${sid}_fs_ascs${ASCS_INSTNO} Filesystem \
    device="${NFS_VH}:${SID}/ASCS" \
    directory=/usr/sap/${SID}/ASCS${ASCS_INSTNO} \
    fstype=nfs \
    options="${NFS_OPTIONS}" \
    force_unmount=safe \
    op start interval=0 timeout=60 \
    op stop interval=0 timeout=120 \
    --group ${sid}_ascs${ASCS_INSTNO}_group

ASC 인스턴스를 관리하기 위한 리소스를 만듭니다.

pcs resource create ${sid}_ascs${ASCS_INSTNO} SAPInstance \
    InstanceName="${SID}_ASCS${ASCS_INSTNO}_${ASCS_VH}" \
    START_PROFILE=/sapmnt/${SID}/profile/${SID}_ASCS${ASCS_INSTNO}_${ASCS_VH} \
    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 ${sid}_ascs${ASCS_INSTNO}_group

meta resource-stickiness=5000 (리소스 이동 제한) 옵션은 리소스가 시작된 노드에 머물면서 클러스터 내에서 통제할 수 없이 이동하지 않도록 ERS와 함께 페일오버 제약 조건의 균형을 맞추는 데 사용됩니다.

그룹에 리소스 고정 기능을 추가하여 ASCS가 노드에 남아 있도록 하십시오.

pcs resource meta ${sid}_ascs${ASCS_INSTNO}_group \
    resource-stickiness=3000

ERS 리소스 그룹 구성

ERS의 가상 IP 주소에 대한 리소스를 생성합니다.

NODE1 에서 다음 명령을 실행합니다.

pcs resource create ${sid}_vip_ers${ERS_INSTNO} IPaddr2 \
    ip=${ERS_IP} \
    --group ${sid}_ers${ERS_INSTNO}_group

공유 저장소 볼륨에 HA-LVM 파일 시스템용 리소스를 생성하는 예제에서는 LVM 활성화용 리소스와 ERS의 인스턴스 파일 시스템용 리소스를 생성합니다.

pcs resource create ${sid}_fs_ers${ERS_INSTNO}_lvm LVM-activate \
    vgname="${ERS_VG}" \
    vg_access_mode=system_id \
    --group ${sid}_ers${ERS_INSTNO}_group
pcs resource create ${sid}_fs_ers${ERS_INSTNO} Filesystem \
    device="/dev/mapper/${ERS_VG}-${ERS_LV}" \
    directory=/usr/sap/${SID}/ERS${ERS_INSTNO} \
    fstype=xfs \
    --group ${sid}_ers${ERS_INSTNO}_group

ERS의 인스턴스 파일 시스템이 HA NFS 서버에 의해 제공되는 대체 예제에서는 파일 시스템 리소스만 필요합니다. NFS 서버에 따라 환경 변수 ${NFS_VH} 를 정의했는지, 그리고 ERS 인스턴스의 SAP 설치 과정에서 NFS 루트 디렉토리 아래에 ${SID}/ERS 디렉토리를 생성했는지 확인하십시오.

pcs resource create ${sid}_fs_ers${ERS_INSTNO} Filesystem \
    device="${NFS_VH}:${SID}/ERS" \
    directory=/usr/sap/${SID}/ERS${ERS_INSTNO} \
    fstype=nfs \
    options="${NFS_OPTIONS}" \
    force_unmount=safe \
    op start interval=0 timeout=60 \
    op stop interval=0 timeout=120 \
    --group ${sid}_ers${ERS_INSTNO}_group

ERS 인스턴스를 관리하기 위한 리소스를 만듭니다.

pcs resource create ${sid}_ers${ERS_INSTNO} SAPInstance \
    InstanceName="${SID}_ERS${ERS_INSTNO}_${ERS_VH}" \
    START_PROFILE=/sapmnt/${SID}/profile/${SID}_ERS${ERS_INSTNO}_${ERS_VH} \
    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 ${sid}_ers${ERS_INSTNO}_group

클러스터 리소스 제약 조건 구성

콜로케이션 제약 조건은 가능한 한 리소스 그룹 ${sid}_ascs${ASCS_INSTNO}_group${sid}_ers${ERS_INSTNO}_group 이 동일한 노드에서 활성화되지 않도록 합니다. -5000 의 점착성 점수는 하나의 노드만 사용할 수 있는 경우 동일한 노드에서 실행되도록 합니다.

pcs constraint colocation add \
    ${sid}_ers${ERS_INSTNO}_group with ${sid}_ascs${ASCS_INSTNO}_group -- -5000

순서 제약 조건은 리소스 그룹 ${sid}_ascs${ASCS_INSTNO}_group${sid}_ers${ERS_INSTNO}_group 보다 먼저 시작되도록 제어합니다.

pcs constraint order start \
    ${sid}_ascs${ASCS_INSTNO}_group then stop ${sid}_ers${ERS_INSTNO}_group \
    symmetrical=false \
    kind=Optional

다음 두 가지 순서 제약 조건은 파일 시스템 SAPMNT가 리소스 그룹 ${sid}_ascs${ASCS_INSTNO}_group${sid}_ers${ERS_INSTNO}_group 가 시작되기 전에 마운트되도록 합니다.

pcs constraint order fs_sapmnt-clone then ${sid}_ascs${ASCS_INSTNO}_group
pcs constraint order fs_sapmnt-clone then ${sid}_ers${ERS_INSTNO}_group

클러스터 설정이 완료되었습니다.

SAP ENSA2 클러스터 테스트

클러스터 구성이 제대로 작동하는지 확인하기 위해 클러스터 구성을 철저히 테스트하는 것이 중요합니다. 다음 정보는 몇 가지 장애 복구 테스트 시나리오의 예시를 제공하지만, 테스트 시나리오의 전체 목록은 아닙니다.

예를 들어, 각 테스트 케이스의 설명에는 다음과 같은 정보가 포함됩니다.

  • 테스트 중인 구성 요소
  • 테스트 설명
  • 사전 조건 및 장애 조치 테스트 전 초기 상태
  • 시험 절차
  • 예상되는 행동과 결과
  • 복구 프로시저

테스트 1 - ASCS 인스턴스의 실패 테스트

테스트 1 - 설명

NODE1 에서 실행 중인 SAP ASCS 인스턴스의 충돌을 시뮬레이션합니다.

테스트 1 - 전제 조건

  • SAP ENSA2 를 위한 기능적인 2노드 RHEL HA Add-On 클러스터.
  • 두 클러스터 노드가 모두 활성화되어 있습니다.
  • 클러스터는 NODE1 와 NODE2 에서 시작됩니다.
    • 리소스 그룹 ${sid}_ascs${ASCS_INSTNO}_group은 NODE1 에서 활성화되어 있습니다.
    • 리소스 ${sid}_vip_ascs$ {ASCS_INSTNO}, ${sid}_fs_ascs${ASCS_INSTNO}_lvm, ${sid}_fs_ascs$ {ASCS_INSTNO} 및 ${sid}_ascs$ {ASCS_INSTNO} 는 NODE1 의 Started 입니다.
    • 리소스 그룹 ${sid}_ers${ERS_INSTNO}_group은 NODE2 에서 활성화되어 있습니다.
    • 리소스 ${sid}_vip_ers$ {ERS_INSTNO}, ${sid}_fs_ers${ERS_INSTNO}_lvm, ${sid}_fs_ers$ {ERS_INSTNO} 및 ${sid}_ers$ {ERS_INSTNO} 는 NODE2 의 Started 입니다.
  • SAP 의 인스턴스 프로세스 확인:
    • ASCS 인 스턴스는 NODE1 에서 실행되고 있습니다.
    • ERS 인스턴스는 NODE2 에서 실행되고 있습니다.
pcs status

샘플 출력:

# pcs status
Cluster name: SAP_ASCS
Cluster Summary:
  * Stack: corosync
  * Current DC: cl-sap-1 (version 2.0.5-9.el8_4.5-ba59be7122) - partition with quorum
  * Last updated: Tue Feb 14 07:59:16 2023
  * Last change:  Tue Feb 14 05:02:22 2023 by hacluster via crmd on cl-sap-1
  * 2 nodes configured
  * 11 resource instances configured

Node List:
  * Online: [ cl-sap-1 cl-sap-2 ]

Full List of Resources:
  * res_fence_ibm_powervs	(stonith:fence_ibm_powervs):	 Started cl-sap-2
  * Resource Group: s01_ascs01_group:
    * s01_vip_ascs01	(ocf::heartbeat:IPaddr2):	 Started cl-sap-1
    * s01_fs_ascs01_lvm	(ocf::heartbeat:LVM-activate):	 Started cl-sap-1
    * s01_fs_ascs01	(ocf::heartbeat:Filesystem):	 Started cl-sap-1
    * s01_ascs01	(ocf::heartbeat:SAPInstance):	 Started cl-sap-1
  * Resource Group: s01_ers02_group:
    * s01_vip_ers02	(ocf::heartbeat:IPaddr2):	 Started cl-sap-2
    * s01_fs_ers02_lvm	(ocf::heartbeat:LVM-activate):	 Started cl-sap-2
    * s01_fs_ers02	(ocf::heartbeat:Filesystem):	 Started cl-sap-2
    * s01_ers02	(ocf::heartbeat:SAPInstance):	 Started cl-sap-2
  * Clone Set: fs_sapmnt-clone [fs_sapmnt]:
    * Started: [ cl-sap-1 cl-sap-2 ]

Daemon Status:
  corosync: active/disabled
  pacemaker: active/disabled
  pcsd: active/enabled

시험 1 - 시험 절차

SAP 의 ASCS 인스턴스를 중단하려면, 사용자 ${sid}adm 로 enque 서버에 SIGKILL 신호를 보내십시오.

NODE1 에서 enque 서버의 PID를 확인합니다.

pgrep -af "(en|enq).sap"

식별된 프로세스에 SIGKILL 신호를 보냅니다.

샘플 출력:

# pgrep -af "(en|enq).sap"
30186 en.sapS01_ASCS01 pf=/usr/sap/S01/SYS/profile/S01_ASCS01_cl-sap-scs
# kill -9 30186

테스트 1 - 예상되는 동작

  • SAP NODE1 의 ASCS 인스턴스가 충돌합니다.
  • 클러스터가 충돌한 ASCS 인스턴스를 감지합니다.
  • 클러스터는 종속 리소스( NODE1 (가상 IP 주소, 파일 시스템 /usr/sap/${SID}/ASCS${ASCS_INSTNO} 및 LVM 리소스)를 중지하고 NODE2 에서 이를 획득합니다.
  • 클러스터는 NODE2 에서 ASCS를 시작합니다.
  • 클러스터는 NODE2 에서 ERS 인스턴스를 중지합니다.
  • 클러스터는 종속 리소스( NODE1 (가상 IP 주소, 파일 시스템 /usr/sap/${SID}/ERS${ERS_INSTNO} 및 LVM 리소스)를 중지하고 NODE1 에서 이를 획득합니다.
  • 클러스터는 NODE1 에서 ERS를 시작합니다.

몇 초 후에 다음 명령을 사용하여 상태를 확인하십시오.

pcs status

샘플 출력:

# pcs status
Cluster name: SAP_ASCS
Cluster Summary:
  * Stack: corosync
  * Current DC: cl-sap-1 (version 2.0.5-9.el8_4.5-ba59be7122) - partition with quorum
  * Last updated: Tue Feb 14 08:10:18 2023
  * Last change:  Tue Feb 14 05:02:22 2023 by hacluster via crmd on cl-sap-1
  * 2 nodes configured
  * 11 resource instances configured

Node List:
  * Online: [ cl-sap-1 cl-sap-2 ]

Full List of Resources:
  * res_fence_ibm_powervs	(stonith:fence_ibm_powervs):	 Started cl-sap-2
  * Resource Group: s01_ascs01_group:
    * s01_vip_ascs01	(ocf::heartbeat:IPaddr2):	 Started cl-sap-2
    * s01_fs_ascs01_lvm	(ocf::heartbeat:LVM-activate):	 Started cl-sap-2
    * s01_fs_ascs01	(ocf::heartbeat:Filesystem):	 Started cl-sap-2
    * s01_ascs01	(ocf::heartbeat:SAPInstance):	 Started cl-sap-2
  * Resource Group: s01_ers02_group:
    * s01_vip_ers02	(ocf::heartbeat:IPaddr2):	 Started cl-sap-1
    * s01_fs_ers02_lvm	(ocf::heartbeat:LVM-activate):	 Started cl-sap-1
    * s01_fs_ers02	(ocf::heartbeat:Filesystem):	 Started cl-sap-1
    * s01_ers02	(ocf::heartbeat:SAPInstance):	 Started cl-sap-1
  * Clone Set: fs_sapmnt-clone [fs_sapmnt]:
    * Started: [ cl-sap-1 cl-sap-2 ]

Daemon Status:
  corosync: active/disabled
  pacemaker: active/disabled
  pcsd: active/enabled

테스트 2 - ASCS 인스턴스를 실행하는 노드의 실패 테스트

다음 정보를 사용하여 ASCS 인스턴스를 실행하는 노드의 실패 여부를 테스트하십시오.

테스트 2 - 설명

ASCS 인스턴스가 실행되는 노드의 충돌을 시뮬레이션합니다.

테스트 2 - 전제 조건

  • SAP ENSA2 를 위한 기능적인 2노드 RHEL HA Add-On 클러스터.
  • 두 클러스터 노드가 모두 활성화되어 있습니다.
  • 클러스터는 NODE1 와 NODE2 에서 시작됩니다.
    • 리소스 그룹 ${sid}_ascs${ASCS_INSTNO}_group은 NODE2 에서 활성화되어 있습니다.
    • 리소스 ${sid}_vip_ascs$ {ASCS_INSTNO}, ${sid}_fs_ascs${ASCS_INSTNO}_lvm, ${sid}_fs_ascs$ {ASCS_INSTNO} 및 ${sid}_ascs$ {ASCS_INSTNO} 는 NODE2 의 Started 입니다.
    • 리소스 그룹 ${sid}_ers${ERS_INSTNO}_group은 NODE1 에서 활성화되어 있습니다.
    • 리소스 ${sid}_vip_ers$ {ERS_INSTNO}, ${sid}_fs_ers${ERS_INSTNO}_lvm, ${sid}_fs_ers$ {ERS_INSTNO} 및 ${sid}_ers$ {ERS_INSTNO} 는 NODE1 의 Started 입니다.
  • SAP 의 인스턴스 프로세스 확인:
    • ASCS 인 스턴스는 NODE2 에서 실행되고 있습니다.
    • ERS 인스턴스는 NODE1 에서 실행되고 있습니다.

테스트 2 - 테스트 절차

충돌 시스템 요청을 보내 NODE2 충돌시킵니다.

NODE2 에서 다음 명령을 실행합니다.

sync; echo c > /proc/sysrq-trigger

테스트 2 - 예상되는 행동

  • NODE2 다시 시작합니다.
  • 클러스터는 실패한 노드를 감지하고 상태를 오프라인(UNCLEAN)으로 설정합니다.
  • 클러스터는 NODE1 에서 ASCS 리소스(가상 IP 주소, 파일 시스템 /usr/sap/${SID}/ASCS${ASCS_INSTNO}, 그리고 LVM 항목)를 획득합니다.
  • 클러스터는 NODE1 에서 ASCS를 시작합니다.
  • 클러스터는 NODE1 에서 ERS 인스턴스를 중지합니다.
  • 클러스터는 종속적인 리소스( NODE1 (가상 IP 주소, 파일 시스템 /usr/sap/${SID}/ERS${ERS_INSTNO} 및 LVM 리소스)를 중지하고 해제합니다.

잠시 후 다음 명령을 사용하여 상태를 확인하십시오.

두 번째 노드는 오프라인이고, 두 리소스 그룹 모두 첫 번째 노드에서 실행되고 있습니다.

pcs status

샘플 출력:

# pcs status
Cluster name: SAP_ASCS
Cluster Summary:
  * Stack: corosync
  * Current DC: cl-sap-1 (version 2.0.5-9.el8_4.5-ba59be7122) - partition with quorum
  * Last updated: Tue Feb 14 08:34:16 2023
  * Last change:  Tue Feb 14 08:34:04 2023 by hacluster via crmd on cl-sap-1
  * 2 nodes configured
  * 11 resource instances configured

Node List:
  * Online: [ cl-sap-1 ]
  * OFFLINE: [ cl-sap-2 ]

Full List of Resources:
  * res_fence_ibm_powervs	(stonith:fence_ibm_powervs):	 Started cl-sap-1
  * Resource Group: s01_ascs01_group:
    * s01_vip_ascs01	(ocf::heartbeat:IPaddr2):	 Started cl-sap-1
    * s01_fs_ascs01_lvm	(ocf::heartbeat:LVM-activate):	 Started cl-sap-1
    * s01_fs_ascs01	(ocf::heartbeat:Filesystem):	 Started cl-sap-1
    * s01_ascs01	(ocf::heartbeat:SAPInstance):	 Started cl-sap-1
  * Resource Group: s01_ers02_group:
    * s01_vip_ers02	(ocf::heartbeat:IPaddr2):	 Started cl-sap-1
    * s01_fs_ers02_lvm	(ocf::heartbeat:LVM-activate):	 Started cl-sap-1
    * s01_fs_ers02	(ocf::heartbeat:Filesystem):	 Started cl-sap-1
    * s01_ers02	(ocf::heartbeat:SAPInstance):	 Started cl-sap-1
  * Clone Set: fs_sapmnt-clone [fs_sapmnt]:
    * Started: [ cl-sap-1 ]
    * Stopped: [ cl-sap-2 ]

Daemon Status:
  corosync: active/disabled
  pacemaker: active/disabled
  pcsd: active/enabled

테스트 2 - 복구 절차

NODE2 가 다시 시작될 때까지 기다린 다음, 클러스터 프레임워크를 다시 시작하십시오.

NODE1 에서 다음 명령을 실행합니다.

pcs cluster start
  • 클러스터는 NODE2 에서 시작하여 NODE2 에서 ERS 자원 (가상 IP 주소, 파일 시스템 /usr/sap/${SID}/ERS${ERS_INSTNO}, 그리고 LVM 자원)을 획득합니다.
  • 클러스터는 NODE2 에서 ERS 인스턴스를 시작합니다.

잠시 기다렸다가 다음 명령을 통해 상태를 확인하십시오. ERS 리소스 그룹이 두 번째 노드로 이동되었습니다.

pcs status

샘플 출력:

# pcs status
Cluster name: SAP_ASCS
Cluster Summary:
  * Stack: corosync
  * Current DC: cl-sap-1 (version 2.0.5-9.el8_4.5-ba59be7122) - partition with quorum
  * Last updated: Tue Feb 14 08:41:23 2023
  * Last change:  Tue Feb 14 08:34:04 2023 by hacluster via crmd on cl-sap-1
  * 2 nodes configured
  * 11 resource instances configured

Node List:
  * Online: [ cl-sap-1 cl-sap-2 ]

Full List of Resources:
  * res_fence_ibm_powervs	(stonith:fence_ibm_powervs):	 Started cl-sap-1
  * Resource Group: s01_ascs01_group:
    * s01_vip_ascs01	(ocf::heartbeat:IPaddr2):	 Started cl-sap-1
    * s01_fs_ascs01_lvm	(ocf::heartbeat:LVM-activate):	 Started cl-sap-1
    * s01_fs_ascs01	(ocf::heartbeat:Filesystem):	 Started cl-sap-1
    * s01_ascs01	(ocf::heartbeat:SAPInstance):	 Started cl-sap-1
  * Resource Group: s01_ers02_group:
    * s01_vip_ers02	(ocf::heartbeat:IPaddr2):	 Started cl-sap-2
    * s01_fs_ers02_lvm	(ocf::heartbeat:LVM-activate):	 Started cl-sap-2
    * s01_fs_ers02	(ocf::heartbeat:Filesystem):	 Started cl-sap-2
    * s01_ers02	(ocf::heartbeat:SAPInstance):	 Started cl-sap-2
  * Clone Set: fs_sapmnt-clone [fs_sapmnt]:
    * Started: [ cl-sap-1 cl-sap-2 ]

Daemon Status:
  corosync: active/disabled
  pacemaker: active/disabled
  pcsd: active/enabled

테스트 3 - ERS 인스턴스의 실패 테스트

다음 정보를 사용하여 ERS 인스턴스의 실패 여부를 테스트하십시오.

테스트 3 - 설명

ERS 인스턴스의 충돌을 시뮬레이션합니다.

테스트 3 - 전제 조건

  • SAP ENSA2 를 위한 기능적인 2노드 RHEL HA Add-On 클러스터.
  • 두 클러스터 노드가 모두 활성화되어 있습니다.
  • 클러스터는 NODE1 와 NODE2 에서 시작됩니다.
    • 리소스 그룹 ${sid}_ascs${ASCS_INSTNO}_group은 NODE1 에서 활성화되어 있습니다.
    • 리소스 ${sid}_vip_ascs$ {ASCS_INSTNO}, ${sid}_fs_ascs${ASCS_INSTNO}_lvm, ${sid}_fs_ascs$ {ASCS_INSTNO} 및 ${sid}_ascs$ {ASCS_INSTNO} 는 NODE1 의 Started 입니다.
    • 리소스 그룹 ${sid}_ers${ERS_INSTNO}_group은 NODE2 에서 활성화되어 있습니다.
    • 리소스 ${sid}_vip_ers$ {ERS_INSTNO}, ${sid}_fs_ers${ERS_INSTNO}_lvm, ${sid}_fs_ers$ {ERS_INSTNO} 및 ${sid}_ers$ {ERS_INSTNO} 는 NODE2 의 Started 입니다.
  • SAP 의 인스턴스 프로세스 확인:
    • ASCS 인 스턴스는 NODE1 에서 실행되고 있습니다.
    • ERS 인스턴스는 NODE2 에서 실행되고 있습니다.

테스트 3 - 테스트 절차

SIGKILL 신호를 보내 SAP ERS 인스턴스를 충돌시킵니다.

NODE2 에서 enque 복제 서버의 PID를 확인합니다.

pgrep -af "(er|enqr).sap"

식별된 프로세스에 SIGKILL 신호를 보냅니다.

샘플 출력:

# pgrep -af "(er|enqr).sap"
2527198 er.sapS01_ERS02 pf=/usr/sap/S01/ERS02/profile/S01_ERS02_cl-sap-ers NR=01
# kill -9 2527198

테스트 3 - 예상되는 동작

  • SAP NODE2 에서 복제 서버를 대기열에 추가하면 즉시 충돌이 발생합니다.
  • 클러스터는 정지된 ERS를 감지하고 리소스를 실패한 것으로 표시합니다.
  • 클러스터가 NODE2 에서 ERS를 다시 시작합니다.

다음 명령어로 상태를 확인하세요.

pcs status

${sid}_ers${ERS_INSTNO} ERS 리소스가 두 번째 노드에서 다시 시작되었습니다. pcs status 명령을 너무 일찍 실행하면, ERS 자원이 상태 FAILED 에 잠깐 표시될 수 있습니다.

샘플 출력:

# pcs status
Cluster name: SAP_ASCS
Cluster Summary:
  * Stack: corosync
  * Current DC: cl-sap-1 (version 2.0.5-9.el8_4.5-ba59be7122) - partition with quorum
  * Last updated: Tue Feb 14 08:50:53 2023
  * Last change:  Tue Feb 14 08:50:50 2023 by hacluster via crmd on cl-sap-2
  * 2 nodes configured
  * 11 resource instances configured

Node List:
  * Online: [ cl-sap-1 cl-sap-2 ]

Full List of Resources:
  * res_fence_ibm_powervs	(stonith:fence_ibm_powervs):	 Started cl-sap-1
  * Resource Group: s01_ascs01_group:
    * s01_vip_ascs01	(ocf::heartbeat:IPaddr2):	 Started cl-sap-1
    * s01_fs_ascs01_lvm	(ocf::heartbeat:LVM-activate):	 Started cl-sap-1
    * s01_fs_ascs01	(ocf::heartbeat:Filesystem):	 Started cl-sap-1
    * s01_ascs01	(ocf::heartbeat:SAPInstance):	 Started cl-sap-1
  * Resource Group: s01_ers02_group:
    * s01_vip_ers02	(ocf::heartbeat:IPaddr2):	 Started cl-sap-2
    * s01_fs_ers02_lvm	(ocf::heartbeat:LVM-activate):	 Started cl-sap-2
    * s01_fs_ers02	(ocf::heartbeat:Filesystem):	 Started cl-sap-2
    * s01_ers02	(ocf::heartbeat:SAPInstance):	 Started cl-sap-2
  * Clone Set: fs_sapmnt-clone [fs_sapmnt]:
    * Started: [ cl-sap-1 cl-sap-2 ]

Daemon Status:
  corosync: active/disabled
  pacemaker: active/disabled
  pcsd: active/enabled

테스트 3 - 복구 절차

NODE2 에서 다음 명령을 실행합니다.

pcs resource refresh
pcs status --full

테스트 4 - ASCS 인스턴스의 수동 이동 테스트

다음 정보를 사용하여 ASCS 인스턴스의 수동 이동을 테스트하십시오.

테스트 4 - 설명

SAP 를 사용하여 유지보수 목적으로 ASCS 인스턴스를 다른 노드로 이동하십시오.

테스트 4 - 전제 조건

  • SAP ENSA2 를 위한 기능적인 2노드 RHEL HA Add-On 클러스터.
  • sap_cluster_connector 가 설치되고 구성됩니다.
  • 두 클러스터 노드가 모두 활성화되어 있습니다.
  • 클러스터는 NODE1 와 NODE2 에서 시작됩니다.
    • 리소스 그룹 ${sid}_ascs${ASCS_INSTNO}_group은 NODE1 에서 활성화되어 있습니다.
    • 리소스 ${sid}_vip_ascs$ {ASCS_INSTNO}, ${sid}_fs_ascs${ASCS_INSTNO}_lvm, ${sid}_fs_ascs$ {ASCS_INSTNO} 및 ${sid}_ascs$ {ASCS_INSTNO} 는 NODE1 의 Started 입니다.
    • 리소스 그룹 ${sid}_ers${ERS_INSTNO}_group은 NODE2 에서 활성화되어 있습니다.
    • 리소스 ${sid}_vip_ers$ {ERS_INSTNO}, ${sid}_fs_ers${ERS_INSTNO}_lvm, ${sid}_fs_ers$ {ERS_INSTNO} 및 ${sid}_ers$ {ERS_INSTNO} 는 NODE2 의 Started 입니다.
  • SAP 의 인스턴스 프로세스 확인:
    • ASCS 인 스턴스는 NODE1 에서 실행되고 있습니다.
    • ERS 인스턴스는 NODE2 에서 실행되고 있습니다.

테스트 4 - 테스트 절차

NODE1 에 로그인하고 sapcontrol 를 실행하여 ASCS 인스턴스를 다른 노드로 이동합니다.

sudo -i -u ${sid}adm -- sh -c "sapcontrol -nr ${ASCS_INSTNO} -function HAFailoverToNode"

테스트 4 - 예상되는 동작

  • sapcontrol sap-cluster-connector 를 통해 클러스터와 상호 작용합니다.
  • 클러스터는 자원을 이동하기 위한 위치 제약 조건을 만듭니다.

다음 명령어로 상태를 확인하세요. ASC 리소스 그룹이 두 번째 노드로 이동했다는 것을 기억해 두세요. pcs status 명령을 너무 일찍 실행하면, 일부 리소스 stoppingstarting 가 표시될 수 있습니다.

pcs status

샘플 출력:

# pcs status
Cluster name: SAP_ASCS
Cluster Summary:
  * Stack: corosync
  * Current DC: cl-sap-1 (version 2.0.5-9.el8_4.5-ba59be7122) - partition with quorum
  * Last updated: Tue Feb 14 09:03:19 2023
  * Last change:  Tue Feb 14 09:01:40 2023 by s01adm via crm_resource on cl-sap-1
  * 2 nodes configured
  * 11 resource instances configured

Node List:
  * Online: [ cl-sap-1 cl-sap-2 ]

Full List of Resources:
  * res_fence_ibm_powervs	(stonith:fence_ibm_powervs):	 Started cl-sap-1
  * Resource Group: s01_ascs01_group:
    * s01_vip_ascs01	(ocf::heartbeat:IPaddr2):	 Started cl-sap-2
    * s01_fs_ascs01_lvm	(ocf::heartbeat:LVM-activate):	 Started cl-sap-2
    * s01_fs_ascs01	(ocf::heartbeat:Filesystem):	 Started cl-sap-2
    * s01_ascs01	(ocf::heartbeat:SAPInstance):	 Started cl-sap-2
  * Resource Group: s01_ers02_group:
    * s01_vip_ers02	(ocf::heartbeat:IPaddr2):	 Started cl-sap-1
    * s01_fs_ers02_lvm	(ocf::heartbeat:LVM-activate):	 Started cl-sap-1
    * s01_fs_ers02	(ocf::heartbeat:Filesystem):	 Started cl-sap-1
    * s01_ers02	(ocf::heartbeat:SAPInstance):	 Started cl-sap-1
  * Clone Set: fs_sapmnt-clone [fs_sapmnt]:
    * Started: [ cl-sap-1 cl-sap-2 ]

Daemon Status:
  corosync: active/disabled
  pacemaker: active/disabled
  pcsd: active/enabled

테스트 4 - 복구 절차

NODE2 에서 ASCS 인스턴스가 활성화될 때까지 기다리십시오. 5분이 지나면 클러스터가 생성된 위치 제약 조건을 자동으로 제거합니다.

다음 지침은 수동으로 제약 조건을 제거하는 방법을 보여줍니다.

NODE2 에서 다음 명령을 실행합니다.

pcs constraint

샘플 출력:

# pcs constraint
Location Constraints:
  Resource: s01_ascs01_group
    Constraint: cli-ban-s01_ascs01_group-on-cl-sap-1
      Rule: boolean-op=and score=-INFINITY
        Expression: #uname eq string cl-sap-1
        Expression: date lt 2023-02-08 09:33:50 -05:00
Ordering Constraints:
  start s01_ascs01_group then stop s01_ers02_group (kind:Optional) (non-symmetrical)
  start fs_sapmnt-clone then start s01_ascs01_group (kind:Mandatory)
  start fs_sapmnt-clone then start s01_ers02_group (kind:Mandatory)
Colocation Constraints:
  s01_ers02_group with s01_ascs01_group (score:-5000)
Ticket Constraints:
pcs resource clear ${sid}_ascs${ASCS_INSTNO}_group

위치 제약 조건이 제거되었습니다:

pcs constraint

샘플 출력:

# pcs constraint
Location Constraints:
Ordering Constraints:
  start s01_ascs01_group then stop s01_ers02_group (kind:Optional) (non-symmetrical)
  start fs_sapmnt-clone then start s01_ascs01_group (kind:Mandatory)
  start fs_sapmnt-clone then start s01_ers02_group (kind:Mandatory)
Colocation Constraints:
  s01_ers02_group with s01_ascs01_group (score:-5000)
Ticket Constraints: