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

使用 Azure 文件存储 SMB 安装 HA SAP NetWeaver

Microsoft 和 SAP 现在完全支持Azure 文件存储高级服务器消息块(SMB)文件共享。 SAP 软件预配管理器(SWPM)1.0 SP32 和 SWPM 2.0 SP09(及更高版本)支持Azure 文件存储高级 SMB 存储。

调整大小Azure 文件存储高级 SMB 共享有特殊要求。 本文包含有关如何分发工作负荷、选择足够存储大小以及满足Azure 文件存储高级 SMB 的最低安装要求的具体建议。

高可用性 (HA) SAP 解决方案需要高度可用的文件共享来托管 sapmnt传输接口 目录。 Azure 文件存储高级 SMB 是一个简单的 Azure 平台即服务(PaaS)解决方案,适用于 Windows 环境中的 SAP 共享文件系统。 可以将Azure 文件存储高级 SMB 与可用性集和可用性区域配合使用。 还可以将Azure 文件存储高级 SMB 用于灾难恢复(DR)方案到另一个区域。

注意

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

为 SAP 系统调整Azure 文件存储高级 SMB 的大小和分发

规划Azure 文件存储高级 SMB 部署时,请评估以下几点:

  • 每个存储帐户可以创建一次文件共享名称 sapmnt 。 可以在同一 /sapmnt 共享上创建其他存储 ID(SID),例如 /sapmnt/<SID1> 和 /sapmnt/<SID2>
  • 选择适当的大小、IOPS 和吞吐量。 建议的共享大小为每个 SID 256 GB。 共享的最大大小为 5,120 GB。
  • Azure 文件存储高级 SMB 对于每个存储帐户超过 100 万个文件的非常大的 sapmnt 共享,性能不佳。  具有数百万个创建数百万个作业日志文件的批处理作业的客户应定期重新组织它们,如 SAP 说明 16083 中所述。 如果需要,可以将旧作业日志移动到另一个Azure 文件存储高级 SMB 文件共享或存档。 如果预计 sapmnt 非常大,请考虑其他选项(如Azure NetApp 文档)。
  • 建议使用专用网络终结点。
  • 避免将过多的 SID 放在单个存储帐户及其文件共享中。
  • 作为一般指导,不要将四个以上的非生产 SID 组合在一起。
  • 不要将整个开发、生产和质量保证系统(QAS)布局放在一个存储帐户或文件共享中。 共享失败会导致整个 SAP 布局停机。
  • 建议将 sapmnt传输目录放在不同的存储帐户上,但系统较小。 在安装 SAP 主应用程序服务器期间,SAPinst 将请求 传输 主机名。 输入其他存储帐户的 FQDN 作为 storage_account.file.core.windows.net>。<
  • 不要将用于接口的文件系统放在与 /sapmnt/<SID> 相同的存储帐户上。
  • 必须将 SAP 用户和组添加到 sapmnt 共享。 在Azure 门户中设置存储文件数据 SMB 共享提升的参与者权限。

单独的存储帐户之间分发传输接口sapmnt 可以提高吞吐量和复原能力。 它还简化了性能分析。 如果将许多 SID 和其他文件系统放在单个Azure 文件存储存储帐户中,并且存储帐户的性能不佳,因为达到吞吐量限制,则很难确定哪个 SID 或应用程序导致问题。

规划

重要

在具有 Active Directory 集成的 Azure 文件存储 高级 SMB 上安装 SAP HA 系统需要跨团队协作。 建议以下团队协同工作以实现任务:

  • Azure 团队:设置和配置存储帐户、脚本执行和 Active Directory 同步。
  • Active Directory 团队:创建用户帐户和组。
  • 基础团队:根据需要运行 SWPM 并设置访问控制列表(ACL)。

下面是在与 Active Directory 集成Azure 文件存储高级 SMB 上安装 SAP NetWeaver HA 系统的先决条件:

  • 将 SAP 服务器加入 Active Directory 域。
  • 使用 Microsoft Entra 连接将包含 SAP 服务器的 Active Directory 域复制到 Microsoft Entra ID。
  • 确保至少有一个 Active Directory 域控制器位于 Azure 环境中,以避免遍历 Azure ExpressRoute 以联系本地域控制器。
  • 确保Azure 支持团队会审查Azure 文件存储 SMB 与 Active Directory 集成的文档。 视频显示出于简化原因而修改了(DNS)和跳过了(DFS-N)的额外配置选项。 但这些是有效的配置选项。
  • 确保运行 Azure 文件存储 PowerShell 脚本的用户有权在 Active Directory 中创建对象。
  • 使用 SWPM 版本 1.0 SP32 和 SWPM 2.0 SP09 或更高版本进行安装。 SAPinst 修补程序必须是 749.0.91 或更高版本。
  • 在运行脚本的 Windows Server 实例上安装 PowerShell 的最新版本。

安装顺序

创建用户和组

Active Directory 管理员应事先创建具有本地管理员istrator 权限的三个域用户,以及本地 Windows Server Active Directory 实例中的一个全局组。

SAPCONT_ADMIN@SAPCONTOSO.local具有域管理员istrator 权限,用于将 SAPinst、sid>adm 和 SAPService<SID 作为 SAP 系统用户和 SAP_<SAPSID>>_Global管理员 组运行。< SAP 安装指南包含了这些帐户所需的具体详细信息。

注意

SAP 用户帐户不应是域管理员。 我们通常建议不要使用 <sid>adm 来运行 SAPinst。

检查同步服务管理器

Active Directory 管理员或 Azure 管理员应在 Microsoft Entra 连接中检查 Synchronization Service Manager。 默认情况下,大约需要 30 分钟才能副本 (replica)到 Microsoft Entra ID。

创建存储帐户、专用终结点和文件共享

Azure 管理员应完成以下任务:

  1. “基本信息 ”选项卡上,创建具有高级区域冗余存储(ZRS)或本地冗余存储(LRS)的存储帐户。 具有区域性部署的客户应选择 ZRS。 在这里,管理员需要在设置标准帐户或高级版帐户之间进行选择。

    Screenshot of the Azure portal that shows basic information for creating a storage account.

    重要

    对于生产用途,我们建议选择高级版帐户。 对于非生产用途, 标准 帐户应足够。

  2. “高级 ”选项卡上,默认设置应为“确定”。

    Screenshot of the Azure portal that shows advanced information for creating a storage account.

  3. 在“网络”选项卡上,管理员决定使用专用终结点。

    Screenshot of the Azure portal that shows networking information for creating a storage account.

    1. 选择 “添加存储帐户的专用终结点 ”,然后输入用于创建专用终结点的信息。

      Screenshot of the Azure portal that shows options for private endpoint definition.

    2. 如有必要,请将 DNS A 记录添加到 Windows DNS 中 <storage_account_name>.file.core.windows.net。 (这可能需要位于新的 DNS 区域中。与 DNS 管理员讨论本主题。 新区域不应在组织外部更新。

      Screenshot of DNS Manager that shows private endpoint DNS definition.

  4. 创建大小合适的 sapmnt 文件共享。 建议的大小为 256 GB,可提供 650 IOPS、75 MB/秒出口和 50-MB/秒入口。

    Screenshot of the Azure portal that shows SMB share definition.

  5. 下载Azure 文件存储 GitHub 内容并运行脚本

    此脚本在 Active Directory 中创建计算机帐户或服务帐户。 安装具有以下要求:

    • 运行脚本的用户必须有权在包含 SAP 服务器的 Active Directory 域中创建对象。 通常,组织使用域管理员istrator 帐户,例如SAPCONT_ADMIN@SAPCONTOSO.local
    • 在用户运行脚本之前,请确认此 Active Directory 域用户帐户已与 Microsoft Entra ID 同步。 例如,打开Azure 门户并转到 Microsoft Entra 用户,检查该用户SAPCONT_ADMIN@SAPCONTOSO.local存在,并验证 Microsoft Entra 用户帐户。
    • 为包含包含文件共享的存储帐户的资源组授予“参与者”基于角色的访问控制(RBAC)角色。 在此示例中,用户 SAPCONT_ADMIN@SAPCONTOSO.onmicrosoft.com 被授予相应资源组的“参与者”角色。
    • 用户应在使用具有前面指定权限的 Active Directory 域用户帐户登录到 Windows Server 实例时运行脚本。

    在此示例中,Active Directory 管理员将以 身份 SAPCONT_ADMIN@SAPCONTOSO.local登录到 Windows Server 实例。 当管理员使用 PowerShell 命令 Connect-AzAccount时,管理员以用户 SAPCONT_ADMIN@SAPCONTOSO.onmicrosoft.com身份连接。 理想情况下,Active Directory 管理员和 Azure 管理员应协同处理此任务。

    Screenshot of the PowerShell script that creates a local Active Directory account.

    Screenshot of the Azure portal after successful PowerShell script execution.

    重要

    当用户运行 PowerShell 脚本命令 Connect-AzAccount时,强烈建议输入对应于并映射到用于登录到 Windows Server 实例的 Active Directory 域用户帐户的 Microsoft Entra 用户帐户。

    脚本成功运行后,转到 存储>File 共享,并验证是否显示 Active Directory:已配置。

  6. 将 SAP 用户 <sid>admSAPService<SID 以及 SAP_<SAPSID>>_Global管理员 组分配给Azure 文件存储高级 SMB 文件共享。 在Azure 门户中选择存储文件数据 SMB 共享提升参与者的角色

  7. 安装后检查 sapmnt 文件共享上的 ACL。 然后添加 DOMAIN\CLUSTER_NAME$ 帐户、DOMAIN\sid>adm 帐户、DOMAIN\<SAPService<SID 帐户和 SAP_<SID>>_Global管理员 组。 这些帐户和组应完全控制 sapmnt 目录。

    重要

    在 SAPinst 安装之前完成此步骤。 在 SAPinst 在文件共享上创建目录和文件后,很难或不可能更改 ACL。

    以下屏幕截图显示了如何添加计算机计算机帐户。

    Screenshot of Windows Server that shows adding the cluster name to the local Active Directory instance.

    可以通过选择“对象类型”下的“计算机找到 DOMAIN\CLUSTER_NAME$ 帐户。

    Screenshot of selecting an object type for an Active Directory computer account.

    Screenshot of options for the computer object type.

    Screenshot of computer account access properties.

  8. 如有必要,请将为Azure 文件存储创建的计算机帐户移动到没有帐户过期的 Active Directory 容器。 计算机帐户的名称是存储帐户的短名称。

    重要

    若要初始化 SMB 共享的 Windows ACL,请将共享装载一次到驱动器号。

    存储密钥是密码,用户为 Azure\<SMB 共享名称>

    Windows screenshot of the one-time mount of the SMB share.

完成 SAP 基础任务

SAP 基础管理员应完成以下任务:

  1. 在 ASCS/ERS 节点上安装 Windows 群集并添加云见证
  2. 第一个群集节点安装要求Azure 文件存储 SMB 存储帐户名称。 输入 FQDN <storage_account_name>.file.core.windows.net。 如果 SAPinst 不接受超过 13 个字符,SWPM 版本太旧。
  3. 修改 ASCS/SCS 实例的 SAP 配置文件
  4. 更新 Windows Server 故障转移群集 (WSFC) 中 SAP <SID> 角色的探测端口。
  5. 继续安装第二个 ASCS/ERS 节点的 SWPM。 SWPM 只需要配置文件目录的路径。 输入配置文件目录的完整 UNC 路径。
  6. 输入数据库的 UNC 配置文件路径,并安装主应用程序服务器(PAS)和其他应用程序服务器(AAS)。
  7. PAS 安装要求 传输 主机名。 为传输目录提供单独的存储帐户名称的 FQDN。
  8. 验证 SID 和 传输 目录中的 ACL。

灾难恢复设置

Azure 文件存储高级 SMB 支持灾难恢复方案和跨区域副本 (replica)方案。 Azure 文件存储高级 SMB 目录中的所有数据都可以持续同步到 DR 区域的存储帐户。 有关详细信息,请参阅将传输数据中的 文件与 AzCopy 和文件存储同步的过程。

将 ASCS 实例的 DR 事件和故障转移到 DR 区域后,将SAPGLOBALHOST配置文件参数更改为指向 DR 区域中的 Azure 文件存储 SMB。 对 DR 存储帐户执行相同的准备步骤,将存储帐户加入 Active Directory 并为 SAP 用户和组分配 RBAC 角色。

疑难解答

之前下载的 PowerShell 脚本包含一个调试脚本,用于执行用于验证配置的基本检查。

Debug-AzStorageAccountAuth -StorageAccountName $StorageAccountName -ResourceGroupName $ResourceGroupName -Verbose

下面是调试脚本输出的 PowerShell 屏幕截图。

Screenshot of the PowerShell script to validate configuration.

以下屏幕截图显示了验证成功加入域的技术信息。

Screenshot of the PowerShell script to retrieve technical info.

可选配置

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

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

重要

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

SAP ASCS/SCS 和 Microsoft SQL Server 数据库都是单一故障点(SPOF)。 使用 Azure 文件存储 SMB 有助于保护 Windows 环境中的这些 SPO。

尽管 SAP ASCS/SCS 的资源消耗相当小,但我们建议将 SQL Server 或 SAP 应用程序服务器的内存配置减少 2 GB。

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

下图显示了本地安装的 SAP 应用程序服务器。

Diagram of a high-availability setup with additional application servers.

注意

此图显示了使用其他本地磁盘。 对于不会在 OS 驱动器(驱动器 C)上安装应用程序软件的客户,此设置是可选的。

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

下图显示了Azure 文件存储具有本地 SQL Server 设置的 SMB。

重要

不支持对任何 SQL Server 卷使用 Azure 文件存储 SMB。

Diagram of SAP ASCS/SCS on SQL Server Always On nodes using Azure.

注意

此图显示了使用其他本地磁盘。 对于不会在 OS 驱动器(驱动器 C)上安装应用程序软件的客户,此设置是可选的。