共用方式為


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

Windows OS Windows

如果您有 SAP 部署,則必須使用內部負載平衡器,建立 SAP Central Services 執行個體的 Windows 叢集組態。

本文將著重於如何將單一 ASCS/SCS 安裝移至 SAP 多重 SID 設定,方法是使用共用磁碟,將其他 SAP ASCS/SCS 叢集執行個體安裝至現有 Windows Server 容錯移轉叢集 (WSFC) 叢集,使用 SIOS 來模擬共用磁碟。 完成此程序之後,您將已設定 SAP 多重 SID 叢集。

注意

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

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

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

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

注意

建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 若要開始使用,請參閱安裝 Azure PowerShell (部分機器翻譯)。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az

必要條件

您已經使用檔案共用來設定要用於一個 SAP ASCS/SCS 執行個體的 WSFC 叢集,如下圖所示。

高可用性的 SAP ASCS/SCS 執行個體

重要

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

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

搭配共用磁碟的 SAP ASCS/SCS 多重 SID 架構

目標是在相同 WSAFC 叢集中安裝多個 SAP ABAP ASCS 或 SAP Java SCS 叢集執行個體,如這裡所詳述:

Azure 中多個 SAP ASCS/SCS 叢集執行個體

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

具有兩個高度可用 SAP 系統的完整配置畫面如下所示:

具有兩個 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

注意

對於 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 管理員清單反白顯示已定義之新的 SAP ASCS/SCS 叢集虛擬名稱和 TCP/IP 位址的 DNS 項目

注意

您指派給 ASCS/SCS 執行個體之虛擬主機名稱的新 IP 位址必須與指派給 SAP Azure Load Balancer 的新 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 入口網站中,如下列螢幕擷取畫面所示︰

Azure 入口網站中新的前端 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

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

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

安裝 SAP NetWeaver 多重 SID 系統

如需安裝第二個 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. 安裝資料庫執行個體。
    若要安裝第二個叢集,請依照 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 連接埠

    此外,開啟 Azure 內部負載平衡器探查連接埠,在我們的案例中為 62350。 本文對此進行了描述。

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

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

  9. 測試 SAP ASCS/SCS 執行個體容錯移轉和 SIOS 複寫

下一步