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

在 Azure 上的纵向扩展体系结构中运行适用于 Linux 虚拟机的 SAP HANA

Azure
Azure 虚拟机

此参考体系结构演示有关在 Azure 上支持灾难恢复的纵向扩展高可用环境中运行 SAP HANA 的一套成熟做法。 此实现仅侧重于数据库层。

体系结构

此参考体系结构描述了常见的生产系统。 可以选择虚拟机大小以满足组织的需求。 此配置还可以减少到一个虚拟机,具体取决于业务要求。

下图显示了 Azure 上的 SAP HANA 的参考体系结构:

显示区域部署体系结构的示意图。

下载包含本文中的示意图的 Visio 文件

备注

要部署此参考体系结构,需要 SAP 产品和其他非 Microsoft 技术的相应许可。

工作流

此参考体系结构描述在 Azure 中运行的典型 SAP HANA 数据库,该数据库采用高可用性部署以最大限度地提高系统可用性。 体系结构及其组件可以根据业务需求(RTO、RPO、正常运行时间预期、系统角色)进行自定义,并可能减少到单个 VM。 简化后的网络布局可展示此类 SAP 环境的体系结构主体,但不可描述整个企业网络。

网络

虚拟网络。 Azure 虚拟网络服务以增强的安全性将 Azure 资源相互连接起来。 在此体系结构中,虚拟网络在通过在中心辐射型拓扑的中心内部署的 ExpressRoute 网关连接到本地环境。 SAP HANA 数据库包含在自身的辐射型虚拟网络中。 辐射型虚拟网络包含一个用于数据库虚拟机 (VM) 的子网。

如果连接到 SAP HANA 的应用程序在 VM 上运行,则应用程序 VM 应处于同一虚拟网络中,但处于专用应用程序子网中。 或者,如果 SAP HANA 连接不是主数据库,则应用程序 VM 可以处于其他虚拟网络中。 通过按工作负载划分为子网,可以更轻松地实现网络安全组 (NSG),以便设置仅适用于 SAP HANA VM 的安全规则。

区域冗余网关。 网关的作用是连接不同的网络,将本地网络扩展到 Azure 虚拟网络。 建议使用 ExpressRoute 创建不通过公共 Internet 的专用连接,但也可以使用站点到站点连接。 使用区域冗余的 Azure ExpressRoute 或 VPN 网关来防范区域故障。 请参阅区域冗余虚拟网络网关,了解区域部署和区域冗余部署之间的区别。 此处值得一提的是,使用的 IP 地址需要是标准 SKU 才能进行网关的区域部署。

网络安全组 (NSG)。 若要限制虚拟网络的传入和传出网络流量,请创建网络安全组,然后将其分配给特定子网。 数据库和应用程序子网由特定于工作负载的 NSG 保护。

应用程序安全组 (ASG)。 若要基于以应用程序为中心的工作负载在 NSG 内定义细致缜密的网络安全策略,请使用应用程序安全组而不是显式 IP 地址。 应用程序安全组支持按名称对 VM 的网络接口进行分组,并通过筛选受信任网络段中的流量来帮助保护应用程序。

网络接口卡 (NIC)。 网络接口卡使虚拟网络中的虚拟机能够实现各种通信。 传统的本地 SAP 部署为每个虚拟机实现多个 NIC,以便将管理流量与业务流量分开。

在 Azure 中,出于性能原因,无需使用多个 NIC。 多个 NIC 共享 VM 的相同网络吞吐量限制。 但是,若组织需要分离流量,则可为每个 VM 部署多个 NIC,将每个 NIC 连接到不同的子网。 然后,可以使用网络安全组强制对每个子网实施不同的访问控制策略。

Azure NIC 支持多个 IP。 此支持符合 SAP 建议的做法,即使用虚拟主机名进行安装。 有关完整大纲,请参阅 SAP 说明 962955。 (要访问 SAP 说明,需要具有 SAP 服务市场帐户。)

注意

按照 SAP 说明 2731110 中的指定,请勿将任何网络虚拟设备 (NVA) 放置在任何 SAP 应用程序堆栈的应用程序和数据库层之间。 这样做会引入大量数据包处理时间并且会显著降低应用程序性能。

虚拟机

此体系结构使用虚拟机 (VM)。 Azure 在虚拟机上提供高达 23.5 TiB 内存的单节点纵向扩展。 SAP 认证和支持的 SAP HANA 硬件目录列出了为 SAP HANA 数据库认证的虚拟机。 有关 SAP 对虚拟机类型和吞吐量指标的支持 (SAPS) 的详细信息,请参阅 SAP 说明 1928533 - Microsoft Azure 上的 SAP 应用程序:支持的产品和 Azure VM 类型。 (若要访问这一和其他 SAP 说明,需要 SAP 服务市场帐户。)

Microsoft 和 SAP 联合认证了一系列适用于 SAP HANA 工作负载的虚拟机大小。 例如,较小的部署可以在具有 160 GiB 或更高 RAM 的 Edsv4Edsv5 虚拟机上运行。 若要支持虚拟机上最大的 SAP HANA 内存大小(多达 30 TiB),可以使用 Mv3 系列 虚拟机。

第 2 代 (Gen2) 虚拟机。 部署 VM 时,可以使用第 1 代或第 2 代 VM。 第 2 代 VM 支持第 1 代 VM 不提供的一些关键功能。 对于 SAP HANA,这一点尤其重要,因为某些 VM 系列(如 Mv2Mdsv2)仅作为 Gen2 VM 受支持。 同样,对于某些较新 VM 的 Azure 上的 SAP 认证,可能要求 VM 只能是 Gen2 才能获得完全支持(即使 Azure 两种都允许)。 有关详细信息,请参阅 SAP 说明 1928533 - Microsoft Azure 上的 SAP 应用程序:支持的产品和 Azure VM 类型

由于支持 SAP HANA 的所有其他 VM 都支持既可选择仅 Gen2 也可选择 Gen1+2,因此建议将所有 SAP VM 部署为仅 Gen2。 这也适用于内存要求较低的 VM。 即使是最小的 SAP HANA VM 也可以作为 Gen2 VM 运行,并且可以在解除分配时调整为区域中可用的最大 VM 的大小。

邻近放置组 (PPG)。 在可用性区域中部署虚拟机时,该区域内的延迟通常非常适合几乎所有 SAP HANA 使用。 若要进一步优化网络延迟,可以使用 邻近放置组。 这意味着虚拟机位于同一数据中心,以最大程度地减少 SAP HANA 与连接应用程序 VM 之间的延迟。 对于 SAP HANA 体系结构本身,不需要 PPG,它们只是将 SAP HANA 与应用程序层 VM 并置的选项。 由于 PPG 的潜在限制,应尽量少地、且仅在由于 SAP 应用程序和数据库流量之间出现延迟而需要时,才将数据库 AvSet 添加到 SAP 系统的 PPG。 有关 PPG 使用方案的详细信息,请参阅链接文档。 由于 PPG 将工作负载限制到单个数据中心,因此 PPG 不能跨越多个可用性区域。

组件

注意事项

本部分介绍在 Azure 上运行 SAP HANA 的重要注意事项。

伸缩性

此体系结构在一个实例中最多可扩展到 30 TiB 的虚拟机上运行 SAP HANA。

如果工作负载超过最大虚拟机大小,则建议使用多节点 HANA 配置。 对于联机事务处理(OLTP)应用程序,总横向扩展内存容量可以高达 4 x 30 TiB。 对于联机分析处理(OLAP)应用程序,横向扩展内存容量可以高达 16 x 15.2 TiB。 例如,可以通过将 Azure NetApp 文件用于共享存储卷,在虚拟机(运行 Red Hat Enterprise LinuxSUSE Linux Enterprise Server)上采用带有备用的横向扩展配置部署 SAP HANA。

存储

此体系结构将 Azure 托管磁盘用于虚拟机或 Azure NetApp 文件上的存储。 SAP HANA Azure 虚拟机存储配置文档中详细介绍了使用托管磁盘的存储部署准则。 或者对于托管磁盘,Azure NetApp 文件 NFS 卷可用作 SAP HANA 的存储解决方案。

若要实现较高的每秒输入/输出操作数 (IOPS) 和磁盘存储吞吐量,还可向 Azure 存储布局应用优化存储卷性能时采用的常见做法。 例如,将多个磁盘与 LVM 合并在一起以创建条带化磁盘卷可以提高 IO 性能。 Azure 磁盘缓存在实现所需 IO 性能方面也发挥着重要作用。

对于在 Azure 高级 SSD v1 上运行的 SAP HANA 日志磁盘,请在保存 /hana/log 的位置使用以下用于生产的技术之一:

需要这些技术才能始终满足小于 1 毫秒的存储延迟要求。

Azure 高级 SSD v2 专为 SAP 等性能关键型工作负载而设计。 当 /hana/log 在高级 SSD v2 上运行时,不需要写入加速器。 有关此存储解决方案的优势和当前限制的信息,请参阅部署高级 SSD v2

有关 SAP HANA 性能要求的详细信息,请参阅 SAP 说明 1943937 - 硬件配置检查工具

  • 针对非生产系统的高性价比存储设计。 对于在所有情况下都不需要最高存储性能的 SAP HANA 环境,可以使用针对成本进行优化的存储体系结构。 这种存储优化选择适用于很少使用的生产系统或某些非生产 SAP HANA 环境。 成本优化存储选项使用标准 SSD 的组合,而不是用于生产环境的高级或超级 SSD。 它还将 /hana/data/hana/log 文件系统合并到一组磁盘上。 准则和最佳做法适用于大多数 VM 大小。 如果使用适用于 SAP HANA 的 Azure NetApp 文件,则可以使用缩减了大小的卷来实现相同目标。

  • 纵向扩展时调整存储大小。 当由于业务需求更改或数据库大小增加而调整虚拟机的大小时,存储配置可能会发生更改。 Azure 支持联机磁盘扩展,而不会对服务造成任何中断。 使用条带化磁盘设置(用于 SAP HANA)时,应该对卷组中的所有磁盘平等地执行重设大小操作。 向卷组添加更多磁盘可能会使条带化数据不平衡。 如果要将更多磁盘添加到存储配置,则最好在新磁盘上创建新存储卷。 接下来,在停机期间复制内容并修改装入点。 最后,丢弃旧的卷组和基础磁盘。

  • Azure NetApp 文件应用程序卷组。 对于在 Azure NetApp 文件 NFS 卷上包含 SAP HANA 文件的部署,应用程序卷组使你可以根据最佳做法部署所有卷。 此过程还可确保 SAP HANA 数据库实现最佳性能。 提供了有关如何继续此过程的详细信息。 它需要人工干预。 请留出一些时间进行创建。

高可用性

前面的体系结构描述了一个高度可用的部署,其中 SAP HANA 包含在两个或更多虚拟机上。 使用了以下组件。

负载均衡器。 Azure 负载均衡器用于将流量分布到 SAP HANA 虚拟机。 在 SAP 区域部署中加入 Azure 负载均衡器时,请确保选择标准 SKU 负载均衡器。 基本 SKU 均衡器不支持区域性冗余和 已弃用。 在此体系结构中,负载均衡器充当 SAP HANA 的虚拟 IP 地址。 网络流量将发送到包含主数据库实例的活动 VM。 SAP HANA 主动/读取启用的体系结构是可选的(SLES/RHEL),其中负载均衡器上寻址的第二个虚拟 IP 用于将网络流量定向到另一个 VM 上的辅助 SAP HANA 实例,以实现读取密集型工作负荷。

默认情况下,标准负载均衡器提供了安全层。 标准负载均衡器后面的虚拟机没有出站 Internet 连接。 若要在这些虚拟机中启用出站 Internet,需要更新标准负载均衡器配置。 此外,还可以使用 Azure NAT 网关获取出站连接。

对于 SAP HANA 数据库群集,必须启用直接服务器返回(DSR),也称为浮动 IP。 此功能允许服务器使用负载均衡器前端的 IP 地址进行响应。

部署选项。 在 Azure 上,SAP 工作负载部署可以是地区性部署,也可以是区域性部署,具体取决于 SAP 应用程序的可用性和复原能力要求。 Azure 提供了不同的部署选项,例如具有灵活业务流程 (FD=1)、可用性区域和可用性集的虚拟机规模集,以增强资源的可用性。 若要全面了解可用的部署选项及其在不同 Azure 区域(包括跨区域、单个区域内或在没有区域的地区中)的适用性,请参阅 SAP NetWeaver 的高可用性体系结构和方案

SAP HANA。 为了获得高可用性,SAP HANA 在两个或更多 Linux 虚拟机上运行。 SAP HANA 系统复制 (HSR) 用于在主与辅助(副本)SAP HANA 系统之间复制数据。 HSR 还用于跨区域或跨 DNS 区域灾难恢复。 根据虚拟机之间的通信延迟,可以在区域中使用同步复制。 在大多数情况下,用于灾难恢复的区域之间的 HSR 会以异步方式运行。

对于 Linux Pacemaker 群集,需要确定要使用的群集隔离机制。 群集隔离是将故障 VM 与群集隔离并重新启动它的过程。 对于 RedHat Enterprise Linux (RHEL),Azure 上 Pacemaker 唯一支持的隔离机制是 Azure 隔离代理。 对于 SUSE Linux Enterprise Server (SLES),可以使用 Azure 隔离代理或 STONITH 块设备 (SBD)。 比较每个解决方案的故障转移时间,如果存在差异,请根据恢复时间目标 (RTO) 方面的业务要求进行选择。

Azure 隔离代理。 此隔离方法依赖于 Azure ARM API,Pacemaker 查询 ARM API,了解群集中两个 SAP HANA VM 的状态。 如果一个 VM 发生故障(例如 OS 无响应或 VM 崩溃),群集管理器会再次使用 ARM API 重启 VM,如果需要,SAP HANA 数据库将失败到另一个活动节点。 为此,使用自定义角色查询和重启 VM 的服务名称主体(SPN)用于针对 ARM API 授权。 不需要其他基础结构,在使用 Azure 隔离代理的情况下不会部署体系结构图中的 SBD VM。

SBD。 STONITH 块设备 (SBD) 使用由群集管理器作为块设备(原始,没有文件系统)进行访问的磁盘。 此磁盘(或多个磁盘)充当投票。 运行 SAP HANA 的两个群集节点会各自访问 SDB 磁盘,并定期对它们读取/写入有关状态的少量信息。 因此,每个群集节点都知道另一个节点的状态,而不仅仅依赖于 VM 之间的网络。

最好在可用性集或可用性区域设置中部署三个小型 VM。 每个 VM 将磁盘的一小部分作为块设备导出,由两个 SAP HANA 群集节点访问。 三个 SBD VM 可确保在计划内或计划外停机时间内,有足够的投票成员可用于任一 SBD VM。

或者,若要使用 SBD VM,可以改用 Azure 共享磁盘。 SAP HANA 群集节点随后会访问单个共享磁盘。 如果 Azure 区域中提供了 ZRS,则共享磁盘可以在本地 (LRS) 或区域中 (ZRS) 冗余。

灾难恢复

以下体系结构显示了提供灾难恢复功能的 Azure 上的生产 HANA 环境。 该体系结构包含可用性区域。

显示具有灾难恢复功能的体系结构的示意图。

有关 DR 策略和实施详细信息,请参阅 SAP 工作负载的灾难恢复概述和基础结构指南SAP 应用程序的灾难恢复指南

注意

如果区域灾难导致一个区域中的许多 Azure 客户发生大规模故障转移事件,则无法保证目标区域的资源容量。 与所有 Azure 服务一样,Azure Site Recovery 会继续增添特性和功能。 有关 Azure 之间的复制的最新信息,请参阅支持矩阵

除了本地的双节点高可用性实现外,HSR 还支持多层多目标复制。 因此,HSR 支持进行 DNS 区域间和区域间复制。 多目标复制适用于 SAP HANA 2.0 SPS 03 及更高版本。

请确保验证目标区域的资源容量

Azure NetApp 文件。 作为一种选项,Azure NetApp 文件可用于为 SAP HANA 数据和日志文件提供可缩放且高性能的存储解决方案。 Azure NetApp 文件支持用于快速备份、恢复和本地复制的快照。 对于跨区域内容复制,Azure NetApp 文件跨区域复制可用于在两个区域之间复制快照数据。 提供了有关跨区域复制的详细信息以及描述使用 Azure NetApp 文件进行灾难恢复的所有方面的白皮书

备份

可通过多种方式备份 SAP HANA 数据。 迁移到 Azure 后,可继续使用已有的任何现有合作伙伴备份解决方案。 Azure 提供了两种本机方法:SAP HANA 文件级别备份和通过 Backint 接口实现的适用于 SAP HANA 的 Azure 备份。

对于 SAP HANA 文件级别备份,可以使用所选工具(如 hdbsql 或 SAP HANA Studio),将备份文件存储在本地磁盘卷上。 此备份卷的常见装入点为 /hana/backup。 备份策略将定义卷上的数据保留期。 执行备份后,计划任务应立即将备份文件复制到 Azure Blob 存储以进行保管。 系统会保留本地备份文件以方便恢复。

Azure 备份可为虚拟机上运行的工作负载提供一种简单的企业级解决方案。 适用于 SAP HANA 的 Azure 备份提供与 SAP HANA 备份目录的完全集成,可保证数据库一致、完整或时间点恢复。 Azure 备份已获得 SAP BackInt 认证。 另请参阅 Azure 备份常见问题解答支持矩阵

Azure NetApp 文件支持基于快照的备份。 通过 Azure 应用程序一致性快照工具 (AzAcSnap) 与 SAP HANA 集成以获取应用程序一致性快照。 创建的快照可用于还原到新卷以进行系统还原或是复制 SAP HANA 数据库。 创建的快照可用于灾难恢复,在这种情况下它充当还原点,SAP HANA 日志保存在其他 NFS 卷上。

监视

若要监视 Azure 上的工作负载,可通过 Azure Monitor 全面收集、分析和处理来自云和本地环境的遥测。

对于在 SAP HANA 和其他主要数据库解决方案上运行的 SAP 应用程序,请参阅适用于 SAP 的 Azure Monitor 解决方案,了解适用于 SAP 的 Azure Monitor 如何帮助你管理 SAP 服务的可用性和性能。

安全性

许多安全措施用于保护 SAP 环境的机密性、完整性和可用性。 例如,为了保护用户访问,SAP 具有自身的用户管理引擎 (UME),可在 SAP 应用程序和数据库中控制基于角色的访问和授权。 有关详细信息,请参阅 SAP HANA 安全性 - 概述

对于静态数据,不同的加密功能按如下所示提供安全性:

  • 除了 SAP HANA 本机加密技术外,请考虑使用合作伙伴提供的支持客户管理的密钥的加密解决方案。

  • 要加密虚拟机磁盘,可选择磁盘加密概述中介绍的功能。

  • SAP 数据库服务器:使用 DBMS 提供程序提供的透明数据加密(例如 SAP HANA 本机加密技术)来帮助保护数据和日志文件,并确保备份也进行加密。

  • Azure 物理存储中的数据(服务器端加密)会自动使用 Azure 管理的密钥进行静态加密。 你还可以选择客户管理的密钥 (CMK),而不是 Azure 管理的密钥。

  • 如需了解特定 Linux 发行版、版本和映像对 Azure 磁盘加密的支持,请参阅适用于 Linux VM 的 Azure 磁盘加密

注意

请勿在同一存储卷上将 SAP HANA 本机加密技术与 Azure 磁盘加密或基于主机的加密结合使用。 此外,适用于 Linux 虚拟机的操作系统启动磁盘不支持 Azure 磁盘加密。 而是在使用 SAP HANA 本机加密时,将它与自动启用的服务器端加密结合使用。 请注意,使用客户管理的密钥可能会影响存储吞吐量。

对于网络安全,请使用网络安全组 (NSG) 和 Azure 防火墙或网络虚拟设备,如下所示:

  • 使用 NSG 保护和控制子网与应用程序/数据库层之间的流量。 仅将 NSG 应用于子网。 应用于 NIC 和子网的 NSG 通常会在故障排除过程中导致问题,应很少使用(如果使用过的话)。

  • 使用 Azure 防火墙或 Azure 网络虚拟设备检查和控制流量从中心虚拟网络到 SAP 应用程序所在的辐射型虚拟网络的路由,以及控制出站 Internet 连接。

对于用户和授权,实现基于角色的访问控制 (RBAC) 和资源锁,如下所示:

  • 遵循最低特权原则,使用 RBAC 对托管 Azure 上的 SAP 解决方案的 IaaS 级别资源分配管理权限。 RBAC 的基本用途是隔离和控制用户/组的职责。 RBAC 旨在仅授予对用户执行作业所需的资源的访问权限。

  • 使用资源锁可帮助防止意外或恶意更改。 资源锁有助于防止管理员删除或修改 SAP 解决方案所在的关键 Azure 资源。

可以在以下 MicrosoftSAP 文章中找到更多安全建议。

社区

社区可以解答问题,并帮助设置成功的部署。 考虑以下社区:

作者

本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。

主要作者:

若要查看非公开的 LinkedIn 个人资料,请登录到 LinkedIn。

后续步骤

了解有关组件技术的详细信息:

探索相关体系结构: