阿里云上的SAP高可用架构

更新时间:
复制 MD 格式

SAP高可用架构基本概念简介

高可用性的定义与目标

高可用性(High Availability, HA)是指通过冗余的技术架构设计,消除单点故障(Single Point of Failure, SPOF),使SAP系统在组件发生故障时能够自动切换到备用组件,从而将业务中断时间降到最低。

SAP系统的高可用架构通常围绕以下核心目标展开:

  • 消除单点故障:在应用层、数据库层、网络层和存储层分别设计冗余机制

  • 自动故障检测与切换:通过集群软件(如Pacemaker)实现故障的自动感知和资源的自动迁移

  • 数据零丢失:通过同步复制(Synchronous Replication)确保故障切换时不丢失已提交事务

  • 最小化切换时间:通过预加载、内存保持等技术缩短故障切换所需时间

SAP系统的分层架构

一个典型的SAP系统采用分布式三层架构:

image

每一层都有对应的高可用方案:

层级

关键组件

高可用方案

表示层

SAP Web Dispatcher

HA集群 / 负载均衡

应用层 - 中央服务

ASCS (ABAP Central Services)

Enqueue Replication + Pacemaker集群

应用层 - 应用服务器

PAS / AAS

多实例横向扩展(无需集群)

数据库层

SAP HANA

System Replication + Pacemaker集群

核心高可用技术组件

Pacemaker集群

Pacemaker 是 Linux 生态中最主流的开源高可用(High Availability,HA)集群资源管理器。它负责监控集群节点及其上运行的各类资源状态,在节点故障、应用异常或计划内维护时自动完成资源切换(failover),从而保障关键业务的连续运行。

Pacemaker 本身不绑定任何特定的操作系统发行版,也不依赖特定的应用场景。无论是企业级应用、数据库集群,还是 SAP 系统的高可用架构,都可以基于 Pacemaker 构建统一的 HA 编排层。

Pacemaker 是 ClusterLabs 旗下的核心项目之一,承担集群资源调度引擎的角色。而ClusterLabs 是 Pacemaker 项目的上游开源社区,也是维护 Pacemaker、Corosync、resource-agents、fence-agents 等核心 HA 组件的事实标准组织。

Pacemaker作为集群资源调度引擎,负责:

  • 监控集群节点和资源的健康状态

  • 在检测到故障时自动执行资源迁移

  • 管理虚拟IP地址的漂移

  • 协调集群成员之间的仲裁(Quorum)

Corosync

Corosync是集群通信层,提供节点间的心跳检测和消息传递。在阿里云环境中,建议使用UCAST(单播)模式进行通信。

STONITH/Fencing

STONITH(Shoot The Other Node In The Head)是集群隔离机制,用于在节点失去响应时强制关闭该节点,避免脑裂(Split Brain)。阿里云提供专用的STONITH设备fence_aliyun,通过调用阿里云OpenAPI来实现ECS实例的强制重启/关机。

SAP Enqueue Replication

SAP Enqueue ServerSAP系统中管理锁表的关键组件。Enqueue Replication通过在备用节点上维护锁表的实时副本,确保在主节点故障时锁信息不丢失。目前有两个版本:

  • ENSA1(Enqueue Replication Server 1):适用于SAP NetWeaver 7.40/7.50

  • ENSA2(Enqueue Replication Server 2):适用于SAP S/4HANA 1809及更新版本,是当前推荐的标准

SAP HANA System Replication

SAP HANA System Replication(HSR)是HANA数据库内置的数据复制机制,支持同步(sync)和异步(async)模式。在HA场景中使用同步模式,确保主库的每次提交都在备库完成持久化后才返回确认。

阿里云上的SAP HA整体架构视图

在阿里云上部署SAP高可用架构,推荐采用独立集群的设计模式:

image

关键设计原则:

  • 应用层中央服务(ASCS/ERS)组成独立的两节点Pacemaker集群

  • SAP HANA数据库组成独立的两节点Pacemaker集群

  • PAS/AAS应用服务器不需要集群化,通过多实例部署实现冗余

  • 共享文件系统使用阿里云NAS服务