您可以使用 Google Cloud 来托管在 Google Cloud、本地或其他云服务商上运行的 SAP 系统的灾难恢复解决方案。
灾难恢复定义
灾难恢复 (DR) 和高可用性 (HA) 是业务连续性这个较广义概念的两个不同元素。本指南重点介绍灾难恢复。
灾难恢复解决方案的设计宗旨是,在自然灾害、人为灾难或基础架构故障造成大规模中断后恢复应用的运行。此类中断不仅会导致主要应用处理系统宕机,还会让足以抵御小规模的系统或本地基础架构故障的备用系统失效。
使得灾难恢复解决方案有别于高可用性解决方案的其他特性包括:
- 灾难恢复解决方案中的恢复系统通常不是热备用系统。
- 灾难恢复过程通常需要手动干预,才能从数据、系统和基础架构的备份或副本中恢复或还原应用。
- 该解决方案包含一个恢复站点,该站点位于与主要系统不同的地理位置。
- 灾难恢复解决方案的恢复时间目标 (RTO) 通常以小时为单位(也可能以天为单位)。
以下示例架构显示的 SAP 系统同时包含 HA 解决方案和灾难恢复解决方案。用于在发生灾难后恢复系统的灾难恢复站点位于右侧的区域 2 中。主要系统位于左侧的区域 1 中,并且配置为利用跨两个地区的故障切换集群实现高可用性。灾难恢复解决方案的备份功能以跨越这两个区域的虚线表示。对于存储,系统使用多区域 Cloud Storage 存储分区(如图表底部所示)。
该示例还显示了一个数据库。尽管应用恢复依赖于数据恢复,但本指南不介绍数据库系统的灾难恢复过程。请参阅数据库文档和任何适用的 SAP 说明。本指南具体重点介绍 SAP NetWeaver 系统 (SAP ASCS/ERS) 和应用服务器 (SAP AAS)。
如需了解如何在 Google Cloud 上实现高可用性 SAP 系统,请参阅适用于 Google Cloud 上的 SAP NetWeaver 的高可用性规划指南。
如需了解 Google Cloud 上 SAP HANA 的高可用性和灾难恢复,请参阅SAP HANA 高可用性规划指南和SAP HANA 灾难恢复计划指南。
如需大致了解 Google Cloud 上的灾难恢复,请参阅灾难恢复规划指南。
针对未在 Google Cloud 上运行的 SAP 系统的灾难恢复设计方法
如果您的主要 SAP 系统未在 Google Cloud 上运行,您可以对灾难恢复解决方案采用直接原样迁移方法,即 Google Cloud 上灾难恢复系统的架构和软件与主要系统的相同。或者,您也可以采用云原生方法,即在灾难恢复解决方案的设计过程中,您可针对 Google Cloud 或 Google Cloud 合作伙伴产品或服务支持的云优化恢复的系统。
如果您采用直接原样迁移方法,则需要确认 Google Cloud 完全支持主要系统的架构。对于任一方法,都需要确保您使用的所有软件都已在 Google Cloud 上获得正确的使用许可。
如需详细了解许可,请参阅 Google Cloud Platform 服务条款。
适用于 Google Cloud 上的 SAP NetWeaver 的灾难恢复解决方案设计元素
适用于 Google Cloud 上的 SAP NetWeaver 的灾难恢复解决方案设计元素可能包括以下内容:
- 灾难恢复站点位置
- 网络
- 安全
- 虚拟机 (VM) 注意事项
- 备份选项
- 存储
要实现上述各个设计元素,您可以通过多个选项来实现恢复和费用目标。
灾难恢复站点位置
为灾难恢复站点选择 Google Cloud 区域时,您需要考虑以下因素:
- 您的主要站点可能发生的任何灾难的潜在影响区域
- 您的 SAP NetWeaver 系统的用户位置
- 您选择的区域和地区是否提供您的 SAP 系统使用的 Google Cloud 资源和功能
为您的灾难恢复站点选择一个距离主要站点足够远的 Google Cloud 区域,以便灾难恢复站点不会受到主要站点可能发生的灾难的影响。通常认为 100 英里或更长的距离就已足够,但法规或组织准则可能会要求不同的最短距离。
如果您的主要 SAP 系统在 Google Cloud 上运行,请将灾难恢复站点放置在靠近用户的区域,但您的主要系统运行所在的区域除外。Google Cloud 区域距离彼此足够远,以便不会有两个 Google Cloud 区域可能会受到同一灾难的影响。
如果您的主要 SAP 系统是在 Google Cloud 之外运行,请将灾难恢复站点放置在尽可能靠近用户的区域,而不要放置在主要站点可能发生的任何灾难的潜在影响地区内。
在灾难恢复区域中,将灾难恢复系统放置在支持 SAP 和数据库系统所需的虚拟机实例类型和其他基础架构的地区中。
为灾难恢复站点选择区域后,您可能需要增加该区域的资源配额,以便在事件发生之前为灾难恢复系统提供足够的资源。
如需了解所有 Google Cloud 区域的位置,请参阅区域和地区。
要查看每个区域提供的功能,请参阅可用区域和地区。
要查看全球、区域和地区的 Google Cloud 资源,请参阅全球资源、区域资源和地区资源。
网络
在 Google Cloud 上,Virtual Private Cloud (VPC) 提供可扩展到全球各地的网络功能。
如果灾难恢复站点尚不存在 VPC 网络,您需要为它创建一个。您还需要为灾难恢复站点创建子网和 IP 范围。
如果您的主要系统在 Google Cloud 上,并且主要站点和灾难恢复站点位于同一 VPC 网络中,则配置网络会更容易。但是如果需要,您可将主要站点和灾难恢复站点放置在不同的 VPC 网络,甚至放在不同的项目中。
在设计灾难恢复解决方案时,您需要考虑以下通信路径:
- 主要站点与 Google Cloud 中的恢复站点之间的连接
- 构成 SAP 系统的应用、数据库和服务器之间的内部通信
- 您的用户与 SAP 系统之间的连接
对于来自 Google Cloud 外部站点的连接,Google Cloud 提供了各种网络产品来支持其中各个连接点。
将主要站点连接到灾难恢复站点
要存储备份或在两个系统之间提供复制路径,主要站点和灾难恢复站点之间必须存在连接,这样发生灾难时才能立即提供恢复资源,并将这些资源用于测试灾难过程。
如果您的主要系统在 Google Cloud 上运行,则几乎可在灾难恢复站点上自动提供备份。您可以将 Compute Engine 快照指定为多区域快照。可以将其他备份直接从主要系统存储到多区域 Cloud Storage 存储分区,以便即时在灾难恢复站点提供。
如果您的主要系统未在 Google Cloud 上运行,您可以使用 Cloud Interconnect 或 Cloud VPN 将您的主要站点连接到 Google Cloud 上的灾难恢复站点。
要查看示例了解可用性高且只需少量更改即可适应灾难恢复情形的 Cloud Interconnect 拓扑,请参阅为专用互连建立 99.99% 可用性。
要查看一些示例了解可用性高且还可适应灾难恢复情形的多区域 VPN 网关拓扑,请参阅 Cloud VPN 拓扑。
在跨平台站点上建立与 Google Cloud 的连接时,一个重要的考虑因素是带宽。该连接需要充分支持将数据和备份定期转移到 Google Cloud。
如需详细了解从跨平台站点连接到 Google Cloud 的选项,请参阅混合连接产品。
SAP 应用、数据库和服务器之间的连接
如果您的主要系统在 Google Cloud 上运行,则维持灾难恢复站点上的 SAP 应用、数据库和服务器之间的连接相对简单,只需对主要站点上的主机名、子网、防火墙等进行建模即可。
如果您的主要系统未在 Google Cloud 上运行,则在设计阶段可能需要更多工作量,才能将主要站点的网络架构转换为 Google Cloud 上的灾难恢复站点。
在您的企业需要依赖恢复的系统之前,测试灾难恢复过程对于识别和解决任何连接问题至关重要。
将用户连接到灾难恢复站点
在恢复过程中,将 SAP 系统恢复到灾难恢复站点后,需要将来自用户的流量重新路由到恢复的系统。通常,您可以将 DNS 条目中的网络别名更新为新 IP 地址(具有区域性)来完成此操作。
如果您的网络架构使用 VPC 路由,则需要在恢复期间更新路由。
在 Google Cloud 上,您可以使用 Cloud DNS,也可以使用其他 DNS 解决方案。
区域网络资源
如果您的主要系统在 Google Cloud 上运行,并且您正在使用区域网络资源(如 Cloud NAT 或区域 Cloud Load Balancing),则每个区域中都需要该资源的实例。
如需了解详情,请参阅:
网络访问权限控制
确保在灾难恢复站点上打开的端口与在主要站点上打开的端口相同。
您可以在 VPC 网络中定义防火墙规则,以控制进出虚拟机的流量。
如果您在 Windows Server 上安装了 Active Directory 服务,则需要在恢复之前进行设置,并使其与主要站点上的 Active Directory 实例保持同步。
安全
您需要在灾难恢复站点上实现与主要站点相同的安全控制和权限。同样的合规性规定也适用于恢复的环境。
需要在主要站点拥有访问权限的任何用户或角色也都需要在灾难恢复站点拥有访问权限。
如需大致了解如何为 Google Cloud 上的灾难恢复解决方案设计安全,请参阅实施安全性和合规性控制。
虚拟机注意事项
您可以使用 Google Cloud 提供的 Terraform 配置文件以及产品和功能(如 Cloud Deployment Manager、实例模板和自定义映像),加快 Compute Engine 虚拟机 (VM) 实例的部署速度,并避免在灾难恢复站点上出现配置错误。
配置和部署虚拟机
Google Cloud 提供了适用于 Google Cloud 上的 SAP 的 Terraform 配置文件和 Deployment Manager 模板,您可以在灾难恢复站点使用该模板预定义和部署 SAP 系统网站。使用 Terraform 或 Deployment Manager 文件可加快部署、减少配置错误,并确保您的 SAP 系统满足 SAP 支持要求。
还有一个可用于提前配置虚拟机的选项是 Compute Engine 实例模板。使用实例模板可在恢复过程中加快部署并减少虚拟机手动配置。但是,由于它们确实需要对灾难恢复站点进行一些重新配置,因此从恢复启动磁盘恢复虚拟机(详见下一部分)可能更容易。
如需详细了解实例模板,请参阅实例模板。
您还可以使用部署编排工具(如 Terraform)来管理 Google Cloud 上的基础架构部署。
根据您的恢复时间目标 (RTO),您可以预部署 Compute Engine 实例;由于部署虚拟机只需几分钟时间,您也可在恢复时进行部署。
如果您预部署了虚拟机,则可停止它们来节省费用,也可在恢复需要用到它们之前将其用于其他不重要的用途。
您还可以在恢复站点上更少的虚拟机上合并分布式系统,从而最大限度地降低费用。例如,如果主要站点上的应用服务器位于主要站点的专用主机上,那么您可以将应用服务器放置在与 SAP 中央服务相同的主机上。但是,您需要将费用节约与在每个站点上拥有不同配置所增加的复杂性之间进行权衡。
恢复启动磁盘
您可以从主要系统上主机的启动磁盘创建自定义映像,然后使用自定义映像在灾难恢复站点创建恢复实例。
如果您的系统在 Google Cloud 上运行,请在创建和修改主要系统的 Compute Engine 永久性启动磁盘时创建自定义映像。如果您使用的是未经修改的 Google Cloud 公共映像,您还可以在恢复站点上使用 Google Cloud 公共映像。如需了解详情,请参阅创建、删除和弃用自定义映像。
如果您的系统未在 Google Cloud 上运行,您可从您的本地环境导入启动磁盘映像到 Google Cloud,也可以从在本地工作站或其他云平台上运行的虚拟机中导入虚拟磁盘。
备份选项
Google Cloud 提供了许多不同的备份选项,您可以在设计灾难恢复解决方案时从中选择:
- Compute Engine 自定义映像
- Compute Engine 永久性磁盘快照
- 复制
Compute Engine 自定义映像
要备份主要系统的启动磁盘以用于恢复,您可以将其存储在 Google Cloud 上作为 Compute Engine 自定义映像。如需了解详情,请参阅恢复启动磁盘。
Compute Engine 永久性磁盘快照
要备份 Compute Engine 永久性磁盘上的 SAP 或其他文件系统,您可以使用永久性磁盘快照。
您还可以定义快照时间表,以便定期自动拍摄快照。请参阅为永久性磁盘创建计划快照。
快照仅提供块级一致性。为了确保文件级一致性,您可能需要在这些快照期间,实现在目标文件系统上暂停写入活动的机制。
复制
根据您的共享存储解决方案和恢复点目标,您可以复制文件系统。复制可用于数据库、块级存储或文件。
设计使用复制的灾难恢复解决方案最适合对数据丢失容忍度极低的关键业务应用。
如果您的主要系统在 Google Cloud 上运行,则会在所选区域之间为您复制多区域存储桶和多区域快照。
您可以使用 PD 异步复制功能实现块级存储复制。PD 异步复制功能可提供低恢复点目标 (RPO) 和低恢复时间目标 (RTO) 异步复制,以实现跨区域主动-被动灾难恢复。
您也可以使用第三方存储解决方案提供的复制功能。
存储
在 Google Cloud 上设计灾难恢复解决方案时,您可能会使用多种类型的存储,具体取决于主要系统的运行位置和存储内容。
用于备份文件的 Cloud Storage 存储分区
对于除磁盘快照之外的备份(例如从未在 Google Cloud 上运行的 SAP 系统上传的文件),请在 Cloud Storage 中创建一个可从主要站点和灾难恢复站点访问的存储分区。创建存储分区时,可选择默认存储类别并选择一个位置。
根据您需要的服务等级协议 (SLA)、存储的预计使用情况和费用限制条件,选择默认存储类别。对于灾难恢复,Coldline 存储类别通常是一个不错的选项。
对于存储分区位置,选择包含灾难恢复站点区域的位置;如果您的主要系统在 Google Cloud 上运行,选择主要站点所在的区域。
如果您的主要系统在 Google Cloud 上,选择包含主要站点和灾难恢复站点区域的多区域位置,以便可以从这两个站点访问存储分区。
如果您的主要系统不在 Google Cloud 上,为了节省费用,您可以在包含灾难恢复站点的区域中选择单区域位置。
如果您的主要系统在 Google Cloud 上,并且您使用的是第三方共享存储解决方案,那么您的存储选项可能由该解决方案决定。请参阅解决方案文档或与 Cloud Customer Care 代表联系。
有关价格的信息,请参阅 Cloud Storage 价格。
Compute Engine 永久性磁盘快照的存储
创建快照时,可以指定存储位置。快照的位置会影响其可用性,并且在创建快照或将其恢复到新磁盘时会产生网络费用。
快照可存储在一个 Cloud Storage 多区域位置(例如 asia
)或一个 Cloud Storage 区域位置(例如 asia-south1
)。
多区域存储位置可提供更高的可用性,还可能在创建或恢复快照时降低网络费用。区域存储位置可让您更好地控制数据实际所处的位置。
无论您选择哪种位置选项,都必须将快照存储在可从灾难恢复站点访问的位置。
如需详细了解快照位置,请参阅为快照选择存储位置。
如需了解快照存储的价格信息,请参阅永久性磁盘价格。
自定义映像的存储
将自定义映像文件添加到自定义映像列表后,Compute Engine 会管理映像的存储。自定义映像列表中的映像是全局资源,因此在任何区域都可用。
如需了解映像存储价格,请参阅映像存储。
测试灾难恢复计划
完成灾难恢复计划后,请定期对其进行测试,记下出现的任何问题并相应地调整您的计划。
请务必测试灾难恢复计划的所有方面,包括:
- 备份和备份时间表
- 从跨平台站点转移数据
- 从存储的备份进行恢复
- 安全控制和系统访问
- 网络路由
测试灾难恢复系统时,您的主要系统将继续运行。为了防止出现冲突或脑裂情景,您需要将测试系统与主要系统及其用户隔离。
如需大致了解 Google Cloud 上的灾难恢复测试,请参阅灾难恢复规划指南。
设计灾难恢复解决方案以满足您的 RPO 和 RTO 要求
某些 Google Cloud 产品、功能和服务是设计可满足您的 RPO 和 RTO 要求的灾难恢复解决方案的关键。
针对 RPO 进行设计
在 Google Cloud 上设计灾难恢复解决方案来满足特定 RPO 要求时,有两个变量用于控制您可恢复到的时间点:
- 备用频率
- 备份保留
备用频率
备份频率决定上次备份和灾难之间可能经过的最长时间。如果每 24 小时创建一次灾难恢复备份,并且在上次备份后 23 小时 59 分钟内发生灾难,则可能会丢失近 24 小时的数据更新。
复制可以将自上次备份以来经过的最长时间减少到接近零;但是,复制费用高昂,因此您可能只会将其用于数据库和关键业务应用文件。
在灾难恢复解决方案中,时间点副本或快照通常用于备份恢复所需的 SAP 应用文件系统。
在 Google Cloud 上,您可以通过创建每小时、每天或每周快照时间表,自动拍摄 Compute Engine 永久性磁盘快照。但是,由于 Compute Engine 快照仅在块级控制一致性,因此请考虑在快照期间暂停目标文件系统上的写入活动,来确保在文件级保持一致。
选择备份频率时要考虑的主要费用是数据传输费用。存储费用也是一个考虑因素,但备份保留政策对存储费用的影响可能比备份频率对它的影响大。
如需详细了解快照时间表,请参阅为永久性磁盘创建计划快照。
备份保留
备份保留决定了您可以将恢复点移回多少时间。保留备份副本让您可恢复到出现逻辑错误之前的时间点,从而避免出现逻辑错误。
您可以为 Compute Engine 快照和 Cloud Storage 存储分区设置保留政策,从而在指定时间后自动删除备份文件。
选择保留政策时要考虑的主要费用是存储费用。Compute Engine 快照可减少多个快照所需的存储空间,方法是仅存储在第一个完整快照存储之后的增量块级更改。
如需详细了解如何定义快照的保留政策,请参阅快照保留政策。
如需了解如何在 Cloud Storage 存储分区上设置保留政策,请参阅使用存储分区锁定的保留政策。
针对 RTO 进行设计
在设计 Google Cloud 灾难恢复解决方案以满足特定 RTO 要求时,灾难恢复站点的基础架构、软件、文件系统和数据的就绪性是主要控制变量。
例如,要实现非常低的 RTO,您可以在灾难恢复站点上维护一个热备用系统,该系统具有预部署的基础架构、有效的 SAP 系统和复制的数据。不过,较低的 RTO 费用较高。
您可以提前设置费用低或免费的基础架构,并将一些设置步骤推迟到恢复时间,从而平衡费用和恢复时间。
例如,您可以提前配置和部署虚拟机,然后将该虚拟机停止。附加到虚拟机的资源(例如任何外部静态 IP 或永久性磁盘)可能仍会产生费用,但已停止的虚拟机本身不会产生费用。
由于您可以相对快速地在 Google Cloud 上配置和部署 Compute Engine 虚拟机,因此您可以在恢复时执行此操作,并且仍满足 RTO 要求,尤其是当您使用 Terraform 或 Deployment Manager 来部署灾难恢复系统,或通过您提前创建的模板和自定义映像创建虚拟机时。
高 RTO 灾难恢复解决方案的配额和资源注意事项
如果您没有预部署基础架构和系统,请定期检查灾难恢复站点区域的资源配额,确保配额足以部署灾难恢复系统。
根据您的预算预部署尽可能多的灾难恢复基础架构和系统,这样可帮助确保您的灾难恢复系统满足您的配额要求,并且可在系统需要时提供系统所需的 Google Cloud 资源。
针对不同目标的示例架构
以下架构图展示了适用于不同 RTO 的灾难恢复设计示例。
每个图表的左侧是多区域备份选项,右侧是灾难恢复站点上对应的简化 SAP 配置。
每个示例都展示了灾难恢复设计元素的一种可能组合。您可以组合任何或所有示例中的元素,根据目标和具体情况调整灾难恢复设计。
低 RTO 示例灾难恢复架构
以下架构图展示了一个低 RTO 灾难恢复设计示例。
在此设计中,您可在灾难恢复站点维护功能近乎完备的 SAP 系统。虚拟机已部署且处于有效状态。SAP 应用服务器和数据库服务器处于有效状态,但已停止应用服务。
在这种情况下,您可能使用的备份选项包括存储在 Compute Engine 中的操作系统映像和永久性磁盘快照,以及主要站点和灾难恢复站点之间的数据复制。 您可以使用 PD 异步复制功能实现数据复制。
由于使用了数据复制,因此只有最后一次数据库同步存在数据丢失的风险。
要向后延长 RPO 时间,您可以将数据备份添加到 Cloud Storage(此图表未显示)。对于永久性磁盘快照,您可以使用计划快照并根据您的 RPO 调整保留政策。
为恢复此类低 RTO 系统而需要执行的操作包括:
- 如果需要,请对文件执行最终同步,或从永久性磁盘快照恢复文件。
- 将主要数据库切换到灾难恢复站点。
- 从灾难恢复站点启动应用。
在所示的三个示例架构中,低 RTO 示例的费用最高。
RTO 中等的示例灾难恢复架构
以下示例灾难恢复架构的 RTO 比上个示例的高,但费用比它低。
在此设计中,数据库服务器处于有效状态,支持从主要站点进行复制。应用服务器的虚拟机未处于有效状态。
在这种情况下,您可能使用的备份选项包括存储在 Compute Engine 中的操作系统映像和永久性磁盘快照,以及主要站点和灾难恢复站点之间的数据复制。 您可以使用 PD 异步复制功能实现数据复制。
由于使用了数据复制,因此只有最后一次数据库同步存在数据丢失的风险。
要向后延长 RPO 时间,您可以将数据备份存储在 Cloud Storage 存储分区中(此图表未显示)。对于永久性磁盘快照,您可以使用计划快照并根据您的 RPO 调整保留政策。
根据数据库系统的要求,您可能能够将数据库部署在灾难恢复站点上比主要站点所需的更小的虚拟机上,这有助于在激活灾难恢复系统之前降低费用。在这种情况下,您需要在恢复期间将虚拟机的大小调整到所需大小。
为恢复此类系统而需执行的操作包括:
- 如果需要,从永久性磁盘快照或映像部署 SAP NetWeaver 和应用服务器的虚拟机实例。
- 从永久性磁盘快照或其他存储同步文件系统。
- 如果需要,请调整数据库虚拟机实例的大小。
- 将主要数据库切换到灾难恢复站点。
- 在灾难恢复站点启动应用服务。
高 RTO 示例灾难恢复架构
以下架构图在所示示例中具有最高 RTO,是费用最低的选项。
在此设计中,您可以预部署服务器,然后停止服务器,以避免产生虚拟机费用,或者为了避免与永久性磁盘和其他虚拟机相关资源相关联的费用,您可以在恢复过程中部署虚拟机。
在这种情况下,您可能使用的备份选项包括存储在 Compute Engine 中的操作系统映像和永久性磁盘快照,以及存储在 Cloud Storage 中的数据备份。
要满足您的 RPO 要求,您可以同时调整快照时间表和 Cloud Storage 存储分区中的备份的备份频率和保留政策。
为恢复此类系统而需执行的操作包括:
- 如果需要,从存储在 Compute Engine 中的多区域永久性磁盘快照或映像部署 SAP NetWeaver、应用服务器和数据库服务器的虚拟机实例。
- 从永久性磁盘快照或其他存储同步文件系统。
- 从多区域 Cloud Storage 存储分区或其他位置中的备份文件恢复数据库。
- 将主要数据库切换到灾难恢复站点。
- 在灾难恢复站点启动应用服务。
适用于 Google Cloud 上的 SAP 的灾难恢复解决方案的合作伙伴和产品
您可以在 Google Cloud 合作伙伴目录中找到可帮助您设计灾难恢复解决方案的合作伙伴。
您还可以在 Google Cloud Marketplace 上找到支持您的灾难恢复解决方案的各种产品和合作伙伴。