在 AWS 上使用 SUSE HAE 架构高可用的 SAP 系统

阅读数:87 2019 年 9 月 25 日 14:55

在 AWS 上使用 SUSE HAE 架构高可用的 SAP 系统

通常 SAP 系统是企业的关键应用系统,所以在部署 SAP 生产系统时必须要实现高可用。在 AWS 上部署 SAP 应用系统,您可以构建稳定可靠的、容错的和高可用的 SAP 应用系统。

对于不同的操作系统(OS)和数据库,SAP 系统的高可用可以使用多种工具实现。您可以使用 SUSE High Availability Extensions (SUSE HAE), Red Hat Enterprise Linux for SAP with High Availability and Update Services (RHEL for SAP with HA and US), Veritas InfoScale Enterprise for AWS, SIOS Protection Suite 等工具。

在本文中,我们会介绍如何在 AWS 上使用 SUSE HAE 在 SUSE Linux 环境中部署高可用的 SAP 应用。

SUSE HAE 是 SUSE Linux 的高可用中间件,能够帮助您在 SUSE Linux 上搭建高可用的应用系统。它确保关键网络资源(包括数据,应用程序和服务)的高可用性。因此,它可以帮助您保持业务连续性,保护数据完整性,并减少关键应用比如 SAP 应用的意外停机时间。。

AWS 建议在多个可用区中部署 SAP 应用系统。 AWS 的可用区(Availability Zone)是物理隔离的,但每个区域(Region)中的可用区通过低延迟网络连接。 如果一个可用区里的实例失败,则另一个可用区中的实例可以处理业务请求。

SAP Netweaver 的系统架构

为了能在 AWS 上部署高可用的 SAP Netweaver 系统,我们首先介绍 SAP Netweaver 的架构,以及该架构中的单点故障(SPoF),然后介绍如何使用 SUSE HAE 来实现高可用的 SAP Netweaver.

SAP NetWeaver 的系统架构如下图所示:

在 AWS 上使用 SUSE HAE 架构高可用的 SAP 系统

SAP NetWeaver 是很多 SAP 应用系统的开发平台和运行环境,比如 SAP ERP,SAP CRM,SAP SRM 等。同时,一个 SAP 应用由一个 ASCS, 一个 PAS,一个或多个 AAS 和数据库组成。

其中,ASCS 由 Message Server 和 Enqueue Server 组成。 Message Server 负责应用程序之间的通信,并提供负载平衡。 Enqueue Server 存储应用程序的锁信息。

在 SAP 架构中,ASCS 和数据库是可能的单点故障(SPoF),所以在高可用方案中,需要通过 SUSE HAE 保护 ASCS 和数据库, 提升高可用性。

在 SUSE Linux 上构架高可用的 SAP NetWeaver 系统

如前文所述,HA 解决方案旨在解决软件系统的单点故障(SPoF)。 在 AWS 上,SAP 应用程序部署在多个可用区(Availability Zone), 极大的提高了系统的可用性。通过使用 SUSE HAE 高可用中间件,在故障发生时可以自动系统切换,减少停机时间。SAP NetWeaver 在 AWS 上的架构如下图所示:

在 AWS 上使用 SUSE HAE 架构高可用的 SAP 系统

但是,与传统的基于软件集群的解决方案相比,AWS 平台上的高可用实现又一些不同,主要区别是共享存储设备以及 AWS 网络对广播或多播流量的限制。

传统的群集解决方案通常使用存储设备作为 STONITH 设备。这些存储设备通常给多个主机同时使用,其读 / 写访问权由群集软件控制。 但是,Amazon EBS 卷只能附加到一个实例。所以,在 AWS 上,我们使用 STONITH agent(external/ec2) 来管理 STONITH 设备。在 SUSE HAE 上配置如下:

复制代码
primitive res_AWS_STONITH stonith:external/ec2 \
op start interval=0 timeout=180 \
op stop interval=0 timeout=180 \
op monitor interval=120 timeout=60 \
meta target-role=Started \
params tag=pacemaker profile=cluster

此外,许多群集解决方案使用第 2 层网络功能(包括多播或广播数据包)来检查群集中的节点故障。 Amazon VPC 中不允许多播/广播流量,所以使用多播或广播的方法检测集群故障在 AWS 上不可行。在 AWS 上,我们通过设置 SUSE HAE 使用 unicast 模式避免多播问题,如下图:

在 AWS 上使用 SUSE HAE 架构高可用的 SAP 系统

另外,HAE 集群解决方案还依赖操作系统 IP 地址漂移的能力, 当前 AWS 不支持 IP 地址跨可用区(AZ)漂移。 在 AWS 上,我们使用 HAE agent 来实现 IP 的漂移。

在 AWS 上,服务 IP 的地址必须在 VPC CIDR 之外才可以在不同的 EC2 上漂移。为了能让服务 IP 可以正常工作,需要手动创建路由表项,如下:

复制代码
aws ec2 create-route --route-table-id ROUTE_TABLE --destination-cidr-block CIDR --instance INSTANCE

其中,ROUTE_TABLE 路由表 ID.

CIDR 是服务 IP 的地址和掩码,掩码必须是 32. 例如 10.2.0.2/32, 其中 10.2.0.2 是服务 IP

INSTANCE 是服务 IP 所在的 EC2 实例 ID

当切换发生时,HAE 会自动修改路由表并漂移服务 IP。HAE 配置如下:

复制代码
primitive res_AWS_IP ocf:suse:aws-vpc-move-ip \ params address=overlay-ip-address routing_table=rtb-table interface=eth0 profile=cluster \ op start interval=0 timeout=180 \ op stop interval=0 timeout=180 \ op monitor interval=60 timeout=60

其中 overlay-ip-address 需替换为服务 IP。

rtb-table 需替换为路由表 ID。

上面列出了使用 SUSE HAE 在 AWS 配置高可用的 SAP 系统的不同之处。其余的配置与普通的 SAP 高可用配置相同,不在此赘述。

作者介绍:

谢亚力
AWS 的解决方案架构师

本文转载自 AWS 技术博客。

原文链接:
https://amazonaws-china.com/cn/blogs/china/aws-suse-hae-sap-system/

欲了解 AWS 的更多信息,请访问【AWS 技术专区】

评论

发布