适用于 Google Cloud 上的 SAP NetWeaver 的高可用性规划指南

本指南简要介绍了在 Google Cloud 上部署高可用性 (HA) SAP NetWeaver 系统之前需要了解的选项、建议和一般概念。

本指南假设您已经了解实现 SAP NetWeaver 高可用性系统的通用概念和做法。因此,本指南主要关注在 Google Cloud 上实现此类系统需要了解的内容。

如果您需要详细了解实现 SAP NetWeaver 高可用性系统所需的一般概念和做法,请参阅:

本规划指南仅关注 SAP NetWeaver 的高可用性,不包括数据库系统的高可用性。如需了解 SAP HANA 高可用性,请参阅 SAP HANA 高可用性规划指南

部署架构

下图展示了使用 Pacemaker 集群软件的基本 Linux 高可用性集群。

该集群包括两个主机:主要主机和辅助主机。每个主机位于同一区域内的不同地区。

活跃的中央服务实例和非活跃的 Enqueue Replication Server (ERS) 实例位于主要主机上。 活跃的 ERS 实例和非活跃的中央服务实例位于辅助主机上。每个中央服务和 ERS 对都有自己的虚拟 IP 地址 (VIP)。在图中,“中央服务”代表 ABAP SAP 中央服务或者(对于 Java 堆栈)SAP 中央服务。

Google Cloud 上 SAP NetWeaver 的基本高可用性设置具有两个位于不同地区中的主机

Google Cloud 基础架构的高可用性

通过为全球范围内的数据中心部署包含彼此独立地区的冗余基础架构,Google Cloud 具有与生俱来的高可用性。一个地区通常配备与其他地区隔离的电源、冷却、网络和控制面板。如果发生单点故障事件,在大多数情况下,该事件将仅影响单个地区。

在某些情况下,您可能无需针对硬件、存储设备和网络故障实施所有传统的本地保护措施也能满足可用性需求,这样可以节省时间和金钱。

在 Google Cloud 上设计和实施高可用性策略之前,请查看 Google Cloud 服务等级协议

如需了解有关 Google Cloud 的可靠性、隐私和安全性的一般信息,请参阅可信赖的基础架构

适用于 Google Cloud 上 SAP 系统的高可用性集群选项

您可以使用与本地安装类型相同的第三方高可用性 (HA) 集群软件,在 Google Cloud 上为 SAP NetWeaver 定义高可用性集群。高可用性集群软件监控系统的运行状况,并在出现问题时管理故障转移。

您可以使用多个不同的高可用性集群软件解决方案,例如:

  • 适用于 SAP 解决方案的 Red Hat Enterprise Linux (RHEL)
  • 适用于 SAP 应用的 SUSE Linux Enterprise Server (SLES)
  • Windows Server 故障转移集群

Linux 高可用性集群软件

RHEL 和 SLES 的最新版本包括专门为 Google Cloud 启用的集成高可用性支持。如需检查您的 Linux 版本是否包含为 Google Cloud 启用的高可用性支持,请在 Google Cloud 上的 SAP NetWeaver 操作系统支持表中查找“GCP-HA”。

Windows 高可用性集群软件

运行 Windows Server 故障转移集群中所述,在 Windows Server 上,您可以使用 Windows Server 故障转移集群 (WSFC) 创建高可用性集群。

在 Google Cloud 上,Cloud Load Balancing 负责管理将数据流量传入到 WSFC 集群中活跃节点的路由,无需别名 IP 或静态路由 VIP 即可实现。

Cloud Load Balancing 通过运行状况检查来确定活跃节点。

Google Cloud 地区、区域和 SAP NetWeaver 高可用性部署

在同一区域内的两个或多个 Compute Engine 地区部署高可用性集群的节点。 在不同区域部署节点可确保它们位于不同的物理机器上,同时防止出现罕见的地区性故障。

将地区保持在同一区域内可确保节点在地理位置上足够临近,以满足高可用性系统的 SAP 延迟时间要求。

Compute Engine 虚拟机和 SAP NetWeaver 高可用性部署

为了支持高可用性,Compute Engine 虚拟机支持实时迁移和自动重启。

Compute Engine 实时迁移

Compute Engine 监控底层基础架构的状态。 发生基础架构维护事件时,Compute Engine 会自动迁移您的实例以远离该事件,并在可能的情况下使您的实例在迁移期间保持运行。这个过程无需用户干预。

在发生重大中断的情况下,实例发生故障和恢复可用之间可能会略有延迟。

在大多数情况下,实时迁移事件不会影响高可用性集群。 不过,您可以在高可用性集群设置完毕且系统正在运行时,模拟活跃主机的实时迁移来测试高可用性集群,尤其是在高可用性集群监控配置的故障转移阈值较低的情况下。如需详细了解如何模拟实时迁移事件,请参阅测试可用性政策

迁移的实例与原始实例相同,包括实例 ID、私有 IP 地址以及所有实例元数据和存储空间。

默认情况下,标准实例均设置为实时迁移。我们建议您不要更改此设置。

如需了解详情,请参阅实时迁移

Compute Engine 自动重启

如果您的实例设置为在发生维护事件时终止,或者由于底层硬件问题导致实例崩溃,则可以设置 Compute Engine 自动重启实例。默认情况下,实例设置为自动重启。我们建议您不要更改此设置。

如需详细了解自动重启,请参阅自动重启

Google Cloud 上高可用性 SAP 系统的存储选项

SAP NetWeaver 全局文件系统可造成单点故障,它需要提供给高可用性系统中的所有 SAP NetWeaver 实例。为确保 Google Cloud 上的全局文件系统可用,您可以使用高可用性共享存储空间或复制的区域永久性磁盘。

您可以选择第三方文件共享解决方案(例如 NetApp Cloud Volumes)作为高可用性共享存储解决方案。Google Cloud 提供 NFS 文件服务器解决方案 Filestore,但目前 Filestore 不提供跨区域高度可用的文件服务器。

对于 Linux 系统的区域永久性磁盘的复制,您可以使用分布式复制块设备 (DRDB) 在高可用性集群中的节点之间复制包含 SAP 全局文件系统的永久性磁盘。

虽然 Compute Engine 的地区永久性磁盘可以跨区域提供同步复制的块存储,但目前 SAP NetWeaver 高可用性系统暂不支持。

如需详细了解 Google Cloud 存储选项,请参阅:

高可用性 SAP 系统的网络选项

为高可用性集群设置网络时,除了完成创建网络中的步骤外,还需要完成以下特定于高可用性的任务:

  • 选择 Linux 系统的 VIP 实现方式,如以下部分所述。Windows 系统使用内部负载平衡器,因此它不需要与 Linux 系统相同的 VIP 解决方案。
  • 定义 SAP 中央服务实例和 Enqueue Replication Server 实例之间的通信路径。
  • 定义防火墙规则以支持您定义的通信路径。

Google Cloud 上的虚拟 IP 实现

在出现意外故障或进行计划维护时,高可用性集群使用浮动或虚拟 IP 地址 (VIP) 将其工作负载从一个集群节点迁移到另一个集群节点。VIP 的 IP 地址不会更改,因此客户端应用不知道工作是否由其他节点提供。

VIP 也称为浮动 IP 地址

在 Google Cloud 上,VIP 的实现方式与本地安装模式略有不同,因为发生故障转移时,无法使用免费 ARP 请求来公告更改。您可以改为使用下列其中一种方法来实现 SAP 高可用性集群的 VIP 地址:

内部 TCP/UDP 负载平衡 VIP 实现

负载平衡器通常会在应用的多个实例之间分配用户流量,以在多个活动系统之间分配工作负载,并防范任何实例出现处理速度变慢问题或发生故障。

内部 TCP/UDP 负载平衡服务还提供故障转移支持,您可以将其与 Compute Engine 运行状况检查结合使用,以检测故障、触发故障转移及将流量重新路由到操作系统原生高可用性集群中新的主 SAP 系统集群。

出于各种原因,内部 TCP/UDP 负载平衡故障转移支持成为推荐的 VIP 实现,包括:

  • Compute Engine 上的负载平衡可提供 99.99% 可用性 SLA。
  • 负载平衡支持多区域高可用性集群,以防范区域故障,令跨区域故障转移时间可预测。
  • 使用负载平衡可减少检测和触发故障转移所需的时间(通常在故障发生后的几秒钟内)。总体故障转移时间取决于高可用性系统中每个组件的故障转移时间,其中可能包括主机、数据库系统和应用系统等。
  • 使用负载平衡可简化集群配置并减少依赖项。
  • 与使用路由的 VIP 实现不同,借助负载平衡,您可以使用自己的 VPC 网络中的 IP 范围,根据需要预留和配置这些范围。
  • 负载平衡可轻松用于将流量重新路由到辅助系统,以便进行计划内维护中断。

在为 VIP 的负载平衡器实现创建运行状况检查时,您需要指定运行状况检查探测的主机端口,以确定主机的运行状况。对于 SAP 高可用性集群,请指定专用范围 (49152-65535) 中的目标主机端口,以免与其他服务发生冲突。在主机虚拟机上,使用辅助帮助程序服务(例如 socat 实用程序或 HAProxy)配置目标端口。

对于辅助备用系统仍然处于在线状态的数据库集群,运行状况检查和帮助程序服务允许负载平衡将流量定向到集群中当前作为主系统的在线系统。

使用帮助程序服务和端口重定向,您可以在 SAP 系统上触发计划软件维护的故障转移。

您可以更改高可用性集群节点的默认路由行为,方法是从集群中每个节点的本地 Linux 操作系统路由表中移除 VIP。通过移除该条目,从集群节点发送到 VIP 的消息会先定向到默认网关,然后再定向到 VIP。然后,负载平衡器会像对待任何其他前端流量一样处理消息,并将消息转发到当前托管活跃主系统的节点。

如需详细了解内部 TCP/UDP 负载平衡的故障转移支持,请参阅为内部 TCP/UDP 负载平衡配置故障转移

如需部署实现了负载平衡器 VIP 的高可用性集群,请参阅:

静态路由 VIP 实现

静态路由实现还可以防范区域故障,但您需要在虚拟机所在的现有 VPC 子网的 IP 范围之外使用 VIP。因此,您还需要确保 VIP 不会与扩展网络中的任何外部 IP 地址相冲突。

与共享 VPC 配置搭配使用时,静态路由实现还会增加复杂性,这些配置旨在将网络配置隔离到宿主项目中。

如果您的 VIP 使用静态路由实现方式,请咨询您的网络管理员,以便为静态路由实现确定合适的 IP 地址。

别名 IP VIP 实现

对于多区域高可用性部署,不建议使用别名 IP VIP 实现,因为如果一个区域发生故障,则可能会延迟将别名 IP 重新分配到其他区域中的节点。使用具备故障转移支持的内部 TCP/UDP 负载平衡来实现 VIP。

如果要在同一区域部署 SAP 高可用性集群的所有节点,则可以使用别名 IP 来为高可用性集群实现 VIP。

如果您的现有多区域 SAP 高可用性集群使用了 VIP 的别名 IP 实现,则可以迁移到内部 TCP/UDP 负载平衡实现,而无需更改您的 VIP 地址。别名 IP 和内部 TCP/UDP 负载平衡都使用 VPC 网络中的 IP 范围。

虽然别名 IP 地址不建议用于多区域高可用性集群中的 VIP 实现,但它们在 SAP 部署中有其他使用场景。例如,它们可用于为灵活的 SAP 部署提供逻辑主机名和 IP 分配,例如由 SAP Landscape Management 管理的那些部署。

Google Cloud 上 VIP 的一般最佳做法

如需详细了解 Google Cloud 上的 VIP,请参阅浮动 IP 地址的最佳做法