阿里云上的SAP高可用架构
SAP高可用架构基本概念简介
高可用性的定义与目标
高可用性(High Availability, HA)是指通过冗余的技术架构设计,消除单点故障(Single Point of Failure, SPOF),使SAP系统在组件发生故障时能够自动切换到备用组件,从而将业务中断时间降到最低。
SAP系统的高可用架构通常围绕以下核心目标展开:
消除单点故障:在应用层、数据库层、网络层和存储层分别设计冗余机制
自动故障检测与切换:通过集群软件(如Pacemaker)实现故障的自动感知和资源的自动迁移
数据零丢失:通过同步复制(Synchronous Replication)确保故障切换时不丢失已提交事务
最小化切换时间:通过预加载、内存保持等技术缩短故障切换所需时间
SAP系统的分层架构
一个典型的SAP系统采用分布式三层架构:

每一层都有对应的高可用方案:
层级 | 关键组件 | 高可用方案 |
表示层 | 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 Server是SAP系统中管理锁表的关键组件。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高可用架构,推荐采用独立集群的设计模式:

关键设计原则:
应用层中央服务(ASCS/ERS)组成独立的两节点Pacemaker集群
SAP HANA数据库组成独立的两节点Pacemaker集群
PAS/AAS应用服务器不需要集群化,通过多实例部署实现冗余
共享文件系统使用阿里云NAS服务