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中接管锁。
3).对于ENSA1的架构在pacemaker中支持两个节点的cluster,ASCS必须“跟随”ERS;对于ENSA2的新架构中在pacemaker中可以不仅支持两个节点的cluster同时也支持多节点的cluster。
本次部署依然采用两个节点的cluster作为最佳实践,只包括S/4 HANA 1809 server的安装并未包括Fiori front-end server,同时本次部署并未安装SAP liveCache Intergration。
2.架构总览
本次部署的架构设计如下:
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
配置ASCS和ERS的高可用虚拟IP:
同理配置ERS的高可用虚拟IP。
检测ASCS的高可用虚拟IP的连通性:
检测ERS的高可用虚拟IP的连通性:
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所以安装结果如下:
激活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 -r
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用户以及密码登录(确保主机名解析和端口可访问)按照规划输入SID和sapmnt路径。设置FQDN。设置密码。按照规划输入用户ID和组ID。输入kernel所在路径。按照规划输入ASCS Instance number和虚拟主机名。集成webdispather与gateway。配置webdispather(后续可根据情况更改参数)。安全原因SAP推荐将sidadm用户从sapinst组清除。参数回顾,此时可返回修改之前定义的参数。检查message server和enqueue server的进程
7.2 安装ERS Instance
在第一个节点再次启动SWPM安装,选择安装ERS到虚拟主机名VERS4T
# ./sapinst SAPINST_USE_HOSTNAME=VERSS4T
windows跳转机浏览器中输入访问地址:
https://VERSS4T:4237/sapinst/docs/index.html
使用root用户以及密码登录(确保主机名解析和端口可访问)根据规划输入用户ID根据规划输入ERS instance number以及虚拟主机名根据规划输入用户ID检查Enqueue replication server进程
7.3备节点配置ASCS/ERS
1.创建用户和组在第二节点使用SWPM创建相同的用户和组
#./sapinst
创建sidadm和sapadm用户输入SID,勾选ABAP stack。按照规划输入用户ID和组ID,保持与第一节点一致。
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是否正确
7.4 安装DB Instance
登录第一个节点,启动SWPM安装,选择安装DB instance到虚拟主机名VDBS4T
# ./sapinst SAPINST_USE_HOSTNAME=VDBS4T
windows跳转机浏览器中输入访问地址:
https://VDBS4T:4237/sapinst/docs/index.html
使用root用户以及密码登录(确保主机名解析和端口可访问)按照规划输入DB SID,Instance number,虚拟主机名。指定Export路径。输入密码。
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
方案二: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
7.5.5 去掉临时HAVIP绑定
#yast2 network
将之前临时绑定的ASCS和ERS的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 HAGetFailoverConfig
检查HACheckConfig
sapcontrol -nr 00 -function HACheckConfig
检查HACheckFailoverConfig
sapcontrol -nr 00 -function HACheckFailoverConfig
7.6 安装PAS Instance
PAS本身不参与HA的切换,安装在本地。启动SWPM安装,选择安装PAS到本地
# ./sapinst
windows跳转机浏览器中输入访问地址:
https://s4app1:4237/sapinst/docs/index.html
使用root用户以及密码登录(确保主机名解析和端口可访问)按照规划输入Instance number不注册sld,后续可以注册根据需求选择是否创建message server的ACL,本次部署不创建,后续可以创建
安装AAS在s4app2本地与安装PAS过程大致,过程略
7.7 配置hdbuserstore
PAS/AAS安装完成之后需要配置hdbuserstore以确保PAS与AAS连接的是HANA的高可用虚拟IP对应的虚拟主机名。
su - s4tadm
hdbuserstore set default VDBS4T:30015 SAPHANADB "pasword"
hdbuserstore list
8.切换测试
关于高可用环境维护指南请参考SAP系统高可用环境维护指南。关于Suse HAE的日常管理任务及命令请参考Suse官方文档《Administration Guide》