SAP高可用性说明

有许多关于 SAP 运行 High Availability 的博客,但似乎没有一个专注于解释基础知识的工作原理。

1. 基础知识:

    一个标准的独立 SAP 系统有 3 个基本组件,每个组件对于系统的工作都至关重要:

   1. ASCS -> 代表 ABAP SAP Central Service,它由Message Server和Enqueue Server两部分组成。Message Server 充当应用程序服务器之间的通信通道并处理负载分配,Enqueue Server 控制锁定机制。

  2. AS -> 应用程序服务器。在过去,您有一个包含 ASCS 组件的中央实例,现在 ASCS 组件已被删除并独立存在,因此第一个应用程序服务器称为 PAS(主应用程序服务器),之后的应用程序称为 AAS(附加应用程序服务器),但实际上它们之间几乎没有区别。

3. Database -> Database就是数据库,主要进行数据持久化和存储。

   传统独立系统如下所示:

           

  那么,要如何使您的系统具备高可用性呢?其实很简单,就是要为这些组件提供冗余,覆盖所有可能的单点故障。

2 .如何实现这一点呢?

对于一个基本的高可用系统来说,您至少需要两台主机(或节点)来部署所需的组件,并且理想情况下,它们应该位于不同的数据中心内。

ASCS -> 对于中心服务而言,推荐的做法是使用ERS(队列复制服务器)。ASCS和ERS安装在两个主机的共享磁盘上。队列服务器将维护锁表,而ERS则保持锁表的一个副本。第三方集群软件将为ASCS实例提供自动故障转移机制。这意味着,在每个主机上都有一个ASCS和一个ERS,如果任何时候某个节点出现问题,它会自动切换到另一个节点,从而保持系统的运行。

AS -> 从应用服务器的角度来看,关键在于数量;最基本的配置是至少需要两台应用服务器(主应用服务器PAS和辅助应用服务器AAS),并使用负载均衡。如果某个节点出现问题,连接到该节点的所有用户会被踢出,但由于另一台应用服务器仍然正常运行,用户可以重新登录。

DB -> 在数据库方面,通常至少需要两个数据库,其中一个作为主数据库服务于系统,而另一个则是备用数据库,通过从主数据库不断接收日志(称为日志传送)来保持同步。除此之外,还需要集群软件和自动故障转移机制。这意味着集群指向的是主数据库,如果主节点不可用,故障转移机制就会启动,将备用数据库提升为主数据库,从而确保系统的持续运行。

  完成后,您的新 HA 系统应如下所示

  3. 现在,什么是高可用集群(HA-Cluster)?

  最基本的层面来说,一个标准的高可用集群在主动-被动(Active-Passive)配置下包含两个节  点,一个是主节点,另一个是备用节点。这意味着主节点正在积极地为系统提供服务,而备用节点则处于待命状态,准备在出现故障时接管服务。

  它是如何工作的?

  集群被设置了一个虚拟IP(并通过DNS设置了主机名),这些是在SAP配置文件中用来调用特定组件的详细信息。集群会将这个虚拟IP分配给活动节点,并使用心跳监控来确认组件的可用性。如果主节点停止响应,它将触发自动故障转移机制,这一机制会促使备用节点接管成为主节点,并将虚拟IP分配给它,以恢复组件的可用性。一旦故障节点修复后,它将以备用节点的身份重新上线。

  

4. 使用ERS实现SAP ASCS高可用性的解释

  SAP标准的方法是使用ERS来使ASCS实例具备高可用性。

  什么是ERS?

  ERS代表队列复制服务器,它的任务是保持锁表的最新副本,这样即使ASCS实例发生灾难性事件,锁表的状态也能得到保护。

  

就是这样吗?……嗯,是的……它并不是一个魔法盒!……或者说,它是?……单独来看,它并不能保证系统的可用性,它只是执行上述的功能。为了实现期望中的高可用性,需要将其功能与带有自动故障转移机制的集群特性结合起来。这样一来,当(或如果)ASCS实例崩溃时,它可以被迁移到不同的主机/节点上,在那里它将使用复制表来创建一个新的锁表,从而使系统能够继续运行。

一个高可用中央实例的基本架构是什么样的?

最简化的表达方式是你至少需要两个节点和一个共享文件系统。为了本篇博客的目的,我将仅关注ASCS/ERS实例,并假设其余的组件分布在其他节点上。

同样,你需要一个带有自动故障转移机制的集群提供者。再次声明,我不会专注于某个特定的提供者,而是尽量做到通用,使之适用于大多数场景。

ASCS/ERS安装

为了让ASCS和ERS实例能够在不同节点之间迁移,它们需要安装在一个共享文件系统上,并使用虚拟主机名。这是为什么呢?因为虚拟IP将会被添加到集群资源组中,这样它们就可以作为一个逻辑单元一起切换。

一些高层次的安装提示:

安装可执行文件应该指向那个虚拟主机。

./sapinst SAPINST_USE_HOSTNAME=<虚拟主机名>

在这个练习中,ASCS实例将安装在sapnode1上,使用虚拟主机名sapascs,而ERS实例将安装在sapnode2上,使用虚拟主机名sapers。

另外,在安装完成后,你需要确保在各自的主机上为ASCS和ERS创建了挂载点(/usr/sap/<SID>/ASCSXX 和 /usr/sap/<SID>/ERSXX)。

还有一些其他特定于安装的步骤是必需的,但为了保持通用性,我在这里就不详细说明了(我在博客底部包含了一些链接,你可以查阅其中的一些步骤)。

下面是启动集群基本配置所需的基本要求,包括非活动(灰色)实例的要求。

  

一旦您的集群配置完成并且ASCS/ERS实例(以及系统的其他组件)开始运行,您的系统将如下所示:

  

那么,如果sapnode2出现故障会发生什么?

系统将继续正常运行,因为ASCS的可用性没有受到影响。当sapnode2恢复在线后,ERS也会随之恢复。

当sapnode1出现故障时会发生什么?

心跳监控将触发集群资源的故障转移,ASCS实例将与ERS一起在sapnode2上启动(这是集群共置配置的一部分),并将使用复制表来创建新的锁表并恢复操作。与此同时,ERS将被关闭(这也是共置规则的一部分),并在主机恢复在线后转移到sapnode1上。

需要明确的是,在短时间内,ASCS和ERS将并行运行。这是必要的,因为复制表存储在运行ERS的节点的内存中,只有当ASCS完成读取并重建锁表后,ERS所在的节点才会被关闭,并等待转移到另一个节点。

最终,一旦sapnode1恢复在线,ERS实例将被启动并创建一个新的锁复制表,从而使ASCS再次具备高可用性。

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值