在 Azure 上搭配 Windows Server 容錯移轉叢集和共用磁碟的 SAP ASCS/SCS 執行個體多重 SID 高可用性 (機器翻譯)

Windows OS 窗戶

如果您有 SAP 部署,您必須使用內部負載平衡器來建立 SAP Central Services (ASCS/SCS) 實例的 Windows 叢集組態。

本文著重於如何使用 SIOS 來模擬共用磁碟,將其他 SAP ASCS/SCS 叢集實例安裝到現有的 Windows Server 故障轉移叢集 (WSFC) 叢集,以從單一 ASCS/SCS 安裝移至 SAP 多重 SID 設定。 完成此程式時,您已設定 SAP 多重 SID 叢集。

注意

此功能僅適用於 Azure Resource Manager 部署模型。

每個 Azure 內部負載平衡器的私人前端 IP 數目有限制。

一個 WSFC 叢集中 SAP ASCS/SCS 實例數目上限等於每個 Azure 內部負載平衡器的私人前端 IP 數目上限。

如需負載平衡器限制的詳細資訊,請參閱網路限制:Azure Resource Manager 中的<每個負載平衡器的私人前端 IP>一節。

重要

負載平衡案例中的 NIC 次要IP組態不支援浮動IP。 如需詳細資訊,請參閱 Azure Load Balancer 限制。 如果您需要 VM 的其他 IP 位址,請部署第二個 NIC。

注意

建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 請參閱安裝 Azure PowerShell 以開始使用。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az

必要條件

您已使用檔案共用,將 WSFC 叢集設定為用於一個 SAP ASCS/SCS 實例,如下圖所示。

High-availability SAP ASCS/SCS instance

重要

安裝程式必須符合下列條件:

  • SAP ASCS/SCS 實例必須共用相同的 WSFC 叢集。
  • 每個資料庫管理系統 (DBMS) SID 都必須有自己的專用 WSFC 叢集。
  • 屬於一個 SAP 系統 SID 的 SAP 應用程式伺服器必須有自己的專用 VM。
  • 不支援在相同叢集中混合加入佇列復寫伺服器 1 和加入佇列復寫伺服器 2。

具有共用磁碟的 SAP ASCS/SCS 多重 SID 架構

目標是在相同的 WSFC 叢集中安裝多個 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 負載平衡器 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 負載平衡器的新 IP 位址相同。

在我們的案例中,IP 位址是 10.0.0.50。

使用 PowerShell 將 IP 位址新增至現有的 Azure 內部負載平衡器

若要在相同的 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 入口網站 中,如下列螢幕快照所示:

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 叢集版本會詳細說明此程式。

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

部署適用於 SAP 應用程式伺服器和 DBMS 叢集的 VM

若要完成第二個 SAP 系統的基礎結構準備,請執行下列動作:

  1. 部署 SAP 應用程式伺服器的專用 VM,並將每個 VM 放在其專屬的可用性群組中。
  2. 部署 DBMS 叢集的專用 VM,並將每個 VM 放在自己的專用可用性群組中。

安裝 SAP NetWeaver 多重 SID 系統

如需安裝第二個 SAP SID2 系統的完整程式描述,請參閱 SAP NetWeaver HA 安裝 Windows 故障轉移叢集和 SAP ASCS/SCS 實例的共用磁碟。

高階程式如下所示:

  1. 使用高可用性 ASCS/SCS 實例安裝 SAP。
    在此步驟中,您會在現有的 WSFC 叢集節點 1 上安裝具有高可用性 ASCS/SCS 實例的 SAP。

  2. 修改 ASCS/SCS 實例的 SAP 設定檔。

  3. 設定探查埠
    在此步驟中,您會使用PowerShell設定 SAP 叢集資源 SAP-SID2-IP 探查埠。 在其中一個S/ASCS/SCS 叢集節點上執行此設定。

  4. 安裝資料庫實例。
    若要安裝第二個叢集,請遵循 SAP 安裝指南中的步驟。

  5. 安裝第二個叢集節點。
    在此步驟中,您會在現有的 WSFC 叢集節點 2 上安裝具有高可用性 ASCS/SCS 實例的 SAP。 若要安裝第二個叢集,請遵循 SAP 安裝指南中的步驟。

  6. 開啟 SAP ASCS/SCS 實例和探查埠的 Windows 防火牆埠。
    在 SAP ASCS/SCS 實例所使用的這兩個叢集節點上,您會開啟 SAP ASCS/SCS 所使用的所有 Windows 防火牆埠。 這些 SAP ASCS/SCS 實例埠列在 SAP ASCS /SCS 連接埠一章中。

    如需所有其他 SAP 埠的清單,請參閱 所有 SAP 產品的 TCP/IP 埠。

    也請開啟 Azure 內部負載平衡器探查埠,在我們的案例中為 62350。 本文將加以說明

  7. 在新的專用 VM 上安裝 SAP 主要應用程式伺服器,如 SAP 安裝指南中所述。

  8. 在新的專用 VM 上安裝 SAP 其他應用程式伺服器,如 SAP 安裝指南中所述。

  9. 測試 SAP ASCS/SCS 實例故障轉移和 SIOS 複寫

下一步