共用方式為


使用 SAP ASCS/SCS 的 Windows 容錯移轉叢集和共用磁碟,為 SAP HA 準備 Azure 基礎結構

Windows OS Windows

本文說明使用叢集共用的磁碟作為叢集 SAP ASCS 執行個體的選項,針對在 Windows 容錯移轉叢集上安裝及設定高可用性 SAP ASCS/SCS 執行個體,準備 Azure 基礎結構的步驟。 叢集共用磁碟的兩個替代方式會顯示在文件中:

文件未涵蓋資料庫層。

必要條件

在開始安裝之前,請檢閱這篇文章:

建立 ASCS VM

針對 SAP ASCS / SCS 叢集,請根據部署的類型,在 Azure 可用性設定組或 Azure 可用性區域中部署兩個 VM。 部署 VM 之後:

  • 建立 SAP ASCS /SCS 執行個體的 Azure 內部 Load Balancer。
  • 將 Windows VM 新增至 AD 網域。

根據部署類型,此案例的主機名稱和 IP 位址將為:

Azure 可用性設定組中的 SAP 部署

主機名稱角色 主機名稱 靜態 IP 位址 可用性設定組 磁碟 SkuName
第一個叢集節點 ASCS/SCS 叢集 pr1-ascs-10 10.0.0.4 pr1-ascs-avset Premium_LRS
第二個叢集節點 ASCS/SCS 叢集 pr1-ascs-11 10.0.0.5 pr1-ascs-avset
叢集網路名稱 pr1clust 10.0.0.42(適用於 Win 2016 叢集) n/a
ASCS 叢集網路名稱 pr1-ascscl 10.0.0.43 n/a
ERS 叢集網路名稱 (僅適用於 ERS2) pr1-erscl 10.0.0.44 n/a

Azure 可用性區域中的 SAP 部署

主機名稱角色 主機名稱 靜態 IP 位址 可用性區域 磁碟 SkuName
第一個叢集節點 ASCS/SCS 叢集 pr1-ascs-10 10.0.0.4 AZ01 Premium_ZRS
第二個叢集節點 ASCS/SCS 叢集 pr1-ascs-11 10.0.0.5 AZ02
叢集網路名稱 pr1clust 10.0.0.42(適用於 Win 2016 叢集) n/a
ASCS 叢集網路名稱 pr1-ascscl 10.0.0.43 n/a
ERS 叢集網路名稱 (僅適用於 ERS2) pr1-erscl 10.0.0.44 n/a

文件中所述步驟對這於兩種部署類型均維持不變。 但是,如果您的叢集是在可用性設定組中執行,則需為 Azure 進階共用磁碟部署 LRS (Premium_LRS),而且如果叢集是在可用性區域中執行,請部署適用於 Azure 進階共用磁碟的 ZRS (Premium_ZRS)。

注意

Azure 共用磁碟不需要 Azure 鄰近放置群組。 但對於使用 PPG 的 SAP 部署,請遵循以下指導方針:

  • 如果您為部署在一個區域中的 SAP 系統使用 PPG,那麼共用磁碟的所有虛擬機器皆須屬於相同 PPG。
  • 如果您比照「區域性部署的鄰近放置群組」文件所述,為跨區域部署的 SAP 系統使用 PPG,您可以將 Premium_ZRS 儲存體附加到共用磁碟的虛擬機器。

建立 Azure 內部負載平衡器

在 VM 設定期間,您可以在網路區段中建立或選取現有的負載平衡器。 針對 Windows 上的 ENSA1 架構,您只需要 SAP ASCS/SCS 的一個虛擬 IP 位址。 另一方面,ENSA2 架構需要兩個虛擬 IP 位址 -- 一個用於SAP ASCS/SCS,另一個用於 ERS2。 在 Windows 上為 SAP ASCS/SCS 的 HA 設定設定標準內部負載平衡器時,請遵循下列指導方針。

  1. 前端 IP 設定:建立前端 IP (例如: 10.0.0.43)。 選取與您的 ASCS/ERS 虛擬機器相同的虛擬網路和子網路。
  2. 後端集區:建立後端集區,並新增 ASCS 和 ERS VM。 在此範例中,VM 是 pr1-ascs-10 和 pr1-ascs-11。
  3. 輸入規則:建立負載平衡規則。
    • 前端 IP 位址:選取前端 IP
    • 後端集區:選取後端集區
    • 檢查「高可用性連接埠」
    • 通訊協定:TCP
    • 健全狀態探查:使用下列詳細資料建立健全狀態探查
      • 通訊協定:TCP
      • 連接埠:[例如:適用於 ASCS 的 620<執行個體 - 號碼。>]
      • 間隔:5
      • 探查閾值:2
    • 閒置逾時 (分鐘):30
    • 檢查「啟用浮動 IP」
  4. 僅適用於 ENSA2 架構:建立額外的前端 IP (10.0.0.44),負載平衡規則 (使用 621< 執行個體-號碼。> ERS2 健康情況探查連接埠),如第 1 點和第 3 點所述。

注意

未遵守健全狀態探查設定屬性 numberOfProbes,在入口網站中又名為「狀況不良閾值」。 所以要控制連續探查成功或失敗的數目,請將屬性「probeThreshold」設定為 2。 目前無法使用 Azure 入口網站來設定此屬性,因此請使用 Azure CLIPowerShell 命令。

注意

當沒有公用 IP 位址的 VM 放在內部 (沒有公用 IP 位址) Standard Azure Load Balancer 的後端集區時,除非您執行另外設定來允許路由傳送至公用端點,否則不會有輸出網際網路連線能力。 如需如何實現輸出連線能力的詳細資料,請參閱在 SAP 高可用性案例中使用 Azure Standard Load Balancer 實現虛擬機器的公用端點連線能力

提示

透過搭配 Azure 共用磁碟將 WSFC 用於 SAP ASCS/SCS 執行個體的 Azure Resource Manager 範本,您可以藉由對一個搭配 ERS1 的 SAP SID 使用 Azure 共用磁碟,來自動化基礎結構的準備。
Azure ARM 範本會建立兩個 Windows 2019 或 2016 VM、建立 Azure 共用磁碟並連結至 VM。 也會建立和設定 Azure 內部 Load Balancer。 如需詳細資訊,請參閱 ARM 範本。

在 ASCS/SCS 執行個體的兩個叢集節點上新增登錄項目

如果連線閒置一段時間且超過閒置逾時,Azure Load Balancer 可能會關閉連線。 SAP 工作程序則會在需要傳送第一個加入佇列/清除佇列要求時,立即開啟對SAP 加入佇列程序的連線。 若要避免中斷這些連線,請變更這兩個叢集節點上的 TCP/IP KeepAliveTime 和 KeepAliveInterval 值。 如果使用 ERS1,也必須新增 SAP 設定檔參數,如本文稍後所述。 這兩個叢集節點上都必須變更下列登錄項目:

  • KeepAliveTime
  • KeepAliveInterval
路徑 變數名稱 變數類型 文件
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters KeepAliveTime REG_DWORD (十進位) 120000 KeepAliveTime
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters KeepAliveInterval REG_DWORD (十進位) 120000 KeepAliveInterval

若要套用變更,請重新啟動這兩個叢集節點。

將 Windows VM 新增至網域

將靜態 IP 位址指派給虛擬機器之後,請將虛擬機器新增至網域。

安裝和設定 Windows 容錯移轉叢集

安裝 Windows 容錯移轉叢集功能

在叢集的其中一個節點上執行此命令:

# Hostnames of the Win cluster for SAP ASCS/SCS
$SAPSID = "PR1"
$ClusterNodes = ("pr1-ascs-10","pr1-ascs-11")
$ClusterName = $SAPSID.ToLower() + "clust"

# Install Windows features.
# After the feature installs, manually reboot both nodes
Invoke-Command $ClusterNodes {Install-WindowsFeature Failover-Clustering, FS-FileServer -IncludeAllSubFeature -IncludeManagementTools }

功能安裝完成後,請重新啟動這兩個叢集節點。

測試和設定 Windows 容錯移轉叢集

在 Windows 2019 上,叢集會自動辨識出其執行於 Azure 之中,而針對叢集管理 IP 的預設選項,則會使用分散式網路名稱。 因此,它會使用任何叢集節點本機 IP 位址。 所以不需要叢集的專用 (虛擬) 網路名稱,而且不需要在 Azure 內部負載平衡器上設定此 IP 位址。

如需詳細資訊,請參閱 Windows Server 2019 容錯移轉叢集新功能 在其中一個叢集節點上執行此命令:

# Hostnames of the Win cluster for SAP ASCS/SCS
$SAPSID = "PR1"
$ClusterNodes = ("pr1-ascs-10","pr1-ascs-11")
$ClusterName = $SAPSID.ToLower() + "clust"

# IP adress for cluster network name is needed ONLY on Windows Server 2016 cluster
$ClusterStaticIPAddress = "10.0.0.42"

# Test cluster
Test-Cluster –Node $ClusterNodes -Verbose

$ComputerInfo = Get-ComputerInfo

$WindowsVersion = $ComputerInfo.WindowsProductName

if($WindowsVersion -eq "Windows Server 2019 Datacenter"){
    write-host "Configuring Windows Failover Cluster on Windows Server 2019 Datacenter..."
    New-Cluster –Name $ClusterName –Node  $ClusterNodes -Verbose
}elseif($WindowsVersion -eq "Windows Server 2016 Datacenter"){
    write-host "Configuring Windows Failover Cluster on Windows Server 2016 Datacenter..."
    New-Cluster –Name $ClusterName –Node  $ClusterNodes –StaticAddress $ClusterStaticIPAddress -Verbose 
}else{
    Write-Error "Not supported Windows version!"
}

設定叢集雲端仲裁

當您使用 Windows Server 2016 或 2019 時,建議您將 Azure 雲端見證設定為叢集仲裁。

在叢集的其中一個節點上執行此命令:

$AzureStorageAccountName = "cloudquorumwitness"
Set-ClusterQuorum –CloudWitness –AccountName $AzureStorageAccountName -AccessKey <YourAzureStorageAccessKey> -Verbose

微調 Windows 容錯移轉叢集閾值

成功安裝 Windows 容錯移轉叢集之後,您需要調整一些閾值,讓叢集可部署在 Azure 中。 需要變更的參數記載於調整容錯移轉叢集網路閥值中。 假設組成 ASCS/SCS Windows 叢集設定的兩部 VM 位於相同的子網中,請將下列參數變更為下列值:

  • SameSubNetDelay = 2000
  • SameSubNetThreshold = 15
  • RouteHistoryLength = 30

這些設定已與客戶進行測試,並提供很好的折衷方案。 其具有足夠的復原性,但也為 SAP 工作負載中的真實錯誤情況或 VM 失敗提供夠快的容錯移轉。

設定 Azure 共用磁碟

本節僅適用於使用 Azure 共用磁碟的情況。

使用 PowerShell 建立和連結 Azure 共用磁碟

在叢集的其中一個節點上執行此命令。 您將需要調整資源群組、Azure 區域、SAPSID 等的值。

#############################
# Create Azure Shared Disk
#############################

$ResourceGroupName = "MyResourceGroup"
$location = "MyAzureRegion"
$SAPSID = "PR1"

$DiskSizeInGB = 512
$DiskName = "$($SAPSID)ASCSSharedDisk"

# With parameter '-MaxSharesCount', we define the maximum number of cluster nodes to attach the shared disk
$NumberOfWindowsClusterNodes = 2

# For SAP deployment in availability set, use below storage SkuName
$SkuName = "Premium_LRS"
# For SAP deployment in availability zone, use below storage SkuName
$SkuName = "Premium_ZRS"
   
$diskConfig = New-AzDiskConfig -Location $location -SkuName $SkuName  -CreateOption Empty  -DiskSizeGB $DiskSizeInGB -MaxSharesCount $NumberOfWindowsClusterNodes
$dataDisk = New-AzDisk -ResourceGroupName $ResourceGroupName -DiskName $DiskName -Disk $diskConfig

##################################
## Attach the disk to cluster VMs
##################################
# ASCS Cluster VM1
$ASCSClusterVM1 = "$SAPSID-ascs-10"

# ASCS Cluster VM2
$ASCSClusterVM2 = "$SAPSID-ascs-11"

# Add the Azure Shared Disk to Cluster Node 1
$vm = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $ASCSClusterVM1 
$vm = Add-AzVMDataDisk -VM $vm -Name $DiskName -CreateOption Attach -ManagedDiskId $dataDisk.Id -Lun 0
Update-AzVm -VM $vm -ResourceGroupName $ResourceGroupName -Verbose

# Add the Azure Shared Disk to Cluster Node 2
$vm = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $ASCSClusterVM2
$vm = Add-AzVMDataDisk -VM $vm -Name $DiskName -CreateOption Attach -ManagedDiskId $dataDisk.Id -Lun 0
Update-AzVm -VM $vm -ResourceGroupName $ResourceGroupName -Verbose

使用 PowerShell 格式化共用磁碟

  1. 取得磁碟編號。 在這其中一個叢集節點上執行 PowerShell 命令:

    Get-Disk | Where-Object PartitionStyle -Eq "RAW"  | Format-Table -AutoSize 
    # Example output
    # Number Friendly Name     Serial Number HealthStatus OperationalStatus Total Size Partition Style
    # ------ -------------     ------------- ------------ ----------------- ---------- ---------------
    # 2      Msft Virtual Disk               Healthy      Online                512 GB RAW            
    
  2. 將磁碟格式化。 在此範例中,磁碟編號為 2。

    # Format SAP ASCS Disk number '2', with drive letter 'S'
    $SAPSID = "PR1"
    $DiskNumber = 2
    $DriveLetter = "S"
    $DiskLabel = "$SAPSID" + "SAP"
    
    Get-Disk -Number $DiskNumber | Where-Object PartitionStyle -Eq "RAW" | Initialize-Disk -PartitionStyle GPT -PassThru |  New-Partition -DriveLetter $DriveLetter -UseMaximumSize | Format-Volume  -FileSystem ReFS -NewFileSystemLabel $DiskLabel -Force -Verbose
    # Example outout
    # DriveLetter FileSystemLabel FileSystem DriveType HealthStatus OperationalStatus SizeRemaining      Size
    # ----------- --------------- ---------- --------- ------------ ----------------- -------------      ----
    # S           PR1SAP          ReFS       Fixed     Healthy      OK                    504.98 GB 511.81 GB
    
  3. 確認磁碟現在已顯示為叢集磁碟。

    # List all disks
    Get-ClusterAvailableDisk -All
    # Example output
    # Cluster    : pr1clust
    # Id         : 88ff1d94-0cf1-4c70-89ae-cbbb2826a484
    # Name       : Cluster Disk 1
    # Number     : 2
    # Size       : 549755813888
    # Partitions : {\\?\GLOBALROOT\Device\Harddisk2\Partition2\}
    
  4. 在該叢集中註冊磁碟。

    # Add the disk to cluster 
    Get-ClusterAvailableDisk -All | Add-ClusterDisk
    # Example output  
    # Name           State  OwnerGroup        ResourceType 
    # ----           -----  ----------        ------------ 
    # Cluster Disk 1 Online Available Storage Physical Disk
    

適用於 SAP ASCS/SCS 叢集共用磁碟的 SIOS DataKeeper Cluster Edition

只有在您使用協力廠商軟體 SIOS DataKeeper 叢集版本來建立模擬叢集共用磁碟的鏡像儲存體時,才適用本節。

您現在在 Azure 中有運作中的 Windows Server 容錯移轉叢集組態。 若要安裝 SAP ASCS/SCS 執行個體,您需要有一個共用磁碟資源。 其中一個選項是使用 SIOS DataKeeper Cluster Edition,這是一種可用來建立共用磁碟資源的協力廠商解決方案。

為 SAP ASCS/SCS 叢集共用磁碟安裝 SIOS DataKeeper Cluster Edition 包含下列工作︰

  • 視需要新增 Microsoft .NET Framework。 如需最新的 .NET Framework 需求,請參閱 SIOS 文件
  • 安裝 SIOS DataKeeper
  • 設定 SIOS DataKeeper

安裝 SIOS DataKeeper

在叢集中的每個節點上安裝 SIOS DataKeeper Cluster Edition。 若要使用 SIOS DataKeeper 建立虛擬共用儲存體,請建立同步處理的鏡像,然後模擬叢集共用儲存體。

安裝 SIOS 軟體之前,請先建立 DataKeeperSvc 網域使用者。

注意

將 DataKeeperSvc 往欲使用者同時新增到兩個叢集節點上的 [本機管理員] 群組中。

  1. 在兩個叢集節點上都安裝 SIOS 軟體。

    SIOS 安裝程式

    圖 31:第一個 SIOS DataKeeper 安裝頁面

    第一個 SIOS DataKeeper 安裝頁面

  2. 在對話方塊中,選取 [是]

    圖 32:DataKeeper 通知將停用某個服務

    DataKeeper 通知將停用某個服務

  3. 在對話方塊中,建議您選取 [網域或伺服器帳戶]

    圖 33:SIOS DataKeeper 的使用者選取項目

    SIOS DataKeeper 的使用者選取項目

  4. 輸入您為 SIOS DataKeeper 建立的網域帳戶使用者名稱和密碼。

    圖 34:為 SIOS DataKeeper 安裝輸入網域使用者名稱和密碼

    為 SIOS DataKeeper 安裝輸入網域使用者名稱和密碼

  5. 為您的 SIOS DataKeeper 執行個體安裝授權金鑰,如圖 35 所示。

    圖 35:輸入您的 SIOS DataKeeper 授權金鑰

    輸入您的 SIOS DataKeeper 授權金鑰

  6. 出現提示時,重新啟動虛擬機器。

設定 SIOS DataKeeper

在兩個節點上都安裝 SIOS DataKeeper 之後,開始設定組態。 組態的目標是要在連接至每個虛擬機器的額外磁碟之間進行同步資料複寫。

  1. 啟動 DataKeeper 管理與組態工具,然後選取 [連線伺服器]

    圖 36:SIOS DataKeeper 管理和組態工具

    SIOS DataKeeper 管理和組態工具

  2. 輸入管理和組態工具應連接之第一個節點的名稱或 TCP/IP 位址,然後在第二個步驟中,插入第二個節點。

    圖 37:插入管理和組態工具應連接之第一個節點的名稱或 TCP/IP 位址,然後在第二個步驟中,插入第二個節點

    插入管理和組態工具應連接的第一個節點名稱或 TCP/IP 位址,然後在第二個步驟中,插入第二個節點

  3. 在兩個節點之間建立複寫作業。

    圖 38:建立複寫作業

    建立複寫作業

    精靈會引導您完成建立複寫作業的程序。

  4. 定義複寫作業的名稱。

    圖 39:定義複寫作業的名稱

    定義複寫作業的名稱

    圖 40:定義節點 (應該是目前的來源節點) 的基底資料

    定義節點 (應該是目前的來源節點) 的基底資料

  5. 定義名稱、TCP/IP 位址和目標節點的磁碟區。

    圖 41:定義名稱、TCP/IP 位址和目前目標節點的磁碟區

    定義名稱、TCP/IP 位址和目前目標節點的磁碟區

  6. 定義壓縮演算法。 在我們的範例中,建議壓縮複寫資料流。 尤其是在重新同步處理的情況下,壓縮複寫資料流可大幅縮短重新同步處理時間。 壓縮會使用虛擬機器的 CPU 和 RAM 資源。 隨著壓縮率增加,使用的 CPU 資源數量也跟著增加。 您可以稍後調整此設定。

  7. 另一個您需要檢查的設定是複寫是以非同步方式還是同步方式進行。 當您保護 SAP ASCS/SCS 組態時,您必須使用同步複寫。

    圖 42︰定義複寫詳細資料

    定義複寫詳細資料

  8. 定義是否應該向 Windows Server 容錯移轉叢集的叢集組態指出複寫作業所複寫的磁碟區是共用磁碟。 就 SAP ASCS/SCS 組態而言,選取 [是] ,如此 Windows 叢集才會將複寫的磁碟區視為可用來作為叢集磁碟區的共用磁碟。

    圖 43:選取 [是] 以將複寫的磁碟區設定為叢集磁碟區

    選取 [是] 以將複寫的磁碟區設定為叢集磁碟區

    建立磁碟區之後,DataKeeper 管理和組態工具會顯示複寫作業是使用中。

    圖 44:SAP ASCS/SCS 共用磁碟的 DataKeeper 同步鏡像處於作用中狀態

    SAP ASCS/SCS 共用磁碟的 DataKeeper 同步鏡像處於作用中狀態

    「容錯移轉叢集管理員」現在會顯示磁碟為 DataKeeper 磁碟,如圖 45 所示:

    圖 45:「容錯移轉叢集管理員」顯示 DataKeeper 複寫的磁碟

    「容錯移轉叢集管理員」顯示 DataKeeper 複寫的磁碟

下一步