Azure で Windows Server フェールオーバー クラスタリングと共有ディスクを使用する SAP ASCS/SCS インスタンスのマルチ SID 高可用性
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 インスタンスは同じ WSFC クラスターを共有している必要があります。
- 各データベース管理システム (DBMS) SID には、独自の専用 WSFC クラスターが必要です。
- 1 つの SAP システム SID に属する SAP アプリケーション サーバーは、独自の専用 VM を持っている必要があります。
- エンキュー レプリケーション サーバー 1 とエンキュー レプリケーション サーバー 2 を同じクラスター上に配置することは、サポートされていません。
共有ディスクを使用した SAP ASCS/SCS マルチ SID アーキテクチャ
次の例のように、複数の SAP ABAP ASCS または SAP Java SCS クラスター化インスタンスを同じ WSFC クラスター内にインストールすることが目標です。
ロード バランサーの制限の詳細については、ネットワークの制限:Azure Resource Manager。
2 つの高可用性 SAP システムを用いた場合の概要は次のようになります。
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 に表示されます。
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 で結果を確認できます。
クラスター マシンへのディスク追加と SIOS クラスター共有ディスクの構成
追加の SAP ASCS/SCS インスタンスごとに、新しいクラスター共有ディスクを追加する必要があります。 Windows Server 2012 R2 WSFC で現在使用されているクラスター共有ディスクは、SIOS DataKeeper ソフトウェア ソリューションです。
次の操作を行います。
- 各クラスター ノードに追加のディスク、または同じサイズのディスク (ストライピングが必要なもの) を追加してフォーマットします。
- SIOS DataKeeper でストレージのレプリケーションを構成します。
この手順では、WSFC クラスター マシン上に SIOS Datakeeper が既にインストールされていることを前提とします。 インストールしている場合は、それらのマシン間でのレプリケーションを構成する必要があります。 プロセスについては、「SAP ASCS/SCS クラスター共有ディスクのための SIOS DataKeeper Cluster Edition のインストール」で詳しく説明しています。
SAP アプリケーション サーバーと DBMS クラスター用に VM をデプロイする
2 番目の SAP システムのインフラストラクチャの準備を完了するには、次の操作をします。
- SAP アプリケーション サーバー用に専用の VM をデプロイし、それぞれを独自の専用可用性グループに配置します。
- DBMS クラスター用に専用の VM をデプロイし、それぞれを独自の専用可用性グループに配置します。
SAP NetWeaver マルチ SID システムのインストール
第 2 の SAP SID2 システムをインストールする完全なプロセスの説明については、「SAP ASCS/SCS インスタンス用の Windows フェールオーバー クラスターと共有ディスクに SAP NetWeaver HA をインストールする」をご覧ください。
おおまかな手順は次のとおりです。
高可用性 ASCS/SCS インスタンスを使用した SAP をインストールします。
このステップでは、既存の WSFC クラスター ノード 1 に、高可用性 ASCS/SCS インスタンスを使用した SAP をインストールします。プローブ ポートを構成します。
このステップではPowerShell を使用して、SAP クラスター リソース SAP-SID2-IP プローブ ポートを構成します。 この構成は、SAP ASCS/SCS クラスター ノードのいずれかで実行します。データベース インスタンスをインストールします。
第 2 のクラスター ノードをインストールするには、SAP インストール ガイドの手順に従います。第 2 のクラスター ノードをインストールします。
このステップでは、既存の WSFC クラスター ノード 2 に、高可用性 ASCS/SCS インスタンスを使用した SAP をインストールします。 第 2 のクラスター ノードをインストールするには、SAP インストール ガイドの手順に従います。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) を開きます。 こちらの記事に説明があります。
SAP インストール ガイドで記載されているように、新しい専用 VM に SAP プライマリ アプリケーション サーバーをインストールします。
SAP インストール ガイドで記載されているように、新しい専用 VM に追加の SAP アプリケーション サーバーをインストールします。