你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用适用于 SAP 应用程序的 Azure NetApp 文件 (SMB) 实现 Windows 上 Azure VM 的 SAP NetWeaver 高可用性

本文介绍如何使用 Azure NetApp 文件上的 SMB 部署和配置虚拟机、安装群集框架,以及在 Windows VM 上安装具有高可用性的 SAP NetWeaver 7.50 系统。

文本不会详细介绍数据库层。 假设已创建 Azure 虚拟网络

请先阅读以下 SAP 说明和文档:

概述

SAP 开发了可以取代群集共享磁盘的新方法和新方案,用于将 Windows 故障转移群集上的 SAP ASCS/SCS 实例群集化。 可以使用 SMB 文件共享来部署 SAP 全局主机文件,而不使用群集共享磁盘。 Azure NetApp 文件将 Active Directory 和 NTFS ACL 配合使用来支持 SMBv3(以及 NFS)。 Azure NetApp 文件自然而然具备高可用性(因为它是 PaaS 服务)。 这些功能使得 Azure NetApp 文件非常适合用于托管 SAP 全局 SMB 文件共享。
支持 Microsoft Entra 域服务和Active Directory 域服务 (AD DS)。 可以将现有 Active Directory 域控制器与 Azure NetApp 文件一起使用。 域控制器可以作为虚拟机放在 Azure 中,也可以通过 ExpressRoute 或 S2S VPN 放在本地。 本文将在 Azure VM 中使用域控制器。
SAP Netweaver 中心服务的高可用性 (HA) 需要共享存储。 过去,若要在 Windows 上实现此目的,需要构建 SOFS 群集,或使用 SIOS 之类的群集共享磁盘软件。 现在,可以使用部署在 Azure NetApp 文件上的共享存储来实现 SAP Netweaver HA。 将 Azure NetApp 文件用于共享存储就无需使用 SOFS 或 SIOS。

注意

将 SAP 系统与 SAP 内核 7.22(及更高版本)配合使用时,即可通过文件共享来群集化 SAP ASCS/SCS 实例。 有关更多详细信息,请参阅 SAP 说明 2698948

SAP ASCS/SCS HA Architecture with SMB share

SMB 文件共享的先决条件为:

  • SMB 3.0(或更高版本)协议。
  • 能够设置 Active Directory 用户组和 computer$ 计算机对象的 Active Directory 访问控制列表 (ACL)。
  • 必须为文件共享启用 HA。

此参考体系结构中 SAP Central Services 的共享由 Azure NetApp 文件提供:

SAP ASCS/SCS HA Architecture with SMB share details

创建并装载用于 Azure NetApp 文件的 SMB 卷

执行以下步骤,以准备好使用 Azure NetApp 文件。

  1. 按照创建 NetApp 帐户中所述的步骤创建 Azure NetApp 帐户

  2. 按照设置容量池中的说明设置容量池

  3. Azure NetApp 文件资源必须驻留在委托的子网中。 按照将子网委托给 Azure NetApp 文件中的说明创建委托的子网。

    重要

    在创建 SMB 卷之前,需要创建 Active Directory 连接。 查看 Active Directory 连接要求

    创建 Active Directory 连接时,请确保输入的 SMB 服务器(计算机帐户)前缀不超过 8 个字符,以避免违反 SAP 应用程序的 13 个字符主机名限制(会自动在 SMB 计算机帐户名称中添加一个后缀)。
    SAP 应用程序的主机名限制在 2718300 - 物理和虚拟主机名长度限制611361 - SAP ABAP 平台服务器的主机名中进行了介绍。

  4. 按照创建 Active Directory 连接中所述创建 Active Directory 连接。 确保将运行 SWPM 以安装 SAP 系统的用户添加为 Active Directory 连接中的 Administrators privilege user。 如果没有将 SAP 安装用户添加为 Active Directory 连接中的 Administrators privilege user,则 SWPM 将失败,并提示权限错误,除非你以具有提升的域管理员权限的用户身份运行 SWPM。

  5. 按照添加 SMB 卷中的说明创建 SMB Azure NetApp 文件 SMB 卷。

  6. 在 Windows 虚拟机上装载 SMB 卷。

提示

有关如何装载Azure NetApp 文档卷的说明,请登录到Azure 门户,然后导航到Azure NetApp 文档对象,选择“”边栏选项卡,然后选择“装载说明”。

重要注意事项

在考虑将 Azure NetApp 文件用于 SAP Netweaver 体系结构时,请注意以下重要注意事项:

  • 最小容量池为 4 TiB。 容量池大小可以以 1 TiB 增量进行增加。
  • 最小卷大小为 100 GiB
  • 所选的虚拟网络必须具有一个委派给 Azure NetApp 文件的子网。
  • Azure NetApp 文件卷的吞吐量和性能特征取决于卷配额和服务级别,如 Azure NetApp 文件的服务级别中所述。 调整 SAP Azure NetApp 卷的大小时,请确保生成的吞吐量满足应用程序要求。

使用 Windows 故障转移群集准备 SAP HA 的基础结构

  1. 为 Azure 内部负载均衡器设置 ASCS/SCS 负载均衡规则
  2. 将 Windows 虚拟机添加到域
  3. 在 SAP ASCS/SCS 实例的两个群集节点上添加注册表条目
  4. 为 SAP ASCS/SCS 实例设置 Windows Server 故障转移群集
  5. 如果使用的是 Windows Server 2016,我们建议配置 Azure 云见证

在两个节点上安装 SAP ASCS 实例

需要 SAP 提供的以下软件:

在第一个 ASCS/SCS 群集节点上安装 ASCS/SCS 实例

  1. 在第一个群集节点上安装 SAP ASCS/SCS 实例。 启动 SAP SWPM 安装工具,然后导航到“产品”>“DBMS”>“安装”>“应用程序服务器 ABAP”(或“Java”)>“高可用性系统”>“ASCS/SCS 实例”>“第一个群集节点”。

  2. 在 SWPM 中选择“文件共享群集”作为群集共享配置。

  3. 当步骤“SAP 系统群集参数”出现提示时,请输入已作为“文件共享主机名”创建的 Azure NetApp 文件 SMB 共享主机名 。 在此示例中,SMB 共享主机名为 anfsmb-9562。

    重要

    如果 SWPM 中的“先决条件检查程序结果”显示持续可用性功能的条件未被满足,可以按照尝试访问 Windows 中不再存在的共享文件夹时错误消息延迟中的说明解决此问题。

    提示

    如果 SWPM 中的“先决条件检查程序结果”显示“交换空间大小”条件未被满足,可以通过导航到“我的电脑”>“系统属性”>“性能设置”>“高级”>“虚拟内存”>“更改”来调整交换空间大小。

  4. 使用 PowerShell 配置 SAP 群集资源:SAP-SID-IP 探测端口。 请根据配置探测端口中所述,在某个 SAP ASCS/SCS 群集节点上执行此配置。

在第二个 ASCS/SCS 群集节点上安装 ASCS/SCS 实例

  1. 在第二个群集节点上安装 SAP ASCS/SCS 实例。 启动 SAP SWPM 安装工具,然后导航到“产品”>“DBMS”>“安装”>“应用程序服务器 ABAP”(或“Java”)>“高可用性系统”>“ASCS/SCS 实例”>“附加群集节点”。

更新 SAP ASCS/SCS 实例配置文件

更新 SAP ASCS/SCS 实例配置文件 <SID>ASCS/SCS<Nr><Host> 中的参数。

参数名称 参数值
gw/netstat_once 0
enque/encni/set_so_keepalive true
service/ha_check_node 1

仅当使用 ENSA1 时才需要参数 enque/encni/set_so_keepalive
重启 SAP ASCS/SCS 实例。 按照在 SAP ASCS/SCS 实例的群集节点上设置注册表项的说明,在两个 SAP ASCS/SCS 群集节点上设置 KeepAlive 参数。

安装 DBMS 实例和 SAP 应用程序服务器

安装以下组件以完成 SAP 安装:

  • 一个 DBMS 实例
  • 一个主 SAP 应用程序服务器
  • 一个附加的 SAP 应用程序服务器

测试 SAP ASCS/SCS 实例故障转移

在群集节点 A 与群集节点 B 之间来回故障转移

在此测试方案中,我们将群集节点 sapascs1 称为节点 A,将群集节点 sapascs2 称为节点 B。

  1. 验证群集资源是否在节点 A 上运行。Figure 1: Windows Server failover cluster resources running on node A prior before the failover test

  2. 重启群集节点 A。SAP 群集资源将移到群集节点 B。Figure 2: Windows Server failover cluster resources running on node B after the failover test

锁定条目测试

1. 验证 SAP 排队复制服务器 (ERS) 是否处于活动状态
2. 登录到 SAP 系统,执行事务 SU01,然后在更改模式下打开一个用户 ID。 这会生成 SAP 锁定条目。
3. 登录到 SAP 系统后,通过导航到事务 ST12 来显示该锁定条目。
4. 将 ASCS 资源从群集节点 A 故障转移到群集节点 B。
5. 验证在执行 SAP ASCS/SCS 群集资源故障转移之前生成的锁定条目是否已保留。

Figure 3: Lock entry is retained after failover test

有关详细信息,请参阅 Troubleshooting for Enqueue Failover in ASCS with ERS(排查 ERS 中 ASCS 的排队故障转移问题)

可选配置

下图显示了 Azure VM 上运行 Microsoft Windows 故障转移群集以减少 VM 总数的多个 SAP 实例。

这可以是 SAP ASCS/SCS 群集上的本地 SAP 应用程序服务器,也可以是 Microsoft SQL Server Always On 节点上的 SAP ASCS/SCS 群集角色。

重要

不支持在 SQL Server Always On 节点上安装本地 SAP 应用程序服务器。

SAP ASCS/SCS 和 Microsoft SQL Server 数据库都是单一故障点 (SPOF)。 为了在 Windows 环境中保护这些 SPOF,使用了 Azure NetApp 文件 SMB。

虽然 SAP ASCS/SCS 的资源消耗较小,但建议将 SQL Server 或 SAP 应用程序服务器的内存配置减少 2 GB。

使用 NetApp 文件 SMB 的 WSFC 节点上的 SAP 应用程序服务器

Figure 4: Windows Server failover clustering configuration in Azure with Windows NetApp Files SMB and locally installed SAP Application Server

注意

图为使用额外的本地磁盘。 对于不会在 OS 驱动器 (C:) 上安装应用程序软件的客户,这是可选项

使用 Azure NetApp 文件 SMB 的 SQL Server Always On 节点上的 SAP ASCS/SCS

重要

不支持将 Azure NetApp 文件 SMB 用于任何 SQL Server 卷。

Figure : SAP ASCS/SCS on SQL Server Always On nodes using Azure NetApp Files SMB

注意

图为使用额外的本地磁盘。 对于不会在 OS 驱动器 (C:) 上安装应用程序软件的客户,这是可选项

使用 Windows DFS-N 支持为基于 SMB 的文件共享创建灵活的 SAPMNT 共享

使用 DFS-N,可以将单个 sapmnt 卷用于部署在同一 Azure 区域和订阅中的 SAP 系统。 使用 Windows DFS-N 支持为基于 SMB 的文件共享创建灵活的 SAPMNT 共享展示了如何进行设置。

后续步骤