Azure에서 Windows Server 장애 조치(Failover) 클러스터링 및 공유 디스크를 사용하는 SAP ASCS/SCS 인스턴스 다중 SID 고가용성

Windows OS Windows

SAP를 배포한 경우 내부 부하 분산 장치를 사용하여 SAP 중앙 서비스(ASCS/SCS) 인스턴스에 대한 Windows 클러스터 구성을 만들어야 합니다.

이 문서에서는 SIOS로 공유 디스크를 시뮬레이션하는 공유 디스크를 사용하는 기존 WSFC(Windows Server 장애 조치(Failover) 클러스터링) 클러스터에 추가 SAP ASCS/SCS 클러스터형 인스턴스를 설치하여 단일 ASCS/SCS 설치에서 SAP 다중 SID 구성으로 이동하는 방법을 중점적으로 설명합니다. 이 프로세스가 완료되면 SAP 다중 SID 클러스터가 구성됩니다.

참고 항목

이 기능은 Azure Resource Manager 배포 모델에만 사용할 수 있습니다.

각 Azure 내부 부하 분산 장치에 대한 프라이빗 프런트 엔드 IP의 수에 제한이 있습니다.

하나의 WSFC 클러스터에서 SAP ASCS/SCS 인스턴스의 최대수는 각 Azure 내부 부하 분산 장치에 대한 개인 프런트 엔드 IP의 최대수와 같습니다.

부하 분산 장치 제한에 대한 자세한 내용은 네트워킹 제한 - Azure Resource Manager에서 "부하 분산 장치당 프라이빗 프런트 엔드 IP" 섹션을 참조하세요.

Important

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

참고 항목

Azure Az PowerShell 모듈을 사용하여 Azure와 상호 작용하는 것이 좋습니다. 시작하려면 Azure PowerShell 설치를 참조하세요. Az PowerShell 모듈로 마이그레이션하는 방법에 대한 자세한 내용은 Azure PowerShell을 AzureRM에서 Azure로 마이그레이션을 참조하세요.

필수 조건

이 다이어그램처럼 파일 공유를 사용하는 한 SAP ASCS/SCS 인스턴스에 사용되는 WSFC 클러스터가 이미 구성되어 있어야 합니다.

High-availability SAP ASCS/SCS instance

Important

설치 프로그램은 다음 조건을 충족해야 합니다.

  • SAP ASCS/SCS 인스턴스는 동일한 WSFC 클러스터를 공유해야 합니다.
  • 각 DBMS(데이터베이스 관리 시스템) SID에는 해당하는 고유한 전용 WSFC 클러스터가 있어야 합니다.
  • 하나의 SAP 시스템 SID에 속하는 SAP 애플리케이션 서버에는 고유한 전용 VM이 있어야 합니다.
  • 동일한 클러스터에서 인큐 복제 서버1과 인큐 복제 서버2를 함께 사용하는 것은 지원되지 않습니다.

공유 디스크를 사용하는 SAP ASCS/SCS 다중 SID 아키텍처

목적은 여기에서 설명한 것처럼 동일한 WSAFC 클러스터에서 여러 SAP ABAP ASCS 또는 SAP Java SCS 클러스터링된 인스턴스를 설치하는 것입니다.

Multiple SAP ASCS/SCS clustered instances in Azure

부하 분산 장치 제한에 대한 자세한 내용은 네트워킹 제한 - Azure Resource Manager에서 "부하 분산 장치당 프라이빗 프런트 엔드 IP" 섹션을 참조하세요.

두 가지 고가용성 SAP 시스템을 포함한 전체 그림은 다음과 같습니다.

SAP high-availability multi-SID setup with two SAP system SIDs

SAP 다중 SID 시나리오에 대한 인프라 준비

인프라를 준비하기 위해 다음 매개 변수를 사용하여 추가 SAP ASCS/SCS 인스턴스를 설치할 수 있습니다.

매개 변수 이름
SAP ASCS/SCS SID pr1-lb-ascs
SAP DBMS 내부 부하 분산 장치 PR5
SAP 가상 호스트 이름 pr5-sap-cl
SAP ASCS/SCS 가상 호스트 IP 주소(추가 Azure Load Balancer IP 주소) 10.0.0.50
SAP ASCS/SCS 인스턴스 번호 50
추가 SAP ASCS/SCS 인스턴스의 ILB 프로브 포트 62350

참고 항목

SAP ASCS/SCS 클러스터 인스턴스의 경우 각 IP 주소에는 고유한 프로브 포트가 필요합니다. 예를 들어 Azure 내부 부하 분산 장치에 있는 하나의 IP 주소가 프로브 포트 62300을 사용하는 경우 해당 부하 분산 장치의 다른 IP 주소는 프로브 포트 62300을 사용할 수 없습니다.

프로브 포트 62300이 이미 예약되어 있으므로 여기서는 프로브 포트 62350을 사용하고 있습니다.

두 개의 노드를 포함한 기존 WSFC 클러스터에서 추가 SAP ASCS/SCS 인스턴스를 설치할 수 있습니다.

가상 머신 역할 가상 머신 호스트 이름 고정 IP 주소
ASCS/SCS 인스턴스의 첫 번째 클러스터 노드 pr1-ascs-0 10.0.0.10
ASCS/SCS 인스턴스의 두 번째 클러스터 노드 pr1-ascs-1 10.0.0.9

DNS 서버에서 클러스터형 SAP ASCS/SCS 인스턴스의 가상 호스트 이름 만들기

다음 매개 변수를 사용하여 ASCS/SCS 인스턴스의 가상 호스트 이름에 대한 DNS 항목을 만들 수 있습니다.

새 SAP ASCS/SCS 가상 호스트 이름 연결된 IP 주소
pr5-sap-cl 10.0.0.50

새 호스트 이름 및 IP 주소는 다음 스크린샷에 표시된 것처럼 DNS 관리자에 표시됩니다.

DNS Manager list highlighting the defined DNS entry for the new SAP ASCS/SCS cluster virtual name and TCP/IP address

참고 항목

추가 ASCS/SCS 인스턴스의 가상 호스트 이름에 할당하는 새 IP 주소는 SAP Azure Load Balancer에 할당한 새 IP 주소와 동일해야 합니다.

이 시나리오에서 IP 주소는 10.0.0.50입니다.

PowerShell을 사용하여 기존 Azure 내부 부하 분산 장치에 IP 주소 추가

동일한 WSFC 클러스터에서 둘 이상의 SAP ASCS/SCS 인스턴스를 만들려면 PowerShell을 사용하여 IP 주소를 기존 Azure 내부 부하 분산 장치에 추가합니다. 각 IP 주소에는 고유한 부하 분산 규칙, 프로브 포트, 프런트 엔드 IP 풀 및 백 엔드 풀이 필요합니다.

다음 스크립트는 기존 부하 분산 장치에 새 IP 주소를 추가합니다. 사용자 환경에 맞게 PowerShell 변수를 업데이트합니다. 이 스크립트는 모든 SAP ASCS /SCS 포트에 필요한 모든 부하 분산 규칙을 만듭니다.


# Select-AzSubscription -SubscriptionId <xxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx>
Clear-Host
$ResourceGroupName = "SAP-MULTI-SID-Landscape"      # Existing resource group name
$VNetName = "pr2-vnet"                        # Existing virtual network name
$SubnetName = "Subnet"                        # Existing subnet name
$ILBName = "pr2-lb-ascs"                      # Existing ILB name                      
$ILBIP = "10.0.0.50"                          # New IP address
$VMNames = "pr2-ascs-0","pr2-ascs-1"          # Existing cluster virtual machine names
$SAPInstanceNumber = 50                       # SAP ASCS/SCS instance number: must be a unique value for each cluster
[int]$ProbePort = "623$SAPInstanceNumber"     # Probe port: must be a unique value for each IP and load balancer

$ILB = Get-AzLoadBalancer -Name $ILBName -ResourceGroupName $ResourceGroupName

$count = $ILB.FrontendIpConfigurations.Count + 1
$FrontEndConfigurationName ="lbFrontendASCS$count"
$LBProbeName = "lbProbeASCS$count"

# Get the Azure virtual network and subnet
$VNet = Get-AzVirtualNetwork -Name $VNetName -ResourceGroupName $ResourceGroupName
$Subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $VNet -Name $SubnetName

# Add a second front-end and probe configuration
Write-Host "Adding new front end IP Pool '$FrontEndConfigurationName' ..." -ForegroundColor Green
$ILB | Add-AzLoadBalancerFrontendIpConfig -Name $FrontEndConfigurationName -PrivateIpAddress $ILBIP -SubnetId $Subnet.Id
$ILB | Add-AzLoadBalancerProbeConfig -Name $LBProbeName  -Protocol Tcp -Port $Probeport -ProbeCount 2 -IntervalInSeconds 10  | Set-AzLoadBalancer

# Get a new updated configuration
$ILB = Get-AzLoadBalancer -Name $ILBname -ResourceGroupName $ResourceGroupName

# Get an updated LP FrontendIpConfig
$FEConfig = Get-AzLoadBalancerFrontendIpConfig -Name $FrontEndConfigurationName -LoadBalancer $ILB
$HealthProbe  = Get-AzLoadBalancerProbeConfig -Name $LBProbeName -LoadBalancer $ILB

# Add a back-end configuration into an existing ILB
$BackEndConfigurationName  = "backendPoolASCS$count"
Write-Host "Adding new backend Pool '$BackEndConfigurationName' ..." -ForegroundColor Green
$BEConfig = Add-AzLoadBalancerBackendAddressPoolConfig -Name $BackEndConfigurationName -LoadBalancer $ILB | Set-AzLoadBalancer

# Get an updated config
$ILB = Get-AzLoadBalancer -Name $ILBname -ResourceGroupName $ResourceGroupName

# Assign VM NICs to the back-end pool
$BEPool = Get-AzLoadBalancerBackendAddressPoolConfig -Name $BackEndConfigurationName -LoadBalancer $ILB
foreach($VMName in $VMNames){
        $VM = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $VMName
        $NICName = ($VM.NetworkInterfaceIDs[0].Split('/') | select -last 1)        
        $NIC = Get-AzNetworkInterface -name $NICName -ResourceGroupName $ResourceGroupName                
        $NIC.IpConfigurations[0].LoadBalancerBackendAddressPools += $BEPool
        Write-Host "Assigning network card '$NICName' of the '$VMName' VM to the backend pool '$BackEndConfigurationName' ..." -ForegroundColor Green
        Set-AzNetworkInterface -NetworkInterface $NIC
        #start-AzVM -ResourceGroupName $ResourceGroupName -Name $VM.Name
}


# Create load-balancing rules
$Ports = "445","32$SAPInstanceNumber","33$SAPInstanceNumber","36$SAPInstanceNumber","39$SAPInstanceNumber","5985","81$SAPInstanceNumber","5$SAPInstanceNumber`13","5$SAPInstanceNumber`14","5$SAPInstanceNumber`16"
$ILB = Get-AzLoadBalancer -Name $ILBname -ResourceGroupName $ResourceGroupName
$FEConfig = get-AzLoadBalancerFrontendIpConfig -Name $FrontEndConfigurationName -LoadBalancer $ILB
$BEConfig = Get-AzLoadBalancerBackendAddressPoolConfig -Name $BackEndConfigurationName -LoadBalancer $ILB
$HealthProbe  = Get-AzLoadBalancerProbeConfig -Name $LBProbeName -LoadBalancer $ILB

Write-Host "Creating load balancing rules for the ports: '$Ports' ... " -ForegroundColor Green

foreach ($Port in $Ports) {

        $LBConfigrulename = "lbrule$Port" + "_$count"
        Write-Host "Creating load balancing rule '$LBConfigrulename' for the port '$Port' ..." -ForegroundColor Green

        $ILB | Add-AzLoadBalancerRuleConfig -Name $LBConfigRuleName -FrontendIpConfiguration $FEConfig  -BackendAddressPool $BEConfig -Probe $HealthProbe -Protocol tcp -FrontendPort  $Port -BackendPort $Port -IdleTimeoutInMinutes 30 -LoadDistribution Default -EnableFloatingIP   
}

$ILB | Set-AzLoadBalancer

Write-Host "Successfully added new IP '$ILBIP' to the internal load balancer '$ILBName'!" -ForegroundColor Green

스크립트를 실행한 후 다음 스크린샷에 표시된 것처럼 결과가 Azure Portal에 표시됩니다.

New front-end IP pool in the Azure portal

클러스터 컴퓨터에 디스크 추가 및 SIOS 클러스터 공유 디스크 구성

각 추가 SAP ASCS/SCS 인스턴스에 새 클러스터 공유 디스크를 추가해야 합니다. Windows Server 2012 R2의 경우 현재 사용 중인 WSFC 클러스터 공유 디스크는 SIOS DataKeeper 소프트웨어 솔루션입니다.

다음을 수행하십시오:

  1. 각 클러스터 노드에 추가 디스크 또는 동일한 크기의 디스크(스트라이프해야 하는)를 추가하고 서식을 지정합니다.
  2. SIOS DataKeeper를 사용하여 스토리지 복제를 구성합니다.

이 절차는 WSFC 클러스터 컴퓨터에 SIOS DataKeeper를 이미 설치했다고 가정합니다. 설치한 경우 이제 컴퓨터 간의 복제를 구성해야 합니다. 자세한 프로세스는 SAP ASCS/SCS 클러스터 공유 디스크에 대한 SIOS DataKeeper Cluster Edition 설치에 설명되어 있습니다.

DataKeeper synchronous mirroring for the new SAP ASCS/SCS share disk

SAP 애플리케이션 서버 및 DBMS 클러스터에 대한 VM 배포

두 번째 SAP 시스템에 대한 인프라 준비를 완료하려면 다음을 수행합니다.

  1. SAP 애플리케이션 서버에 대한 전용 VM을 배포하고 각각을 고유한 전용 가용성 그룹에 배치합니다.
  2. DBMS 클러스터에 대한 전용 VM을 배포하고 각각을 고유한 전용 가용성 그룹에 배치합니다.

SAP NetWeaver 다중 SID 시스템 설치

두 번째 SAP SID2 시스템을 설치하는 방법에 대한 전체 프로세스는 SAP ASCS/SCS 인스턴스에 대한 Windows 장애 조치(Failover) 클러스터 및 공유 디스크에 SAP NetWeaver HA 설치에 설명되어 있습니다.

고급 절차는 다음과 같습니다.

  1. 고가용성 ASCS/SCS 인스턴스를 포함한 SAP 설치.
    이 단계에서는 기존 WSFC 클러스터 노드 1에 고가용성 ASCS/SCS 인스턴스를 포함한 SAP를 설치하고 있습니다.

  2. ASCS/SCS 인스턴스의 SAP 프로필을 수정합니다.

  3. 프로브 포트를 구성합니다.
    이 단계에서는 PowerShell을 사용하여 SAP 클러스터 리소스 SAP-SID2-IP 프로브 포트를 구성하고 있습니다. SAP ASCS/SCS 클러스터 노드 중 하나에서 이 구성을 실행합니다.

  4. 데이터베이스 인스턴스 설치.
    두 번째 클러스터 노드를 설치하려면 SAP 설치 가이드의 단계를 따릅니다.

  5. 두 번째 클러스터 노드를 설치합니다.
    이 단계에서는 기존 WSFC 클러스터 노드 2에 고가용성 ASCS/SCS 인스턴스를 포함한 SAP를 설치하고 있습니다. 두 번째 클러스터 노드를 설치하려면 SAP 설치 가이드의 단계를 따릅니다.

  6. SAP ASCS /SCS 인스턴스 및 ProbePort의 Windows 방화벽 포트를 엽니다.
    SAP ASCS/SCS 인스턴스에 사용되는 두 클러스터 노드에서 SAP ASCS/SCS에서 사용하는 모든 Windows 방화벽 포트를 열고 있습니다. 이러한 SAP ASCS/SCS 인스턴스 포트는 SAP ASCS/SCS 포트 챕터에 나열되어 있습니다.

    그 외의 모든 SAP 포트 목록은 모든 SAP 제품의 TCP/IP 포트를 참조하세요.

    또한 62350 시나리오에서와 같이 Azure 내부 부하 분산 장치 프로브 포트를 엽니다. 이 내용은 이 문서에 설명되어 있습니다.

  7. SAP 설치 가이드의 설명에 따라 새로운 전용 VM에 SAP 기본 애플리케이션 서버를 설치합니다.

  8. SAP 설치 가이드의 설명에 따라 새로운 전용 VM에 SAP 추가 애플리케이션 서버를 설치합니다.

  9. SAP ASCS/SCS 인스턴스 장애 조치(failover) 및 SIOS 복제를 테스트합니다.

다음 단계