你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
针对 SAP ASCS/SCS 使用 Windows 故障转移群集和共享磁盘准备 SAP HA 的 Azure 基础结构
Windows
本文介绍使用群集共享磁盘作为群集化 SAP ASCS 实例的选项,在 Windows 故障转移群集上安装和配置高可用性 SAP ASCS/SCS 实例之前准备 Azure 基础结构所要执行的步骤。 文档中提供了两种群集共享磁盘备选方案:
- Azure 共享磁盘
- 使用 SIOS DataKeeper Cluster Edition 创建可模拟群集共享磁盘的镜像存储
本文档没有涵盖数据库层。
先决条件
在开始安装之前,请查看以下文章:
创建 ASCS VM
对于 SAP ASCS/SCS 群集,根据部署的类型在 Azure 可用性集或 Azure 可用性区域中部署两个 VM。 在部署 VM 后,请执行以下操作:
- 为 SAP ASCS/SCS 实例创建 Azure 内部负载均衡器。
- 将 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 群集) | 不适用 | |
ASCS 群集网络名称 | pr1-ascscl | 10.0.0.43 | 不适用 | |
ERS 群集网络名称(仅适用于 ERS2) | pr1-erscl | 10.0.0.44 | 不适用 |
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 群集) | 不适用 | |
ASCS 群集网络名称 | pr1-ascscl | 10.0.0.43 | 不适用 | |
ERS 群集网络名称(仅适用于 ERS2) | pr1-erscl | 10.0.0.44 | 不适用 |
本文档中所述的步骤对于这两种部署类型是相同的。 但如果群集在可用性集中运行,则需部署 Azure 高级共享磁盘的 LRS (Premium_LRS);如果群集在可用性区域中运行,则需部署 Azure 高级共享磁盘的 ZRS (Premium_ZRS)。
注意
Azure 共享磁盘不需要 Azure 邻近放置组。 但对于使用 PPG 进行 SAP 部署,请遵循以下准则:
- 如果要将 PPG 用于在某个区域部署的 SAP 系统,那么共享磁盘的所有虚拟机必须属于同一个 PPG。
- 如果要将 PPG 用于跨区域部署的 SAP 系统,如文档“具有区域部署的临近放置组”所述,则可以将 Premium_ZRS 存储附加到共享磁盘的虚拟机。
创建 Azure 内部负载均衡器
在配置 VM 期间,可以在网络部分中创建或选择现有的负载均衡器。 对于 Windows 上的 ENSA1 体系结构,SAP ASCS/SCS 只需要一个虚拟 IP 地址。 另一方面,ENSA2 体系结构需要两个虚拟 IP 地址 - 一个用于 SAP ASCS/SCS,另一个用于 ERS2。 在 Windows 上为 SAP ASCS/SCS 的 HA 设置配置标准内部负载均衡器时,请遵循以下准则。
- 前端 IP 配置:创建前端 IP(例如:10.0.0.43)。 选择与你的 ASCS/ERS 虚拟机相同的虚拟网络和子网。
- 后端池:创建后端池并添加 ASCS 和 ERS VM。 在本示例中为 VM pr1-ascs-10 和 pr1-ascs-11。
- 入站规则:创建负载均衡规则。
- 前端 IP 地址:选择前端 IP
- 后端池:选择后端池
- 检查“高可用性端口”
- 协议:TCP
- 运行状况探测:创建具有以下详细信息的运行状况探测
- 协议:TCP
- 端口:[例如:对 ASCS 使用 620<Instance-no.>]
- 间隔: 5
- 探测阈值: 2
- 空闲超时 (分钟):30
- 选中“启用浮动 IP”
- 仅适用于 ENSA2 体系结构:创建其他前端 IP (10.0.0.44)、负载均衡规则(对 ERS2 运行状况探测端口使用 621<Instance-no.>),如第 1 点和第 3 点中所述。
注意
不会遵循运行状况探测配置属性 numberOfProbes(在门户中也称为“运行不正常阈值”)。 因此,要控制成功或失败的连续探测数量,请将属性“probeThreshold”设置为 2。 当前无法使用 Azure 门户设置此属性,请使用 Azure CLI 或 PowerShell 命令。
注意
如果没有公共 IP 地址的 VM 放在内部(无公共 IP 地址)标准 Azure 负载均衡器的后端池中,就不会有出站 Internet 连接,除非执行额外的配置来允许路由到公共终结点。 有关如何实现出站连接的详细信息,请参阅 SAP 高可用性方案中使用 Azure 标准负载均衡器的虚拟机的公共终结点连接。
提示
借助适用于带 Azure 共享磁盘的 SAP ASCS/SCS 实例的 WSFC 的 Azure 资源管理器模板,你可以通过 ERS1 将 Azure 共享磁盘用于一个 SAP SID,从而自动执行基础结构准备工作。
Azure ARM 模板会创建两个 Windows 2019 或 2016 VM,创建 Azure 共享磁盘并将其附加到 VM。 同时还会创建并配置 Azure 内部负载均衡器。
有关详细信息,请参阅 ARM 模板。
在 ASCS/SCS 实例的两个群集节点上添加注册表项
如果连接空闲了一段时间并且该时间超过空闲超时,则 Azure 负载均衡器可能会关闭连接。 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 address 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 格式化共享磁盘
获取磁盘编号。 在其中一个群集节点上运行以下 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。
# 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 output # DriveLetter FileSystemLabel FileSystem DriveType HealthStatus OperationalStatus SizeRemaining Size # ----------- --------------- ---------- --------- ------------ ----------------- ------------- ---- # S PR1SAP ReFS Fixed Healthy OK 504.98 GB 511.81 GB
验证磁盘现在是否作为群集磁盘显示。
# 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\}
在群集中注册磁盘。
# 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 Cluster Edition 创建对群集共享磁盘进行模拟的镜像存储时,本部分才适用。
现在,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 域用户添加到两个群集节点上的“本地管理员”组中。
在两个群集节点上安装 SIOS 软件。
SIOS DataKeeper 安装程序的第一页
在对话框中,选择“是”。
DataKeeper 通知你某个服务将被禁用
在对话框中,建议选中“域或服务器帐户”。
用户为 SIOS DataKeeper 选中的选项
输入为 SIOS DataKeeper 创建的域帐户用户名和密码。
输入域用户名和密码以安装 SIOS DataKeeper
如图 35 所示,安装 SIOS DataKeeper 实例的许可证密钥。
输入你的 SIOS DataKeeper 许可证密钥
根据提示重新启动虚拟机。
配置 SIOS DataKeeper
在两个节点上安装 SIOS DataKeeper 之后,开始进行配置。 配置的目的是在连接到每个虚拟机的附加磁盘之间进行同步数据复制。
启动 DataKeeper 管理和配置工具,并选择“连接服务器”。
SIOS DataKeeper 管理和配置工具
输入管理和配置工具应连接到的第一个节点的名称或 TCP/IP 地址,并在第二个步骤中,插入第二个节点的相关数据。
插入管理和配置工具应连接到的第一个节点的名称或 TCP/IP 地址,并在第二个步骤中插入第二个节点的相关数据
在两个节点之间创建复制作业。
创建复制作业
向导指导完成创建复制作业的过程。
定义复制作业的名称。
定义复制作业的名称
定义节点(应为当前源节点)的基本数据
定义目标节点的名称、TCP/IP 地址和磁盘卷。
定义当前目标节点的名称、TCP/IP 地址和磁盘卷
定义压缩算法。 在本例中,建议压缩复制流。 尤其是在重新同步的情况下,压缩复制流可大幅缩短重新同步的时间。 压缩需要占用虚拟机的 CPU 和 RAM 资源。 随着压缩率增加,CPU 资源量也增加。 稍后可调整此设置。
需要检查的另一项设置是复制以异步还是同步方式发生。 保护 SAP ASCS/SCS 配置时,必须使用同步复制。
定义复制详细信息
定义是否应向 Windows Server 故障转移群集配置将复制作业所复制的卷表示为共享磁盘。 对于 SAP ASCS/SCS 配置,选择“是”,以便 Windows 群集将复制的卷视为可用作群集卷的共享磁盘。
选择“是”,将复制的卷设置为群集卷
创建卷后,DataKeeper 管理和配置工具显示复制作业处于活动状态。
SAP ASCS/SCS 共享磁盘的 DataKeeper 同步镜像处于活动状态
现在,故障转移群集管理器将磁盘显示为 DataKeeper 磁盘,如图 45 所示:
故障转移群集管理器显示 DataKeeper 复制的磁盘