다음을 통해 공유


Windows 장애 조치(Failover) 클러스터 및 공유 디스크를 사용하여 SAP ASCS/SCS를 위한 SAP HA용 Azure 인프라 준비

Windows OS Windows

이 문서에서는 SAP ASCS 인스턴스를 클러스터링하는 옵션으로서 클러스터 공유 디스크를 사용하여 Windows 장애 조치(Failover) 클러스터에서 고가용성 SAP ASCS/SCS 인스턴스를 설치 및 구성하기 위해 Azure 인프라를 준비하는 방법을 설명합니다. 클러스터 공유 디스크에 대한 두 가지 대안은 설명서에 나와 있습니다.

설명서는 데이터베이스 계층을 포함하지 않습니다.

필수 조건

설치를 시작하기 전에 먼저 다음 문서를 검토하세요.

ASCS VM 만들기

SAP ASCS/SCS 클러스터의 경우 배포 형식에 따라 Azure 가용성 집합 또는 Azure 가용성 영역에 두 개의 VM을 배포합니다. VM을 배포한 후:

  • SAP ASCS/SCS 인스턴스에 대한 Azure 내부 Load Balancer를 만듭니다.
  • AD 도메인에 Windows VM을 추가합니다.

배포 유형에 따라 시나리오의 호스트 이름과 IP 주소는 다음과 같습니다.

Azure 가용성 집합의 SAP 배포

호스트 이름 역할 호스트 이름 고정 IP 주소 가용성 집합 디스크 SkuName
첫 번째 클러스터 노드 ASCS/SCS 클러스터 pr1-ascs-10 10.0.0.4 pr1-ascs-avset Premium_LRS
두 번째 클러스터 노드 ASCS/SCS 클러스터 pr1-ascs-11 10.0.0.5 pr1-ascs-avset
클러스터 네트워크 이름 pr1clust 10.0.0.42(Win 2016 클러스터에 해당) 해당 없음
ASCS 클러스터 네트워크 이름 pr1-ascscl 10.0.0.43 해당 없음
ERS 클러스터 네트워크 이름(ERS2에 해당) pr1-erscl 10.0.0.44 해당 없음

Azure 가용성 영역의 SAP 배포

호스트 이름 역할 호스트 이름 고정 IP 주소 가용성 영역 디스크 SkuName
첫 번째 클러스터 노드 ASCS/SCS 클러스터 pr1-ascs-10 10.0.0.4 AZ01 Premium_ZRS
두 번째 클러스터 노드 ASCS/SCS 클러스터 pr1-ascs-11 10.0.0.5 AZ02
클러스터 네트워크 이름 pr1clust 10.0.0.42(Win 2016 클러스터에 해당) 해당 없음
ASCS 클러스터 네트워크 이름 pr1-ascscl 10.0.0.43 해당 없음
ERS 클러스터 네트워크 이름(ERS2에 해당) pr1-erscl 10.0.0.44 해당 없음

문서에 언급된 단계는 두 배포 유형 모두에서 동일하게 유지됩니다. 그러나 클러스터가 가용성 집합에서 실행 중인 경우 Azure 프리미엄 공유 디스크용 LRS(Premium_LRS)를 배포해야 하고 클러스터가 가용성 영역에서 실행 중인 경우 Azure 프리미엄 공유 디스크용 ZRS(Premium_ZRS)를 배포해야 합니다.

참고 항목

Azure 공유 디스크에는 Azure 근접 배치 그룹이 필요하지 않습니다. 그러나 PPG를 사용하여 SAP를 배포하는 경우 아래 지침을 따르세요.

  • 특정 지역에 배포된 SAP 시스템용 PPG를 사용하는 경우 디스크를 공유하는 모든 가상 머신은 동일한 PPG의 일부여야 합니다.
  • 영역 배포가 있는 근접 배치 그룹 문서에 설명된 것처럼 여러 영역에 배포된 SAP 시스템에 PPG를 사용하는 경우 디스크를 공유하는 가상 머신에 Premium_ZRS 스토리지를 연결할 수 있습니다.

Azure 내부 부하 분산 장치 만들기

VM 구성 중에 네트워킹 섹션에서 기존 부하 분산 장치를 만들거나 선택할 수 있습니다. Windows의 ENSA1 아키텍처의 경우 SAP ASCS/SCS에 대한 가상 IP 주소가 하나만 필요합니다. 반면 ENSA2 아키텍처에는 두 개의 가상 IP 주소(SAP ASCS/SCS용 하나와 ERS2용 하나)가 필요합니다. Windows에서 SAP ASCS/SCS의 HA 설정에 대한 표준 내부 부하 분산 장치를 구성하는 경우 아래 지침을 따릅니다.

  1. 프런트 엔드 IP 구성: 프런트 엔드 IP(예: 10.0.0.43)를 만듭니다. ASCS/ERS 가상 머신과 동일한 가상 네트워크 및 서브넷을 선택합니다.
  2. 백 엔드 풀: 백 엔드 풀을 만들고 ASCS 및 ERS VM을 추가합니다. 이 예제에서 VM은 pr1-ascs-10 및 pr1-ascs-11입니다.
  3. 인바운드 규칙: 부하 분산 규칙을 만듭니다.
    • 프런트 1엔드 IP 주소: 프런트 엔드 IP 선택
    • 백 엔드 풀: 백 엔드 풀 선택
    • "고가용성 포트" 확인
    • 프로토콜: TCP
    • 상태 프로브: 아래 세부 정보로 상태 프로브를 만듭니다.
      • 프로토콜: TCP
      • 포트: [예: ASCS의 경우 620<인스턴스 번호>]
      • 간격: 5
      • 프로브 임계값: 2
    • 유휴 제한 시간(분): 30
    • "부동 IP 사용" 확인
  4. ENSA2 아키텍처에만 적용: 1번과 3번에 설명된 대로 추가 프런트 엔드 IP(10.0.0.44), 부하 분산 규칙(ERS2 상태 프로브 포트에 621<인스턴스 번호> 사용)을 만듭니다.

참고 항목

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

참고 항목

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

Azure 공유 디스크를 사용하는 SAP ASCS/SCS 인스턴스에 대한 WSFC의 Azure Resource Manager 템플릿을 사용하면 ERS1을 사용하는 하나의 SAP SID에 대해 Azure 공유 디스크를 사용하여 인프라 준비를 자동화할 수 있습니다.
Azure ARM 템플릿에서는 두 개의 Windows 2019 또는 2016 VM을 만들고, Azure 공유 디스크를 만들고 VM에 연결합니다. Azure 내부 Load Balancer가 생성되고 구성됩니다. 자세한 내용은 ARM 템플릿을 참조하세요.

ASCS/SCS 인스턴스의 두 클러스터 노드에 레지스트리 항목 추가

연결이 일정 시간 동안 유휴 상태이고 유휴 시간 제한을 초과하는 경우 Azure Load Balancer에서 연결을 닫을 수 있습니다. SAP 작업 프로세스는 첫 번째 큐에 넣기/큐에서 제거 요청이 전송되어야 하는 즉시 SAP 큐에 넣기 프로세스에 대한 연결을 엽니다. 이러한 연결이 중단되지 않도록 하려면 두 클러스터 노드에서 TCP/IP KeepAliveTime 및 KeepAliveInterval 값을 변경합니다. ERS1을 사용하는 경우 이 문서의 뒷부분에 설명된 대로 SAP 프로필 매개 변수를 추가해야 합니다. 두 클러스터 노드에서 다음 레지스트리 항목을 변경해야 합니다.

  • KeepAliveTime
  • KeepAliveInterval
Path 변수 이름 변수 형식 설명서
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters KeepAliveTime REG_DWORD(10진수) 120000 KeepAliveTime
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters KeepAliveInterval REG_DWORD(10진수) 120000 KeepAliveInterval

변경 내용을 적용하려면 두 클러스터 노드를 모두 다시 시작합니다.

도메인에 Windows VM 추가

가상 머신에 고정 IP 주소를 할당한 후 가상 머신을 도메인에 추가합니다.

Windows 장애 조치(failover) 클러스터 설치 및 구성

Windows 장애 조치(failover) 클러스터 기능 설치

클러스터 노드 중 하나에서 이 명령을 실행합니다.

# Hostnames of the Win cluster for SAP ASCS/SCS
$SAPSID = "PR1"
$ClusterNodes = ("pr1-ascs-10","pr1-ascs-11")
$ClusterName = $SAPSID.ToLower() + "clust"

# Install Windows features.
# After the feature installs, manually reboot both nodes
Invoke-Command $ClusterNodes {Install-WindowsFeature Failover-Clustering, FS-FileServer -IncludeAllSubFeature -IncludeManagementTools }

기능 설치가 완료되면 두 클러스터 노드를 다시 부팅합니다.

Windows 장애 조치(failover) 클러스터 테스트 및 구성

Windows 2019에서 클러스터는 Azure에서 실행되는 것을 자동으로 인식하고 클러스터 관리 IP의 기본 옵션으로 분산 네트워크 이름을 사용합니다. 따라서 클러스터 노드 로컬 IP 주소를 사용합니다. 결과적으로 클러스터에 대한 전용(가상) 네트워크 이름이 필요하지 않으며, Azure 내부 Load Balancer에서 이 IP 주소를 구성할 필요가 없습니다.

자세한 내용은 Windows Server 2019 장애 조치(failover) 클러스터링 새 기능을 참조하세요. 클러스터 노드 중 하나에서 이 명령을 실행합니다.

# Hostnames of the Win cluster for SAP ASCS/SCS
$SAPSID = "PR1"
$ClusterNodes = ("pr1-ascs-10","pr1-ascs-11")
$ClusterName = $SAPSID.ToLower() + "clust"

# IP adress for cluster network name is needed ONLY on Windows Server 2016 cluster
$ClusterStaticIPAddress = "10.0.0.42"

# Test cluster
Test-Cluster –Node $ClusterNodes -Verbose

$ComputerInfo = Get-ComputerInfo

$WindowsVersion = $ComputerInfo.WindowsProductName

if($WindowsVersion -eq "Windows Server 2019 Datacenter"){
    write-host "Configuring Windows Failover Cluster on Windows Server 2019 Datacenter..."
    New-Cluster –Name $ClusterName –Node  $ClusterNodes -Verbose
}elseif($WindowsVersion -eq "Windows Server 2016 Datacenter"){
    write-host "Configuring Windows Failover Cluster on Windows Server 2016 Datacenter..."
    New-Cluster –Name $ClusterName –Node  $ClusterNodes –StaticAddress $ClusterStaticIPAddress -Verbose 
}else{
    Write-Error "Not supported Windows version!"
}

클러스터 클라우드 쿼럼 구성

Windows Server 2016 또는 2019를 사용하므로 클러스터 쿼럼으로 Azure 클라우드 감시를 구성하는 것이 좋습니다.

클러스터 노드 중 하나에서 이 명령을 실행합니다.

$AzureStorageAccountName = "cloudquorumwitness"
Set-ClusterQuorum –CloudWitness –AccountName $AzureStorageAccountName -AccessKey <YourAzureStorageAccessKey> -Verbose

Windows 장애 조치(failover) 클러스터 임계값 조정

Windows 장애 조치(failover) 클러스터를 성공적으로 설치한 후에는 Azure에 배포된 클러스터에 적합하도록 일부 임계값을 조정해야 합니다. 변경할 매개 변수는 장애 조치(failover) 클러스터 네트워크 임계값 조정에 설명되어 있습니다. ASCS/SCS의 Windows 클러스터 구성에 포함된 2개의 VM이 동일한 서브넷에 있다는 전제하에, 매개 변수 값을 다음과 같이 변경합니다.

  • SameSubNetDelay = 2000
  • SameSubNetThreshold = 15
  • RouteHistoryLength = 30

이러한 설정은 고객과 함께 테스트되어 도출된 합리적인 타협안입니다. 충분한 복원력을 갖고 있지만 SAP 워크로드의 실제 오류 조건 또는 VM 오류에 대해 충분한 속도인 장애 조치(failover)를 제공합니다.

Azure 공유 디스크 구성

이 섹션은 Azure 공유 디스크를 사용하는 경우에만 적용됩니다.

PowerShell을 사용하여 Azure 공유 디스크 만들기 및 연결

클러스터 노드 중 하나에서 이 명령을 실행합니다. 리소스 그룹, Azure 지역, SAPSID 등에 대한 값을 조정해야 합니다.

#############################
# Create Azure Shared Disk
#############################

$ResourceGroupName = "MyResourceGroup"
$location = "MyAzureRegion"
$SAPSID = "PR1"

$DiskSizeInGB = 512
$DiskName = "$($SAPSID)ASCSSharedDisk"

# With parameter '-MaxSharesCount', we define the maximum number of cluster nodes to attach the shared disk
$NumberOfWindowsClusterNodes = 2

# For SAP deployment in availability set, use below storage SkuName
$SkuName = "Premium_LRS"
# For SAP deployment in availability zone, use below storage SkuName
$SkuName = "Premium_ZRS"
   
$diskConfig = New-AzDiskConfig -Location $location -SkuName $SkuName  -CreateOption Empty  -DiskSizeGB $DiskSizeInGB -MaxSharesCount $NumberOfWindowsClusterNodes
$dataDisk = New-AzDisk -ResourceGroupName $ResourceGroupName -DiskName $DiskName -Disk $diskConfig

##################################
## Attach the disk to cluster VMs
##################################
# ASCS Cluster VM1
$ASCSClusterVM1 = "$SAPSID-ascs-10"

# ASCS Cluster VM2
$ASCSClusterVM2 = "$SAPSID-ascs-11"

# Add the Azure Shared Disk to Cluster Node 1
$vm = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $ASCSClusterVM1 
$vm = Add-AzVMDataDisk -VM $vm -Name $DiskName -CreateOption Attach -ManagedDiskId $dataDisk.Id -Lun 0
Update-AzVm -VM $vm -ResourceGroupName $ResourceGroupName -Verbose

# Add the Azure Shared Disk to Cluster Node 2
$vm = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $ASCSClusterVM2
$vm = Add-AzVMDataDisk -VM $vm -Name $DiskName -CreateOption Attach -ManagedDiskId $dataDisk.Id -Lun 0
Update-AzVm -VM $vm -ResourceGroupName $ResourceGroupName -Verbose

PowerShell을 사용하여 공유 디스크 포맷

  1. 디스크 번호를 가져옵니다. 클러스터 노드 중 하나에서 PowerShell 명령을 실행합니다.

    Get-Disk | Where-Object PartitionStyle -Eq "RAW"  | Format-Table -AutoSize 
    # Example output
    # Number Friendly Name     Serial Number HealthStatus OperationalStatus Total Size Partition Style
    # ------ -------------     ------------- ------------ ----------------- ---------- ---------------
    # 2      Msft Virtual Disk               Healthy      Online                512 GB RAW            
    
  2. 디스크를 포맷합니다. 이 예제에서는 디스크 번호 2입니다.

    # Format SAP ASCS Disk number '2', with drive letter 'S'
    $SAPSID = "PR1"
    $DiskNumber = 2
    $DriveLetter = "S"
    $DiskLabel = "$SAPSID" + "SAP"
    
    Get-Disk -Number $DiskNumber | Where-Object PartitionStyle -Eq "RAW" | Initialize-Disk -PartitionStyle GPT -PassThru |  New-Partition -DriveLetter $DriveLetter -UseMaximumSize | Format-Volume  -FileSystem ReFS -NewFileSystemLabel $DiskLabel -Force -Verbose
    # Example outout
    # DriveLetter FileSystemLabel FileSystem DriveType HealthStatus OperationalStatus SizeRemaining      Size
    # ----------- --------------- ---------- --------- ------------ ----------------- -------------      ----
    # S           PR1SAP          ReFS       Fixed     Healthy      OK                    504.98 GB 511.81 GB
    
  3. 이제 디스크가 클러스터 디스크로 표시되는지 확인합니다.

    # List all disks
    Get-ClusterAvailableDisk -All
    # Example output
    # Cluster    : pr1clust
    # Id         : 88ff1d94-0cf1-4c70-89ae-cbbb2826a484
    # Name       : Cluster Disk 1
    # Number     : 2
    # Size       : 549755813888
    # Partitions : {\\?\GLOBALROOT\Device\Harddisk2\Partition2\}
    
  4. 클러스터에 디스크를 등록합니다.

    # Add the disk to cluster 
    Get-ClusterAvailableDisk -All | Add-ClusterDisk
    # Example output  
    # Name           State  OwnerGroup        ResourceType 
    # ----           -----  ----------        ------------ 
    # Cluster Disk 1 Online Available Storage Physical Disk
    

SAP ASCS/SCS 클러스터 공유 디스크용 SIOS DataKeeper Cluster Edition

이 섹션은 타사 소프트웨어 SIOS DataKeeper Cluster Edition을 사용하여 클러스터 공유 디스크를 시뮬레이트하는 미러링된 스토리지를 만드는 경우에만 적용됩니다.

이제 Azure에서 Windows Server 장애 조치(failover) 클러스터링 구성이 완료되었습니다. SAP ASCS/SCS 인스턴스를 설치하려면 공유 디스크 리소스가 필요합니다. 옵션 중 하나는 공유 디스크 리소스를 만드는 데 사용할 수 있는 타사 솔루션인 SIOS DataKeeper Cluster Edition을 사용하는 것입니다.

SAP ASCS/SCS 클러스터 공유 디스크에 대한 SIOS DataKeeper Cluster Edition 설치는 다음과 같은 작업을 포함합니다.

  • 필요한 경우 Microsoft .NET Framework를 추가합니다. SIOS 설명서((최신 .NET 프레임워크 요구 사항에 대한 를 참조하세요.
  • SIOS DataKeeper 설치
  • SIOS DataKeeper 구성

SIOS DataKeeper 설치

클러스터의 각 노드에 SIOS DataKeeper Cluster Edition을 설치합니다. SIOS DataKeeper를 사용하여 가상 공유 스토리지를 만들려면 동기화된 미러를 만든 후 클러스터 공유 스토리지를 시뮬레이션합니다.

SIOS 소프트웨어를 설치하기 전에 DataKeeperSvc 도메인 사용자를 만듭니다.

참고 항목

DataKeeperSvc 도메인 사용자를 두 클러스터 노드의 로컬 관리자 그룹에 추가합니다.

  1. 두 클러스터 노드에서 SIOS 소프트웨어를 설치합니다.

    SIOS 설치 관리자

    그림 31: SIOS DataKeeper 설치의 첫 번째 페이지

    SIOS DataKeeper 설치의 첫 번째 페이지

  2. 대화 상자에서 를 선택합니다.

    그림 32: 서비스를 사용할 수 없다고 알리는 DataKeeper

    서비스를 사용할 수 없다고 알리는 DataKeeper

  3. 대화 상자에서 도메인 또는 서버 계정을 선택하는 것이 좋습니다.

    그림 33: SIOS DataKeeper에 대한 사용자 선택

    SIOS DataKeeper에 대한 사용자 선택

  4. SIOS DataKeeper에 대해 만든 도메인 계정 사용자 이름 및 암호를 입력합니다.

    그림 34: SIOS DataKeeper 설치를 위한 도메인 사용자 이름 및 암호 입력

    SIOS DataKeeper 설치를 위한 도메인 사용자 이름 및 암호 입력

  5. 그림 35와 같이 SIOS DataKeeper 인스턴스를 위한 라이선스 키를 설치합니다.

    그림 35: SIOS DataKeeper 라이선스 키 입력

    SIOS DataKeeper 라이선스 키 입력

  6. 메시지가 표시되면 가상 머신을 다시 시작합니다.

SIOS DataKeeper 구성

두 노드에 SIOS DataKeeper를 설치한 후 구성을 시작합니다. 이러한 구성의 목표는 각 가상 머신에 연결된 추가 디스크 간에 동기식으로 데이터를 복제하는 것입니다.

  1. DataKeeper 관리 및 구성 도구를 시작한 다음 서버 연결을 선택합니다.

    그림 36: SIOS DataKeeper 관리 및 구성 도구

    SIOS DataKeeper 관리 및 구성 도구

  2. 관리 및 구성 도구에서 연결해야 하는 첫 번째 노드의 이름 또는 TCP/IP 주소를 삽입한 후 다음 단계에서 두 번째 노드에 대해 동일한 작업을 수행합니다.

    그림 37: 관리 및 구성 도구에서 연결해야 하는 첫 번째 노드의 이름 또는 TCP/IP 주소를 삽입한 후 다음 단계에서 두 번째 노드에 대해 동일한 작업 수행

    관리 및 구성 도구에서 연결해야 하는 첫 번째 노드의 이름 또는 TCP/IP 주소를 삽입한 후 다음 단계에서 두 번째 노드에 대해 동일한 작업 수행

  3. 두 노드 간에 복제 작업을 만듭니다.

    그림 38: 복제 작업 만들기

    복제 작업 만들기

    마법사에서 복제 작업을 만드는 과정을 안내합니다.

  4. 복제 작업의 이름을 정의합니다.

    그림 39: 복제 작업 이름 정의

    복제 작업 이름 정의

    그림 40: 현재 원본 노드에 해당하는 노드의 기본 데이터 정의

    현재 원본 노드에 해당하는 노드의 기본 데이터 정의

  5. 대상 노드의 이름, TCP/IP 주소 및 디스크 볼륨을 정의합니다.

    그림 41: 현재 대상 노드의 이름, TCP/IP 주소 및 디스크 볼륨 정의

    현재 대상 노드의 이름, TCP/IP 주소 및 디스크 볼륨 정의

  6. 압축 알고리즘을 정의합니다. 예제에서는 복제 스트림을 압축하는 것이 좋습니다. 특히 재동기화 상황에서는 복제 스트림을 압축하면 재동기화 시간을 크게 단축할 수 있습니다. 압축에는 가상 머신의 CPU 및 RAM 리소스가 사용됩니다. 압축 속도가 증가하면 사용되는 CPU 리소스 양도 증가합니다. 나중에 이 설정을 조정할 수 있습니다.

  7. 확인해야 하는 또 다른 설정은 복제가 비동기식 또는 동기식 중에서 어떤 방식으로 발생하는가 입니다. SAP ASCS/SCS 구성을 보호할 때 동기 복제를 사용해야 합니다.

    그림 42: 복제 세부 정보 정의

    복제 세부 정보 정의

  8. 복제 작업에 의해 복제되는 볼륨을 Windows Server 장애 조치(Failover) 클러스터 구성에 공유 디스크로 나타낼지 여부를 정의합니다. SAP ASCS/SCS 구성의 경우 Windows 클러스터가 복제된 볼륨을 클러스터 볼륨으로 사용할 수 있는 공유 디스크로 인식하도록 를 선택합니다.

    그림 43:예를 선택하여 복제된 볼륨을 클러스터 볼륨으로 설정

    를 선택하여 복제된 볼륨을 클러스터 볼륨으로 설정

    볼륨을 만든 후 DataKeeper 관리 및 구성 도구에서 복제 작업 활성화되어 있음을 보여 줍니다.

    그림 44: SAP ASCS/SCS 공유 디스크에 대해 활성화된 DataKeeper 동기식 미러링

    SAP ASCS/SCS 공유 디스크에 대해 활성화된 DataKeeper 동기식 미러링

    이제 그림 45와 같이 장애 조치 클러스터 관리자에서 디스크를 DataKeeper 디스크로 표시합니다.

    그림 45: 장애 조치(Failover) 클러스터 관리자에서 표시하는 DataKeeper에서 복제한 디스크

    장애 조치(Failover) 클러스터 관리자에 표시되는 DataKeeper에서 복제한 디스크

다음 단계