亚马逊AWS官方博客

在 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的系统架构如下图所示:

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平台上的高可用实现又一些不同,主要区别是共享存储设备以及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模式避免多播问题,如下图:

另外,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高可用配置相同,不在此赘述。

 

本篇作者