在 Azure 上搭配 Windows Server 容錯移轉叢集和共用磁碟的 SAP ASCS/SCS 執行個體多重 SID 高可用性 (機器翻譯)
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 執行個體必須共用相同的 WSFC 叢集。
- 每個資料庫管理系統 (DBMS) SID 必須有自己專用的 WSFC 叢集。
- SAP 應用程式伺服器屬於必須擁有自己專用 VM 的一個 SAP 系統 SID。
- 不支援在相同叢集中混用加入佇列複寫伺服器 1 和加入佇列複寫伺服器 2。
搭配共用磁碟的 SAP ASCS/SCS 多重 SID 架構
目標是在相同 WSAFC 叢集中安裝多個 SAP ABAP ASCS 或 SAP Java SCS 叢集執行個體,如這裡所詳述:
如需負載平衡器限制的詳細資訊,請參閱網路限制:Azure Resource Manager 中的「每個負載平衡器的私人前端 IP」一節。
具有兩個高度可用 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 |
注意
對於 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 管理員中,如下列螢幕擷取畫面所示︰
注意
您指派給 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 入口網站中,如下列螢幕擷取畫面所示︰
將磁碟新增至叢集機器,並設定 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
若要完成第二個 SAP 系統的基礎結構準備,執行下列作業︰
- 為 SAP 應用程式伺服器部署專用的 VM,並將其放在各自專用的可用性群組中。
- 為 DBMS 叢集部署專用的 VM,並將其放在各自專用的可用性群組中。
安裝 SAP NetWeaver 多重 SID 系統
如需安裝第二個 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 叢集節點上執行此組態。安裝資料庫執行個體。
若要安裝第二個叢集,請依照 SAP 安裝指南中的步驟。安裝第二個叢集節點。
在此步驟中,您要在現有 WSFC 叢集節點 2 上使用高可用性 ASCS/SCS 執行個體安裝 SAP。 若要安裝第二個叢集,請依照 SAP 安裝指南中的步驟。開啟 SAP ASCS/SCS 執行個體和 ProbePort 的 Windows 防火牆連接埠。
在用於 SAP ASCS/SCS 執行個體的兩個叢集節點上,您要開啟 SAP ASCS/SCS 所使用的所有 Windows 防火牆連接埠。 這些 SAP ASCS/SCS 執行個體連接埠會列在 SAP ASCS / SCS 連接埠一章中。如需所有其他 SAP 連接埠的清單,請參閱所有 SAP 產品的 TCP/IP 連接埠。
此外,開啟 Azure 內部負載平衡器探查連接埠,在我們的案例中為 62350。 本文對此進行了描述。
在新的專用 VM 上安裝 SAP 主要應用程式伺服器,如 SAP 安裝指南所述。
在新的專用 VM 上安裝 SAP 其他應用程式伺服器,如 SAP 安裝指南所述。