Azure で Windows Server フェールオーバー クラスタリングと共有ディスクを使用する SAP ASCS/SCS インスタンスのマルチ SID 高可用性

Windows OS Windows

SAP がデプロイされている場合は、内部ロード バランサーを使用して SAP Central Services (ASCS/SCS) インスタンスの Windows クラスター構成を作成できます。

この記事では、共有ディスクをシミュレートする SIOS を使用して、追加の SAP ASCS/SCS クラスター化インスタンスを、共有ディスクを持つ既存の Windows Server フェールオーバー クラスタリング (WSFC) クラスターにインストールすることによって、単一の ASCS/SCS インストールから SAP マルチ SID 構成に移行する方法に焦点を当てます。 このプロセスが完了したら、SAP マルチ SID クラスターの構成は完了です。

Note

この機能は、Azure Resource Manager デプロイ モデルでのみ使用できます。

Azure 内部ロード バランサーごとにプライベート フロントエンド IP の数に制限があります。

1 つの WSFC クラスターにおける SAP ASCS/SCS インスタンスの最大数は、Azure 内部ロード バランサーあたりのプライベート フロントエンド IP の最大数と等しくなります。

ロード バランサーの制限の詳細については、ネットワークの制限:Azure Resource Manager

注意

Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を始めるには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。

前提条件

次の図に示すように、ファイル共有を使って 1 つの SAP ASCS/SCS インスタンスに使う WSFC クラスターを構成済みであることが必要です。

高可用性の SAP ASCS/SCS インスタンス

重要

セットアップは次の条件を満たしている必要があります。

  • SAP ASCS/SCS インスタンスは同じ WSFC クラスターを共有している必要があります。
  • 各データベース管理システム (DBMS) SID には、独自の専用 WSFC クラスターが必要です。
  • 1 つの SAP システム SID に属する SAP アプリケーション サーバーは、独自の専用 VM を持っている必要があります。
  • エンキュー レプリケーション サーバー 1 とエンキュー レプリケーション サーバー 2 を同じクラスター上に配置することは、サポートされていません。

共有ディスクを使用した SAP ASCS/SCS マルチ SID アーキテクチャ

次の例のように、複数の SAP ABAP ASCS または SAP Java SCS クラスター化インスタンスを同じ WSFC クラスター内にインストールすることが目標です。

Azure の複数の SAP ASCS/SCS クラスター化されたインスタンス

ロード バランサーの制限の詳細については、ネットワークの制限:Azure Resource Manager

2 つの高可用性 SAP システムを用いた場合の概要は次のようになります。

2 つの SAP システム SID を使用した SAP 高可用性マルチ SID 設定

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

Note

SAP ASCS/SCS のクラスター インスタンスの場合、IP アドレスごとに一意のプローブ ポートが必要です。 たとえば、Azure 内部ロード バランサー上の 1 つの IP アドレスでプローブ ポート 62300 が使用されている場合、そのロード バランサー上の他の IP アドレスではプローブ ポート 62300 を使用できません。

今回の目的上、プローブ ポート 62300 は既に予約されているため、プローブ ポート 62350 を使用します。

ノードを 2 つ持つ既存の WSFC クラスターに追加の SAP ASCS/SCS インスタンスをインストールすることができます。

仮想マシンの役割 仮想マシンのホスト名 静的 IP アドレス
ASCS/SCS インスタンスの第 1 のクラスター ノード pr1-ascs-0 10.0.0.10
ASCS/SCS インスタンスの第 2 のクラスター ノード 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 Manager に表示されます。

新しい SAP ASCS/SCS クラスターの仮想名と TCP/IP アドレスの定義された DNS エントリを強調表示する DNS Manager リスト

Note

追加の ASCS/SCS インスタンスの仮想ホスト名に割り当てる新しい IP アドレスは SAP Azure Load Balancer に割り当てた新しい IP アドレスと同じである必要があります。

このシナリオでは、IP アドレスは 10.0.0.50 です。

PowerShell を使用して既存の Azure 内部ロード バランサーに IP アドレスを追加する

同じ WSFC クラスターに複数の SAP ASCS/SCS インスタンスを作成するには、PowerShell を使用して既存の Azure 内部ロード バランサーに IP アドレスを追加します。 各 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 で結果を確認できます。

Azure Portal の新しいフロントエンド IP プール

クラスター マシンへのディスク追加と 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 のインストール」で詳しく説明しています。

新しい SAP ASCS/SCS 共有ディスクの DataKeeper 同期ミラーリング

SAP アプリケーション サーバーと DBMS クラスター用に VM をデプロイする

2 番目の SAP システムのインフラストラクチャの準備を完了するには、次の操作をします。

  1. SAP アプリケーション サーバー用に専用の VM をデプロイし、それぞれを独自の専用可用性グループに配置します。
  2. DBMS クラスター用に専用の VM をデプロイし、それぞれを独自の専用可用性グループに配置します。

SAP NetWeaver マルチ SID システムのインストール

第 2 の SAP SID2 システムをインストールする完全なプロセスの説明については、「SAP ASCS/SCS インスタンス用の Windows フェールオーバー クラスターと共有ディスクに 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. データベース インスタンスをインストールします。
    第 2 のクラスター ノードをインストールするには、SAP インストール ガイドの手順に従います。

  5. 第 2 のクラスター ノードをインストールします。
    このステップでは、既存の WSFC クラスター ノード 2 に、高可用性 ASCS/SCS インスタンスを使用した SAP をインストールします。 第 2 のクラスター ノードをインストールするには、SAP インストール ガイドの手順に従います。

  6. SAP ASCS/SCS インスタンスとプローブ ポート用に Windows Firewall ポートを開きます。
    SAP ASCS/SCS インスタンスで使用する両方のクラスター ノードで、SAP ASCS/SCS ポートが使用するすべての Windows ファイアウォール ポートを開きます。 これらの SAP ASCS/SCS インスタンスのポートは、「SAP ASCS/SCS のポート」のセクションに一覧があります。

    その他すべての SAP ポートの一覧については、「TCP/IP Ports of All SAP Products (SAP の全製品の TCP/IP ポート)」をご覧ください。

    また、Azure 内部ロード バランサー プローブ ポート (このシナリオでは 62350) を開きます。 こちらの記事に説明があります。

  7. SAP インストール ガイドで記載されているように、新しい専用 VM に SAP プライマリ アプリケーション サーバーをインストールします。

  8. SAP インストール ガイドで記載されているように、新しい専用 VM に追加の SAP アプリケーション サーバーをインストールします。

  9. SAP ASCS/SCS インスタンスのフェールオーバーと SIOS レプリケーションをテストします

次のステップ