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

SAP 工作负载的灾难恢复概述和基础结构指导

许多在 Azure 上运行业务关键型应用程序的组织都制定了高可用性 (HA) 和灾难恢复 (DR) 策略。 高可用性旨在通过消除底层系统基础结构中的单一故障点来提高业务系统的 SLA。 高可用性技术降低了计划外基础结构故障造成的影响,并为计划内维护提供帮助。 灾难恢复定义为在发生地理范围广泛的自然或人为灾难后,能够用于恢复或延续关键技术基础结构和系统的策略、工具与过程。

为了实现 Azure 上的 SAP 工作负荷的高可用性,虚拟机通常部署在可用性集可用性区域或灵活规模集中以保护应用程序免受区域内基础结构维护或故障的影响。 但是,当区域中发生大范围的灾难时,这种部署无法保护应用程序。 因此,若要在发生区域性灾难时保护应用程序,应该为应用程序制定灾难恢复策略。 灾难恢复是在文档中阐述的结构化方法,旨在帮助组织执行恢复过程来对灾难做出响应,防范或最大程度地减少 IT 服务中断并有利于恢复。

本文档提供有关通过实现结构化 DR 方法保护 SAP 工作负载免受大规模灾难影响的详细信息。 本文档中的详细信息是根据不同的 Azure 服务和 SAP 组件概要性地提供的。 必须定期测试、记录并微调确切的 DR 策略和 SAP 工作负载的恢复顺序。 此外,本文档重点介绍 SAP 工作负载的 Azure 到 Azure DR 策略。

一般灾难恢复计划注意事项

Azure 上的 SAP 工作负载在结合了不同 Azure 服务的虚拟机上运行,以部署典型 SAP NetWeaver 应用程序的不同层(中心服务、应用程序服务器、数据库服务器)。 一般情况下,应该为在 Azure 上运行的整个 IT 环境规划 DR 策略,这意味着也要考虑到非 SAP 应用程序。 如果相关服务或资产未在 DR 站点上恢复,则在 SAP 系统中运行的业务解决方案可能无法作为整体运行。 因此,需要在考虑到所有组件和系统的情况下,制定一个妥善定义的综合性 DR 计划。

对于 Azure 上的 DR,组织应考虑到可触发故障转移的不同方案。

  • SAP 应用程序或业务流程可用性。
  • Azure 服务(例如虚拟机、存储、负载均衡器等)由于大范围的故障而在区域中不可用。
  • 应用程序可能面临的威胁和存在的漏洞(例如,应用程序层 DDoS 攻击)
  • 业务合规性要求通过操作任务来测试 DR 策略(例如,每年根据合规性执行 DR 故障演习)。

为了实现不同方案的恢复目标,组织必须根据业务要求概述其工作负载的恢复时间目标 (RTO) 和恢复点目标 (RPO)。 RTO 描述应用程序可以关闭的时间长短,通常以小时、分钟或秒为单位。 而 RPO 则是描述企业为了恢复正常运营而可以接受的事务数据丢失量。 确定企业的 RTO 和 RPO 至关重要,因为这有助于设计最佳的 DR 策略。 SAP 工作负载中涉及的组件(计算、存储、数据库等)通过不同的技术(Azure 原生服务、原生数据库复制技术、自定义脚本)复制到 DR 区域。 每种技术提供不同的 RPO,在设计 DR 策略时必须考虑到这一点。 在 Azure 上,可以使用某些 Azure 原生服务,例如 Azure Site Recovery、Azure 备份,它们可以帮助你满足 SAP 工作负载的 RTO 和 RPO。 请参阅 Azure Site RecoveryAzure 备份的 SLA 以便完美符合 RTO 和 RPO 要求。

Azure 上的灾难恢复设计注意事项

在 Azure 上设计灾难恢复解决方案时需要考虑不同的因素。 设计本地灾难恢复解决方案时要考虑的原则和概念也适用于 Azure。 但在 Azure 中,区域选择是灾难恢复设计策略的关键部分。 因此,在 Azure 上选择 DR 区域时请记住以下几点。

  • 业务或合规性要求可能会规定主要站点和灾难恢复站点之间的距离要求。 在较广泛的地理位置发生自然灾害时,距离要求有助于提供可用性。 在这种情况下,组织可以选择另一个 Azure 区域作为灾难恢复站点。 Azure 区域通常相距很远,例如在美国,不同的区域相距数百甚至数千公里。 由于距离遥远,网络往返延迟较高,这可能导致 RPO 提高。

  • 想要在 Azure 上模拟其本地都市 DR 策略的客户可以使用可用性区域实现灾难恢复。 但是,如果发生地理范围广泛的自然灾害,局部区域间的 DR 策略可能达不到复原要求。

  • 在 Azure 上,每个 Azure 区域都与同一地区的另一个 Azure 区域配对(巴西南部除外)。 此方法允许执行平台提供的跨 Azure 区域资源复制。 在区域对文档中可以找到选择配对区域的好处。 当组织选择使用 Azure 配对区域时,需要在 SAP 工作负载方面考虑几个附加要点:

    • 并非所有 Azure 服务都在配对区域中提供跨区域复制。

    • 配对 Azure 区域中的 Azure 服务和功能可能不对称。 例如,主要区域中可用的 Azure NetApp 文件、VM SKU(例如 M 系列)可能在配对区域中不可用。 若要检查 Azure 产品或服务是否在某个区域可用,请参阅 Azure 产品(按区域)

    • GRS 选项适用于标准存储类型的、将数据复制到配对区域的存储帐户。 但标准存储不适合 SAP DBMS 或虚拟数据磁盘。

    • 用于备份受支持解决方案的 Azure 备份服务只能在配对区域之间复制备份。 对于所有其他数据,请使用本机 DBMS 功能(例如 SQL Server Always On、SAP HANA 系统复制)和其他服务运行你自己的复制。 结合使用适用于 SAP 应用程序层的 Azure Site Recovery、rsync 或 robocopy 以及其他第三方软件。

SAP 工作负载参考部署

确定 DR 区域后,必须确保主要区域中配置的各种 Azure 核心服务(例如网络、计算、存储)可用并且可在 DR 区域中进行配置。 组织必须为 SAP 工作负载开发 DR 部署模式。 部署模式各不相同,必须符合组织的需求。

  • 将生产 SAP 工作负载部署到主要区域,将非生产工作负载部署到灾难恢复区域。
  • 将所有 SAP 工作负载(生产和非生产)部署到主要区域。 仅当发生故障转移时才使用灾难恢复区域。

以下参考体系结构显示了在 Azure 上运行的典型 SAP NetWeaver 系统以及主要区域中的高可用性。 下面显示的辅助站点是发生灾难事件后 SAP 系统将要还原到的灾难恢复站点。 主要区域和灾难恢复区域都属于同一订阅。 若要实现 SAP 工作负载的 DR,需要确定每个 SAP 层的恢复策略,以及应用程序使用的不同 Azure 服务。

组织应为其整个 IT 环境规划和设计 DR 策略。 在生产环境中运行的 SAP 系统通常集成了不同的服务和接口,例如 Active Directory、DNS、第三方应用程序等。 因此,还必须在灾难恢复规划中包括非 SAP 系统和其他服务。 本文档重点介绍 SAP 应用程序的恢复规划。 但你可以根据要求扩大相关组件的 DR 规划大小和范围。

Disaster Recovery reference architecture for SAP workload

SAP 工作负载 DR 解决方案的基础结构组件

在 Azure 上运行的 SAP 工作负载使用不同的基础结构组件来运行业务解决方案。 若要为此类解决方案规划 DR,必须确保主要区域中配置的所有基础结构组件可用,并且也可以在 DR 区域中进行配置。 在为 Azure 上的 SAP 工作负载设计 DR 解决方案时,应考虑到以下基础结构组件。

  • 网络
  • 计算
  • 存储

网络

  • ExpressRoute 在连接提供商的帮助下通过专用连接将本地网络扩展到 Microsoft 云。 在设计灾难恢复体系结构时,必须考虑使用异地冗余的 ExpressRoute 线路建立可靠的后端网络连接。 建议至少设置一条从本地连接到主要区域的 ExpressRoute 线路。 其他组件应连接到灾难恢复区域。 请参阅 Azure ExpressRoute 的灾难恢复 设计文章,其中介绍了为 ExpressRoute 设计灾难恢复的不同方案。

    注意

    考虑设置站点到站点 (S2S) VPN 作为 Azure ExpressRoute 的备用连接。 有关详细信息,请参阅使用 S2S VPN 作为 Azure ExpressRoute 专用对等互连的备用连接

  • 虚拟网络和子网跨越一个 Azure 区域中的所有可用性区域。 对于跨两个 Azure 区域的 DR,需要在灾难恢复区域中配置单独的虚拟网络和子网。 请参阅关于 Azure VM 灾难恢复中的网络以详细了解 DR 区域中的网络设置。

  • Azure 标准负载均衡器为 SAP 系统的高可用性设计提供网络元素。 对于群集系统,标准负载均衡器为群集服务(例如在 VM 上运行的 ASCS/SCS 实例和数据库)提供虚拟 IP 地址。 若要在 DR 站点上运行高可用性 SAP 系统,必须创建一个单独的负载均衡器并相应地调整群集配置。

  • Azure 应用程序网关是一个 Web 流量负载均衡器。 它具有 Web 应用程序防火墙功能,是向 Internet 公开 Web 应用程序、提高安全性的理想服务。 Azure 应用程序网关可以根据配置为公共 (Internet) 或专用客户端提供服务,也可以同时为这两者提供服务。 故障转移后,若要在 DR 区域中接受类似的传入 HTTP(s) 流量,必须在 DR 区域中配置单独的 Azure 应用程序网关。

  • 由于网络组件(例如虚拟网络、防火墙等)是在 DR 区域中单独创建的,因此需要确保 DR 区域中的 SAP 工作负载适应例如 DNS 更新、防火墙等相关的网络变化。

  • 两个区域中的虚拟网络是独立的,若要在两者之间建立通信,需要在两个区域之间启用虚拟网络对等互连

虚拟机

  • 在 Azure 上,单个 SAP 系统的不同组件在具有不同 SKU 类型的虚拟机上运行。 对于 DR,可以通过使用 Azure Site Recovery 将组件复制到另一个 Azure 区域或局部区域来保护 Azure VM 上运行的应用程序(SAP NetWeaver 和非 SAP)。 借助 Azure Site Recovery,Azure VM 可以从主要站点持续复制到灾难恢复站点。 VM SKU 类型可能在 DR 站点上不可用,具体取决于所选的 Azure DR 区域。 需要确保所需的 VM SKU 类型在 Azure DR 区域中也可用。 请查看 Azure 产品(按区域)来确定所需的 VM 系列 SKU 类型是否可用。

    重要

    如果 SAP 系统配置了具有 FD=1 的灵活规模集,则需要使用 PowerShell 为灾难恢复设置 Azure Site Recovery。 目前,它是为规模集中部署的 VM 配置灾难恢复的唯一方法。

  • 对于在 Azure 虚拟机上运行的数据库,建议使用原生数据库复制技术将数据同步到灾难恢复站点。 运行数据库的大型 VM 不一定在所有区域中可用。 如果使用可用性区域实现灾难恢复,则应检查相应的 VM SKU 是否在灾难恢复站点的局部区域中可用。

    注意

    不建议对数据库使用 Azure Site Recovery,因为它不能保证数据库的一致性并存在数据变动率限制

  • 由于生产应用程序始终在主要区域中运行,因此客户通常会使用预留实例来节省 Azure 成本。 如果使用预留实例,需要为 DR 站点注册 1 年或 3 年期承诺,这种方案的经济效益可能不高。 此外,设置 Azure Site Recovery 并不能保证在故障转移期间提供所需 VM SKU 的容量。 为确保 VM SKU 容量可用,可以考虑启用按需容量预留选项。 该选项始终可以在 Azure 区域或 Azure 可用性区域中预留计算容量,而无需做出承诺。 Azure Site Recovery 与按需容量预留集成。 通过此集成,可将容量预留的强大功能与 Azure Site Recovery 结合使用,以在 DR 站点中预留计算容量并为故障转移提供保障。 有关详细信息,请参阅按需容量预留的局限性和限制

  • Azure 订阅针对 VM 系列(例如 Mv2 系列)和其他资源分配配额。 组织有时希望使用不同的 Azure 订阅来实现 DR。 每个订阅(主要和 DR)可能为每个 VM 系列分配了不同的配额。 确保用于 DR 站点的订阅有足够的可用计算配额。

存储

  • 在为 VM 启用 Azure Site Recovery 以设置 DR 后,附加到 VM 的 OS 磁盘和本地数据磁盘将复制到 DR 站点。 在复制过程中,系统会将 VM 磁盘写入发送到源区域中的缓存存储帐户。 数据从那里发送到目标区域,并根据数据生成恢复点。 在 DR 过程中对 VM 进行故障转移时,将使用恢复点来还原目标区域中的 VM。 但是,Azure 中可用的所有存储服务并非都受 Azure Site Recovery 支持。 有关详细信息,请参阅存储的 Azure Site Recovery 支持矩阵

  • 除了附加到 VM 的 Azure 托管数据磁盘外,还可以使用不同的 Azure 原生存储解决方案在 Azure 上运行 SAP 应用程序。 每种 Azure 存储解决方案的 DR 方法可能不同,因为 Azure 中可用的所有存储服务并非都受 Azure Site Recovery 支持。 下面是通常用于 SAP 工作负载的存储类型列表。

    存储类型 DR 策略建议
    托管磁盘 Azure Site Recovery
    Azure 文件存储上的 NFS(LRS 或 ZRS) 用于在两个站点之间复制数据的自定义脚本(例如 rsync)
    Azure NetApp 文件上的 NFS 使用 Azure NetApp 文件卷的跨区域复制
    Azure 共享磁盘(LRS 或 ZRS) 用于在两个站点之间复制数据的自定义解决方案
    Azure 文件存储上的 SMB(LRS 或 ZRS) 使用 RoboCopy 在两个站点之间复制文件
    Azure NetApp 文件上的 SMB 使用 Azure NetApp 文件卷的跨区域复制
  • 对于自定义构建的存储解决方案(例如 NFS 群集),需要确保制定适当的 DR 策略。

  • 不同的原生 Azure 存储服务(例如 Azure 文件存储、Azure NetApp 文件、Azure 共享磁盘)不一定在所有区域中都可用。 因此,若要在故障转移后在 DR 区域中进行类似的 SAP 设置,请确保在 DR 站点中提供相应的存储服务。 有关详细信息,请查看 Azure 产品(按区域)

  • 如果使用可用性区域实现灾难恢复,请记住以下几点:

    • Azure NetApp 文件功能尚没有区域感知性。 当前,Azure NetApp 文件功能未部署在 Azure 区域中的所有可用性区域中。 因此,可能会发生 Azure NetApp 文件服务在为 DR 策略选择的可用性区域中不可用的情况。
    • Azure NetApp 文件卷的跨区域复制只能在固定的区域对中使用,而不能跨局部区域使用。
  • 如果你已使用 Active Directory 集成配置了存储,则也应该在 DR 站点存储帐户中完成类似的设置。

  • Azure 共享磁盘需要使用群集软件(例如 Windows Server 故障转移群集 (WSFC))来处理群集节点通信和写入锁定。 因此,若要为 Azure 共享磁盘制定 DR 策略,还需要在 DR 站点中使用群集软件管理共享磁盘。 然后,可以使用脚本将数据从附加到主要区域中群集的共享磁盘复制到附加到 DR 区域中另一个群集的共享磁盘。

后续步骤