SAP S/4HANA 同可用区高可用部署指南

更新时间:
重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

SAP S/4HANA 同可用区高可用部署

版本管理

版本

修订日期

变更说明

生效日期

1.0

2019.05.07

1.1

2019.07.04

1.优化NAS参数

2019.07.04

1.2

2021.06.01

1.Pacemaker SBD超时时间优化

2021.06.01

1.3

2022.1.25

1.更新fence agent方案

2.排版优化等

2022.1.25

1.4

2022.12.5

1.更新了fence_aliyun组件依赖包针对不同操作系统版本的说明

2022.12.5

1.概述

本文档描述了如何在阿里云同可用区环境中,基于SUSE HAE进行S/4 HANA 1809及更高版本的高可用性安装部署。

随着Netweaver 7.51之后standalone enqueue server 2(ENSA2)的启用,ENSA2已经是S/4 HANA ABAP PLATFORM 1809高可用部署的默认安装选项。

本文档主旨描述了SAP S/4HANA 1809及更高版本如何进行高可用部署,并不能完全取代SAP官方的安装配置文档以及具体的系统sizing,建议在部署之前阅读SAP官方的安装配置文档以及其中建议的SAP Notes。

1).在Old Standalone Enqueue Server(ENSA1)架构中central services instance(ASCS)遭遇故障后必须切换到激活且运行着的ERS(ASCS对端)的server中并重启,通过访问共享内存从而接管enqueue replication table中的锁。

2).在新的ENSA2架构中ASCS遭遇故障后不再限制必须切换到运行着ERS的对端server中,ASCS可以切换到单独的server中并重启,通过网络而不是共享内存从Enqueue Replicator 2中接管锁。

arch2

3).对于ENSA1的架构在pacemaker中支持两个节点的cluster,ASCS必须“跟随”ERS;对于ENSA2的新架构中在pacemaker中可以不仅支持两个节点的cluster同时也支持多节点的cluster。

说明

本次部署依然采用两个节点的cluster作为最佳实践,只包括S/4 HANA 1809 server的安装并未包括Fiori front-end server,同时本次部署并未安装SAP liveCache Intergration。

2.架构总览

本次部署的架构设计如下:arch1

3.资源规划

3.1 网络规划

网络

位置

分配网段

交换机

VPC

业务网

华北2可用区G

10.0.10.0/24

SAP_Business_Vswitch

S4_1809_VPC

心跳网

华北2可用区G

10.0.20.0/24

SAP_Heartbeat_Vswitch

S4_1809_VPC

3.2 SAP及主机规划

SAP应用SID:S4T

SAP HANA SID:S4T

说明

应用与HANA的SID也可使用不同的SID。

主机名

IP 地址

类型

实例编号

备注

s4app1

10.0.10.10/10.0.20.10

PAS Instance

01

安装在本地

s4app2

10.0.10.11/10.0.20.11

AAS Instance

02

安装在本地

VASCSS4T

10.0.10.12

ASCS Instance

00

安装在虚拟主机名

VERSS4T

10.0.10.13

ERS Instance

10

安装在虚拟主机名

VDBS4T

10.0.10.9

DB Instance

安装在虚拟主机名

hana01

10.0.10.7/10.0.20.7

DB(Primary)

00

安装在本地

hana02

10.0.10.8/10.0.20.8

DB (Secondary)

00

安装在本地

3.3 用户及组规划

高可用集群中的两个节点中的SAP以及HANA用户和组ID要保持一致。

用户ID:<sid>adm统一设置为2000,sapadm统一为2001。

组ID:sapsys统一设置为2000。

3.4 SWAP规划

SAP应用的安装都需要创建SWAP空间,推荐在创建ECS实例的时候单独创建SSD/ESSD云盘作为SWAP盘,关于SWAP空间的推荐请参见 SAP Note:1597355 - Swap-space recommendation for Linux

3.5文件系统规划

对于SAP应用的global文件系统推荐使用autofs的方式挂载。关于文件系统大小的sizing,请参照SAP官方安装配置文档或实施商的规划,本例仅供参考。

文件系统

类型

LV

VG

/usr/sap

xfs

usrsaplv

sapvg

/sapmnt

NAS

/usr/sap/trans

NAS

/hana/data

xfs

datalv

hanavg

/hana/log

xfs

loglv

hanavg

/hana/shared

xfs

sharedlv

hanavg

4.前期准备

4.1 阿里云账号

如果您还没有阿里云账号,您可以在阿里云官网或阿里云 App 上,使用手机号码注册阿里云账号和完成账号实名认证。并且,后续您还可以在阿里云 App 上,管理云资源、监控资源状态、进行身份验证、及上云栖社区咨询、了解云知识等。

4.2 VPC

专有网络VPC(Virtual Private Cloud)是基于阿里云构建的一个隔离的网络环境,专有网络之间逻辑上彻底隔离。专有网络是您自己的云上私有网络。您可以完全掌控自己的专有网络,例如选择IP地址范围、配置路由表和网关等。具体详细信息和文档请参考产品文档.按照规划创建VPC以及对应的业务网交换机和心跳网交换机。

4.3 ECS实例

云服务器Elastic Compute Service(ECS)是阿里云提供的一种基础云计算服务您可以通过云服务器管理控制台配置您的ECS资源。

关于阿里云认证的Netweaver相关信息请参见sap note: 1380654 - SAP support in public cloud environments.

[1].创建ECS实例

在控制台选择创建ECS实例,选择付费方式和可用区(本例华北2可用区G)从镜像市场选择,使用“ SUSE Linux Enterprise Server for SAP Applications 12 SP3”镜像。

根据规划选择创建磁盘的数量和大小(本例以数据盘300G,SWAP盘50G作为示意),推荐系统盘使用高效云盘或SSD云盘,数据盘使用ESSD云盘或SSD云盘,推荐单独创建SSD或ESSD云盘作为SWAP盘,关于云盘的相关产品文档和性能请参见块存储性能

选择专有网络和安全组,需要填写之前创建或者已有的VPC和安全组信息(本例以hanasg安全组示意),关于安全组的设置和信息请参考安全组使用FAQ

根据规划和需求选择RAM role(可选),检查所有的选项后创建ECS实例,根据本次部署的规划需要在华北2可用区G创建4台ECS实例,创建完成后根据规划通过修改信息选项来修改主机名或私有IP地址。

[2].配置弹性网卡

需要为高可用集群的每个ECS都创建弹性网卡,来设置心跳网络。

控制台->云服务器ECS->网络与安全->弹性网卡,创建弹性网卡。

本例中按规划需要创建4个弹性网卡。

[3].ECS Metrics Collector的安装

ECS Metrics Collector监控代理程序,用于云平台上SAP系统收集需要的虚拟机配置信息和底层物理资源使用相关的信息。当SAP系统运行在弹性计算服务器ECS上时,SAP Host Agent通过metadata服务和openAPI获取需要的信息,用于收集SAP系统监控所需信息(包括操作系统、网络、存储方面以及SAP架构方面等),并将其提供给SAP应用程序,用于事物分析和系统性能分析。对于运行SAP系统的每个ECS实例(包括数据库和应用),都需要安装Metrics Collector for SAP监控代理程序。

关于ECS Metrics Collector的部署请参考 ECS Metrics Collector for SAP部署指南

4.4 配置Fence功能

阿里云提供两个方案用于实现SAP系统高可用部署中的Fence的功能,推荐您选择云原生的《方案二:Fence_aliyun》。

方案一:共享块存储实现SBD fence功能(方案已下线)

共享块存储是一种支持多台ECS实例并发读写访问的数据块级存储设备,具备多并发、高性能、高可靠等特性,单块共享块存储最多支持同时挂载到16台ECS实例挂载共享块存储的操作。

共享块存储作为高可用集群的SBD设备,选择与ECS同地域可用区,并挂载在高可用集群中的ECS实例中。

说明

请联系您的阿里云解决方案架构师(SA)协助你完成产品使用申请。

[1] 创建共享块存储

登录控制台->云服务器ECS->存储与快照,点击“共享块存储”,在ECS同地域同可用区创建共享块存储。

创建成功后,返回共享块存储控制台,将刚才创建的共享块存储设备挂载到高可用集群中的两台ECS实例上。

[2] 配置共享块存储

登录操作系统,使用lsblk命令查看磁盘信息

lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda    253:0    0  100G  0 disk
└─vda1 253:1    0  100G  0 part /
vdb    253:16   0  500G  0 disk
vdc    253:32   0  500G  0 disk
vdd    253:48   0  500G  0 disk
vde    253:64   0   64G  0 disk
vdf    253:80   0   20G  0 disk

当前示例中,云盘/dev/vdf 为共享块存储设备标识。

[3] 配置watchdog(集群的两个节点)

echo "modprobe softdog" > /etc/init.d/boot.local
echo "softdog" > /etc/modules-load.d/watchdog.conf
modprobe softdog

# watchdog配置检查
ls -l /dev/watchdog
crw------- 1 root root 10, 130 Apr 23 12:09 /dev/watchdog
lsmod | grep -e wdt -e dog
softdog                16384  0 
grep -e wdt -e dog /etc/modules-load.d/watchdog.conf
softdog

[4] 配置SBD(集群的两个节点)

sbd -d /dev/vdf -4 60 -1 30 create

# 配置SBD参数
vim /etc/sysconfig/sbd

# 修改以下参数,将SBD_DEVICE的值替换成共享块存储的设备标识
SBD_DEVICE="/dev/vdf"
SBD_STARTMODE="clean"
SBD_OPTS="-W"

[5] 检查SBD状态

在两个节点上,分别检查SBD状态。

sbd -d /dev/vdf list

确保两个节点的SBD状态均是clear:

sbd -d /dev/vdf list
0       s4app1      clear
1       s4app2      clear

[6] 验证SBD配置

警告

请确保被fence节点的应用程序已关闭,此操作将触发节点重启动作。

本示例,登录主节点s4app1。

sbd -d /dev/vdf message s4app2 reset

如果备节点正常重启,说明配置成功。

备节点重启后,还需要手动将其重置为clear状态。

sbd -d /dev/vdf list
0       s4app1      clear
1       s4app2      reset   s4app1
sbd -d /dev/vdf message s4app2 clear
sbd -d /dev/vdf list
0       s4app1      clear
1       s4app2      clear   s4app1

方案二:Fence_aliyun实现fence功能

fence_aliyun,它是针对阿里云云平台开发的,用于隔离SAP系统高可用环境故障节点的fence代理程序。通过调用阿里云Open API实现对阿里云云资源的灵活调度和管理,支持同可用区的SAP系统高可用部署,满足企业对SAP核心应用的高可用部署的需求。

fence_aliyun是针对阿里云环境开发的,用于隔离SAP系统高可用环境故障节点的开源的fence agent。

SUSE Enterprise Server for SAP Applications 12 SP4及之后的版本已经原生集成了fence_aliyun组件,只需简单配置就能用于阿里云公有云环境的SAP系统高可用环境部署。

[1] 环境准备

说明

本示例使用的是阿里云SUSE CSP付费镜像,可以直连阿里云SUSE SMT更新源下载或更新SUSE组件。

如果您使用的是自定义镜像,请参考 How to register SLES using the SUSEConnect command line tool连接SUSE官方更新源。 

安装python等开源软件需要连接公网,请确保已经为ECS配置了EIP公网地址或NAT网关。

[2] python和pip安装和检查

fence_aliyun仅支持python3.6及以上版本,请确保满足最低版本要求。

# 检查Python3的版本
python3 -V
Python 3.6.15
# 检查Python包管理工具pip版本
pip -V
pip 21.2.4 from /usr/lib/python3.6/site-packages/pip (python 3.6)

如果还没有安装python3或者低于python3.6,需要单独安装。

以下以安装python 3.6.15版本为示例参考。

# 安装python3.6
wget https://www.python.org/ftp/python/3.6.15/Python-3.6.15.tgz
tar -xf Python-3.6.15.tgz
./configure
make && make install
# 安装验证
python3 -V

# 安装pip
curl https://bootstrap.pypa.io/pip/3.6/get-pip.py -o get-pip.py
python3 get-pip.py
# 安装验证
pip3 -V

[3] 安装aliyun SDK和依赖包

说明

请确保aliyun-python-sdk-core的版本不低于2.13.35,aliyun-python-sdk-ecs的版本不低于4.24.8。

python3 -m pip install --upgrade pip
pip3 install --upgrade  aliyun-python-sdk-core
pip3 install --upgrade  aliyun-python-sdk-ecs

# 安装依赖包
### 使用自定义镜像的用户,需要手工激活相关的模块后才能正常执行后面的安装步骤
## SLES 12 SP1、SP2、SP3、SP5,使用如下命令(其中x表示SP小版本号)
SUSEConnect -p sle-sdk/12.x/x86_64
SUSEConnect -p SLES_SAP/12.x/x86_64
## SLES 12 SP4的环境,使用如下命令
SUSEConnect -p sle-sdk/12.4/x86_64
SUSEConnect -p sle-ha/12.4/x86_64

## SLES 15 SP1的环境,使用如下命令
SUSEConnect -p SLES_SAP/15.1/x86_64
SUSEConnect -p sle-ha/15.1/x86_64
## SLES 15 SP2、SP3的环境,使用如下命令(其中x表示SP小版本号)
SUSEConnect -p sle-module-basesystem/15.x/x86_64
SUSEConnect -p sle-ha/15.x/x86_64
###

zypper install libcurl-devel
pip3 install pycurl pexpect
zypper install fence-agents

# 安装验证类似如下
pip3 list | grep aliyun-python
aliyun-python-sdk-core 2.13.35
aliyun-python-sdk-core-v3 2.13.32
aliyun-python-sdk-ecs  4.24.8

[4] 配置RAM Role

fence_aliyun通过RAM role以实现对云资源(如ECS)的状态获取和实例启停等操作。

登录阿里云控制台->访问控制->权限管理->权限策略,点击“创建权限策略”。

本示例策略名是SAP-HA-ROLE-POLICY,策略内容示例如下:

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecs:StartInstance",
                "ecs:StopInstance",
                "ecs:RebootInstance",
                "ecs:DescribeInstances"
            ],
            "Resource": [
                "acs:ecs:*:*:instance/*"
            ]
        }
    ]
}

将权限策略授权给角色

返回访问控制控制台->角色,找到AliyunECSAccessingHBRRole。点击“添加权限”->自定义策略,添加权限策略SAP-HA-ROLE-POLICY给AliyunECSAccessingHBRRole角色。

RAM Role授权给ECS实例

控制台->云服务ECS->更多->授予/收回RAM角色,选择或者新建“AliyunECSAccessingHBRRole”角色。

[5] fence_aliyun安装和配置

下载最新版fence_aliyun

重要

下载fence_aliyun需要访问github,请确保ECS实例的网络环境可以正常访问github站点。

打开浏览器访问github fence_aliyun源码,新建并复制源码到 /usr/sbin/fence_aliyun文件

# 配置权限
chmod 755 /usr/sbin/fence_aliyun
chown root:root /usr/sbin/fence_aliyun

适配用户环境

# 指定解释器为python3
sed -i "1s|@PYTHON@|$(which python3 2>/dev/null || which python 2>/dev/null)|" /usr/sbin/fence_aliyun
# 指定Fence agent lib 目录
sed -i "s|@FENCEAGENTSLIBDIR@|/usr/share/fence|" /usr/sbin/fence_aliyun

验证安装

# 语法示例:
# fence_aliyun --[region ID] --ram-role [RAM role] --action status --plug '[ECS实例ID]'
# 示例如下:
fence_aliyun --region cn-beijing --ram-role AliyunECSAccessingHBRRole --action status --plug 'i-xxxxxxxxxxxxxxxxxxxx'

# 配置正常会返回此实例的状态,示例如下:
Status: ON
说明

阿里云地域和Region ID对照关系,请参考地域和可用区

重要

请确保当前地域下的所有ECS实例的名称没有中文字符。

4.5 高可用虚拟IP

高可用虚拟IP(Private High-Availability Virtual IP Address,简称HAViP),是一种可以独立创建和释放的私网IP资源。这种私网IP的特殊之处在于,用户可以在ECS上使用ARP协议进行该IP的宣告。本次部署使用高可用虚拟IP作为集群中的虚拟IP挂载在集群中的每一个节点。

本例以创建ASCS instance所在的高可用虚拟IP为例。高可用虚拟IP作为ASCS instance安装的对应虚拟IP,选择创建在业务网段。(同理创建ERS instance的高可用虚拟IP)。

[1] 创建高可用虚拟IP(HAVIP)

登录控制台->VPC专有网络->高可用虚拟IP,创建高可用虚拟IP。

说明

请联系您的阿里云解决方案架构师(SA)协助你完成产品使用申请。

[2] 绑定高可用虚拟IP

点击绑定高可用集群的ECS实例,确保绑定了集群中的两个ECS实例。

[3] 配置临时高可用虚拟IP

说明

高可用虚拟IP需要被集群软件如pacemaker作为资源接管后才会生效,为了部署需要先手工临时创建高可用虚拟IP。

登录第一个节点,将申请的ASCS以及ERS instance的高可用虚拟IP临时配置到additional addresses中以保证安装时高可用虚拟IP的连通。

#yast2 network

bind1

配置ASCS和ERS的高可用虚拟IP:

bind2bind3同理配置ERS的高可用虚拟IP。

检测ASCS的高可用虚拟IP的连通性:

ping1

检测ERS的高可用虚拟IP的连通性:

ping2

4.6 文件存储NAS

阿里云文件存储(Network Attached Storage,简称 NAS)是面向阿里云 ECS 实例、E-HPC 和 Docker 等计算节点的文件存储服务,提供标准的文件访问协议,用户无需对现有应用做任何修改,即可使用具备无限容量及性能扩展、单一命名空间、多共享、高可靠和高可用等特性的分布式文件系统。阿里云上部署SAP应用推荐Global主机与trans主机的文件系统采用文件存储NAS。

[1] 创建NAS

选择地域和类型。本次部署采用容量型,关于NAS的性能请参考存储类型介绍。点击添加挂载点,选择之前创建的VPC和业务网段交换机。

[2] 记录NAS地址

点击系统ID/名称进入NAS配置,根据规划为/sapmnt与/usr/sap/trans创建2个NAS文件存储。

5.SAP HANA安装

SAP HANA的安装和配置请参见 SAP HANA Platform

SAP HANA System Replication的配置请参见 How To Perform System Replication for SAP HANA

SAP HANA HA的安装和配置请参见 SAP HANA同可用区高可用部署

6.配置高可用集群

6.1 维护主机名

SAP应用与SAP HANA所有节点维护主机名按照规划维护/etc/hosts文件添加如下信息:

###S4 application business###
10.0.10.10     s4app1  s4app1.alibaba.com
10.0.10.11     s4app2  s4app2.alibaba.com
10.0.10.12      VASCSS4T        VASCSS4T.alibaba.com
10.0.10.13      VERSS4T         VERSS4T.alibaba.com
###S4 application heatbeat###
10.0.20.10     s4app1-ha
10.0.20.11     s4app2-ha
###S4 HANA datebase####
10.0.10.7     hana01        hana01.alibaba.com
10.0.10.8     hana02        hana02.alibaba.com
10.0.10.9      VDBS4T  VDBS4T.alibaba.com
###S4 HANA datebase heartbeat####
10.0.20.7     hana01-ha        
10.0.20.8     hana02-ha

6.2 创建文件系统

说明

本示例中

/sapmnt与/usr/sap/trans文件系统采用NAS;

/usr/sap文件系统为本地xfs类型文件系统。

[1] /usr/sap文件系统

1).首先检查磁盘

2).创建pv

3).创建sapvg

4).创建usrsaplv

5).创建文件系统

6).创建mount点并加入开机自动挂载

#fdisk -l
#pvcreate /dev/vdb
#vgcreate sapvg /dev/vdb
#lvcreate -L 100G -n usrsaplv sapvg
#mkfs.xfs /dev/sapvg/usrsaplv
#mkdir -p /usr/sap

vi编辑 /etc/fstab文件添加示例如下:

/dev/sapvg/usrsaplv            /usr/sap                    xfs       defaults              0 0

将所有的文件系统挂载:

#mount -a

#mount -a

[2] 创建SWAP

1).检查SWAP盘

#fdisk -l

检查可以看出/dev/vdd为单独创建的SWAP盘

2).配置SWAP

mkswap  /dev/vdc
swapon  /dev/vdc
swapon -s

vi编辑/etc/fstab文件添加如下:

/dev/vdc           swap                 swap     defaults              0 0

[3] Global文件系统与Trans主机文件系统

推荐/sapmnt与/usr/sap/trans均采用autofs,所以不需要创建目录配置autofs如下:

1).编辑auto.master文件

#vim /etc/auto.master

末尾空白行处添加 /- /etc/auto.nfs

2).创建并编辑/etc/auto.nfs文件如下:

说明

请替换为上面申请的NAS地址

/sapmnt -vers=3,noacl,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport xxxxxxxx-beijing.nas.aliyuncs.com:/
/usr/sap/trans -vers=3,noacl,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport xxxxxxxx-beijing.nas.aliyuncs.com:/

3).启动autofs服务

#systemctl start autofs

4).添加到开机自启动

#systemctl enable autofs

此时cd到这2个文件系统进行访问即可看到文件系统挂载情况

6.3 准备OS以及安装包

重要

下面的配置过程都需要在参与HA的双机中操作,本示例只描述在其中一个节点的操作。

[1] 安装HA配置以及优化所需的包

# SLES 12 for SAP版本的组件
zypper in -y patterns-ha-ha_sles sap-suse-cluster-connector fence-agents
# SLES 15 for SAP版本的组件
zypper in -y patterns-ha-ha_sles sap-suse-cluster-connector corosync-qdevice saptune fence-agents

[2] 检查ntp服务

#ntpq -p

使用阿里云提供的ECS服务器自动开启NTP服务,如果时区设置不是“Asia/Shanghai”,请确保所有的机器开启NTP服务并在相同的时区。

[3] 安装saptune

saptune是SLES12 SP2之后进化升级版的sapconf工具,用来帮助您调优OS与DB的参数,从而使您的Netweaver或HANA更优化的运行。使用语法如下:

SAP Note

Tune system according to SAP and SUSE notes:
  saptune note [ list | verify ]
  saptune note [ apply | simulate | verify | customise | revert ] NoteID

SAP Solution

Tune system for all notes applicable to your SAP solution:
  saptune solution [ list | verify ]
  saptune solution [ apply | simulate | verify | revert ] SolutionName

由于本例安装NETWEAVER所以安装结果如下:saptune_note

saptune_solution

激活daemon进程

saptune daemon start
systemctl enable tuned

关于saptune更多信息请参考《Prepare your Linux for your SAP solution with saptune》或SLES官方文档。

6.4 配置集群

[1] 配置corosync

1).启动cluster图形界面在第一个节点启动yast2,选择cluster

2).配置Communication Channels

选择transport方式为Unicast输入Channel的bind地址:10.0.20.0(心跳IP网段)输入Redundant channel的bind地址:10.0.10.0(业务IP网段)添加HA的两个节点的心跳IP地址和业务IP(冗余),输入Expected votes投票数为2(节点数量)

3).配置Security

勾选“Enable Security Auth”,点击Generate Auth Key File,生成Auth key文件。

4)配置Csync2

csysnc2是一个同步复制的工具,用来复制配置文件到cluster中的各个节点添加主机,然后选择add Suggested files点击Turn csync2 ON点击Generate Pre-shared-Keys拷贝生成的/etc/csync2/key_hagroup文件到第二节点对应的目录

5).配置service

选择开机启动后是否自动启动pacemaker,默认是关闭状态,本例选择手动控制,选择关闭

6).拷贝文件:将第一节点的/etc/corosync目录下corosync配置文件和authkey文件拷贝至第二节点对应目录:

#scp -pr corosync.conf authkey root@s4app2:/etc/corosync

[2] 启动pacemaker两个节点分别启动pacemaker

#systemctl start pacemaker

检查并确保两个节点处于online状态

#crm_mon -rcorosync2

7.S/4HANA 1809 安装

7.1 安装ASCS Instance

第一个节点启动SWPM安装,选择安装ASCS到虚拟主机名VASCSS4T

# ./sapinst SAPINST_USE_HOSTNAME=VASCSS4T

windows跳转机浏览器中输入访问地址:

https://VASCSS4T:4237/sapinst/docs/index.html

使用root用户以及密码登录(确保主机名解析和端口可访问)ascs1按照规划输入SID和sapmnt路径。ascs2设置FQDN。3设置密码。4按照规划输入用户ID和组ID。5输入kernel所在路径。67按照规划输入ASCS Instance number和虚拟主机名。89集成webdispather与gateway。10配置webdispather(后续可根据情况更改参数)。11安全原因SAP推荐将sidadm用户从sapinst组清除。12参数回顾,此时可返回修改之前定义的参数。1314检查message server和enqueue server的进程15

7.2 安装ERS Instance

在第一个节点再次启动SWPM安装,选择安装ERS到虚拟主机名VERS4T

# ./sapinst SAPINST_USE_HOSTNAME=VERSS4T

windows跳转机浏览器中输入访问地址:

https://VERSS4T:4237/sapinst/docs/index.html

使用root用户以及密码登录(确保主机名解析和端口可访问)ers1ers2根据规划输入用户IDers3ers4根据规划输入ERS instance number以及虚拟主机名ers5根据规划输入用户IDers6ers7ers8检查Enqueue replication server进程ers9

7.3备节点配置ASCS/ERS

1.创建用户和组在第二节点使用SWPM创建相同的用户和组

#./sapinst

创建sidadm和sapadm用户user3输入SID,勾选ABAP stack。user4按照规划输入用户ID和组ID,保持与第一节点一致。user5user2

2.拷贝文件登录第一个节点

1).拷贝/etc/中services文件到第二个节点

#scp -pr services root@s4app2:/etc/

2).拷贝/usr/sap中的sapservices文件到第二节点

#scp -pr sapservices root@s4app2:/usr/sap/

3).拷贝ASCS00,ERS10,SYS目录到第二节点

#cd /usr/sap/S4T

#tar -cvf ASCSERSSYS.tar *

登录第二节点/usr/sap下创建权限相同的S4T目录,拷贝并解压

#scp -pr ASCSERSSYS.tar root@s4app2:/usr/sap/S4T

#tar -xvf ASCSERSSYS.tar

4).检查SYS中的soft link是否正确softlink

7.4 安装DB Instance

登录第一个节点,启动SWPM安装,选择安装DB instance到虚拟主机名VDBS4T

# ./sapinst SAPINST_USE_HOSTNAME=VDBS4T

windows跳转机浏览器中输入访问地址:

https://VDBS4T:4237/sapinst/docs/index.html

使用root用户以及密码登录(确保主机名解析和端口可访问)db1按照规划输入DB SID,Instance number,虚拟主机名。db3指定Export路径。db5输入密码。db6db6_2db_final

7.5集成SAP Instance

7.5.1 添加用户到haclint组

在两个节点都将sidadm用户添加到haclient组。

#usermod -a -G haclient s4tadm

7.5.2 修改ASCS参数文件

1).配置与sap-suse-cluster-connector的集成

2).通知SAP start framework在enqueue server的进程失败时不要重启。

####added for sap-suse-cluster-connector####
#-----------------------------------
#SUSE HAE sap_suse_cluster_connector
#-----------------------------------
 
service/halib = $(DIR_CT_RUN)/saphascriptco.so
service/halib_cluster_connector = /usr/bin/sap_suse_cluster_connector 

####chanegd for not to self-restart the enqueue process####
# Start SAP enqueue server
_EN = en.sap$(SAPSYSTEMNAME)_$(INSTANCE_NAME)
Execute_04 = local rm -f $(_EN)
Execute_05 = local ln -s -f $(DIR_EXECUTABLE)/enserver$(FT_EXE) $(_EN)
#Restart_Program_01 = local $(_EN) pf=$(_PF)
 
Start_Program_01 = local $(_EN) pf=$(_PF) 

##################################

7.5.3 修改ERS参数文件

1).配置与sap-suse-cluster-connector的集成

2).通知SAP start framework在Enqueue replication server(Enqueue Replicator 2)的进程失败时不要重启。

####added for sap-suse-cluster-connector####
#-----------------------------------
#SUSE HAE sap_suse_cluster_connector
#-----------------------------------
 
service/halib = $(DIR_CT_RUN)/saphascriptco.so
service/halib_cluster_connector = /usr/bin/sap_suse_cluster_connector 

###############################################################
#####changed by dongchen_201804###
#Restart_Program_00 = local $(_ENQR) pf=$(_PF) NR=$(SCSID)
 
Start_Program_00 = local $(_ENQR) pf=$(_PF) NR=$(SCSID) 

##################################

7.5.4 配置resource Agent

说明

本示例介绍了两种Fence方案的配置,请根据您前面选择的fence的方案,选择对应的配置脚本。

方案一:共享块存储实现SBD fence功能(方案已下线)

登录集群任意节点新建文本文件,将脚本中的”SID、InstanceNumber、和params ip” 三个参数值替换成实际部署的SAP系统的值。

HA_script.txt的内容如下:

#Cluster settings
property cib-bootstrap-options: \
        have-watchdog=true \
        cluster-infrastructure=corosync \
        cluster-name=hacluster \
        stonith-enabled=true \
        placement-strategy=balanced \
        maintenance-mode=false
rsc_defaults rsc-options: \
        resource-stickiness=1 \
        migration-threshold=3
op_defaults op-options: \
        timeout=600 \
        record-pending=true
#STONITH resource setting
primitive stonith-sbd stonith:external/sbd \
        params pcmk_delay_max=30s
#ASCS resource setting
primitive rsc_ip_S4T_ASCS00 IPaddr2 \
        params ip=10.0.10.12 \
        op monitor interval=10s timeout=20s
primitive rsc_sap_S4T_ASCS00 SAPInstance \
        operations $id=rsc_sap_S4T_ASCS00-operations \
        op monitor interval=11 timeout=60 on_fail=restart \
        params InstanceName=S4T_ASCS00_VASCSS4T START_PROFILE="/sapmnt/S4T/profile/S4T_ASCS00_VASCSS4T" AUTOMATIC_RECOVER=false \
        meta resource-stickiness=5000 target-role=Started
#ERS resource setting
primitive rsc_ip_S4T_ERS10 IPaddr2 \
        params ip=10.0.10.13 \
        op monitor interval=10s timeout=20s
primitive rsc_sap_S4T_ERS10 SAPInstance \
        operations $id=rsc_sap_S4T_ERS10-operations \
        op monitor interval=11 timeout=60 on_fail=restart \
        params InstanceName=S4T_ERS10_VERSS4T START_PROFILE="/sapmnt/S4T/profile/S4T_ERS10_VERSS4T" AUTOMATIC_RECOVER=false IS_ERS=true \
        meta target-role=Started maintenance=false
#Groups and colocations
group grp_S4T_ASCS00 rsc_ip_S4T_ASCS00 rsc_sap_S4T_ASCS00 \
        meta resource-stickiness=3000
group grp_S4T_ERS10 rsc_ip_S4T_ERS10 rsc_sap_S4T_ERS10 \
        meta target-role=Started
colocation col_sap_S4T_no_both -5000: grp_S4T_ERS10 grp_S4T_ASCS00
order ord_sap_S4T_first_start_ascs Optional: rsc_sap_S4T_ASCS00:start rsc_sap_S4T_ERS10:stop symmetrical=false

检查HA状态,确保所有的resource启动

crm_mon -r

1

方案二:Fence_aliyun实现fence功能

登录集群任意节点新建文本文件,拷贝示例中的脚本按SAP ASCS的实际部署的情况修改。

  • plug的值替换成S/4 ASCS集群的两台ECS的实例ID

  • ram_role的值替换成上面配置的ram role

  • region的值替换成ECS实例所在的地域ID

  • ip的值替换成S/4 ASCS和ERS的高可用虚拟IP地址

  • InstanceName和START_PROFILE替换成S/4 ASCS和ERS的参数名和路径

  • group、colocation和order的值要跟前面定义的资源名保持一致

  • location后面的参数中替换成S/4 ASCS和ERS实例的主机名

说明

阿里云地域和Region ID对照关系,请访问 地域和可用区

本示例中的脚本文件名HA_script.txt

#Fence agent setting
primitive res_ALIYUN_STONITH_1 stonith:fence_aliyun \
    op monitor interval=120 timeout=60 \
    params plug=i-xxxxxxxxxxxxxxxxxxxx ram_role=AliyunECSAccessingHBRRole region=cn-beijing
primitive res_ALIYUN_STONITH_2 stonith:fence_aliyun \
    op monitor interval=120 timeout=60 \
    params plug=i-xxxxxxxxxxxxxxxxxxxx ram_role=AliyunECSAccessingHBRRole region=cn-beijing
#ASCS/ERS resource setting
primitive rsc_ip_S4T_ASCS00 IPaddr2 \
        params ip=10.0.10.12 \
        op monitor interval=10s timeout=20s
primitive rsc_sap_S4T_ASCS00 SAPInstance \
        operations $id=rsc_sap_S4T_ASCS00-operations \
        op monitor interval=11 timeout=60 \
        op_params on_fail=restart \
        params InstanceName=S4T_ASCS00_VASCSS4T START_PROFILE="/sapmnt/S4T/profile/S4T_ASCS00_VASCSS4T" AUTOMATIC_RECOVER=false \
        meta resource-stickiness=5000
primitive rsc_ip_S4T_ERS10 IPaddr2 \
        params ip=10.0.10.13 \
        op monitor interval=10s timeout=20s
primitive rsc_sap_S4T_ERS10 SAPInstance \
        operations $id=rsc_sap_S4T_ERS10-operations \
        op monitor interval=11 timeout=60 \
        op_params on_fail=restart \
        params InstanceName=S4T_ERS10_VERSS4T START_PROFILE="/sapmnt/S4T/profile/S4T_ERS10_VERSS4T" AUTOMATIC_RECOVER=false IS_ERS=true
#Groups
group grp_S4T_ASCS00 rsc_ip_S4T_ASCS00 rsc_sap_S4T_ASCS00 \
        meta target-role=Started resource-stickiness=3000
group grp_S4T_ERS10 rsc_ip_S4T_ERS10 rsc_sap_S4T_ERS10 \
        meta target-role=Started
#Colocations
colocation col_sap_S4T_no_both -5000: grp_S4T_ERS10 grp_S4T_ASCS00
#Stonith 1 should not run on primary node because it is controling primary node
location loc_s4app1_stonith_not_on_s4app1 res_ALIYUN_STONITH_1 -inf: s4app1
location loc_s4app2_stonith_not_on_s4app2 res_ALIYUN_STONITH_2 -inf: s4app2
#Order
order ord_sap_S4T_first_start_ascs Optional: rsc_sap_S4T_ASCS00:start rsc_sap_S4T_ERS10:stop symmetrical=false
#cluster setting
property cib-bootstrap-options: \
        have-watchdog=false \
        cluster-name=hacluster \
        stonith-enabled=true \
        stonith-timeout=150s
rsc_defaults rsc-options: \
        migration-threshold=5000 \
        resource-stickiness=1000
op_defaults op-options: \
        timeout=600

用root用户运行如下命令,让SAP ASCS的资源被SUSE HAE接管。

crm configure load update HA_script.txt

检查HA状态,确保所有的resource启动

crm_mon -r

2

7.5.5 去掉临时HAVIP绑定

#yast2 network

将之前临时绑定的ASCS和ERS的HAVIP绑定删除remove-temp-havip

7.5.6 ASCS/ERS的起停

启动ASCS/ERS instance

su - s4tadm
#启动ASCS
sapcontrol -nr 00 -function StartService S4T
sapcontrol -nr 00 -function Start
#启动ERS
sapcontrol -nr 10 -function StartService S4T
sapcontrol -nr 10 -function Start

停止ASCS/ERS instance

su - s4tadm
#停止ASCS
sapcontrol -nr 00 -function Stop
sapcontrol -nr 00 -function StopService S4T
#停止ERS
sapcontrol -nr 10 -function Stop
sapcontrol -nr 10 -function StopService S4T

7.5.7 HA集群检查

检查FailoverConfig

sapcontrol -nr 00 -function HAGetFailoverConfigha_check2检查HACheckConfig

sapcontrol -nr 00 -function HACheckConfigha_check3检查HACheckFailoverConfig

sapcontrol -nr 00 -function HACheckFailoverConfigha_check4

7.6 安装PAS Instance

PAS本身不参与HA的切换,安装在本地。启动SWPM安装,选择安装PAS到本地

# ./sapinst

windows跳转机浏览器中输入访问地址:

https://s4app1:4237/sapinst/docs/index.html

使用root用户以及密码登录(确保主机名解析和端口可访问)pas1按照规划输入Instance numberpas3不注册sld,后续可以注册pas4根据需求选择是否创建message server的ACL,本次部署不创建,后续可以创建pas5

安装AAS在s4app2本地与安装PAS过程大致,过程略

7.7 配置hdbuserstore

PAS/AAS安装完成之后需要配置hdbuserstore以确保PAS与AAS连接的是HANA的高可用虚拟IP对应的虚拟主机名。

su - s4tadm
hdbuserstore set default VDBS4T:30015 SAPHANADB "pasword"
hdbuserstore list

hdbuser

8.切换测试

关于高可用环境维护指南请参考SAP系统高可用环境维护指南。关于Suse HAE的日常管理任务及命令请参考Suse官方文档《Administration Guide》