SAP HANA 同可用区高可用部署指南
本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
SAP HANA 同可用区高可用部署指南
6.2 SSH互信配置
6.4 关闭/etc/hosts自动更新设置
8、SAP HANA文件系统划分
版本管理
版本 | 修订日期 | 变更类型 | 生效日期 |
1.0 | 2018/9/7 | ||
2.0 | 2019/4/23 | 1.优化了部署过程和文档结构 2.更新了全部截图 3.增加了SAP HANA文件系统LVM配置过程 | 2019/4/23 |
2.1 | 2019/7/4 | 1.部署架构图更新 2.NAS参数优化 | 2019/7/4 |
2.2 | 2020/10/27 | 1.更新了SAP HANA认证实例规格等 | 2020/10/27 |
2.3 | 2020/12/10 | 1.增加操作系统和存储配置内容,如时钟源设置、关闭主机名自动更新等 2.SAP HANA认证实例规格更新等 | 2020/12/10 |
2.4 | 2021/05/28 | 1.Pacemaker SBD超时时间优化 | 2021/05/28 |
2.5 | 2021/06/08 | 1.优化文件系统规划和配置部分 | 2021/06/08 |
2.6 | 2021/11/11 | 1.更新了基于fence_aliyun的fence方案 2.优化了云产品的部署说明 | 2021/11/11 |
2.7 | 2022/12/5 | 1.更新了fence_aliyun组件依赖包针对不同操作系统版本的说明 | 2022/12/5 |
1、概述
本文档描述了如何在阿里云的同可用区内部署SAP HANA的高可用环境。
本文档无法代替SAP标准文档,文档中出现的安装部署方式仅供参考,建议在部署之前阅读SAP官方的安装配置文档以及其中建议的SAP Notes。
2、SAP HANA高可用架构
本次部署的架构设计如下:
3、安装前准备
3.1 SAP系统安装介质
访问方式 | 访问原理 | 备注 |
直接上传 | 通过公网直接上传到ECS | |
OSS + ossutil | 上传到OSS再下载到ECS |
3.2 VPC网络规划
网络 | 位置 | 用途 | 分配网段 |
业务网 | 华东2 可用区F | For Business/SR | 192.168.10.0/24 |
心跳网 | 华东2 可用区F | For HA | 192.168.20.0/24 |
3.3 主机规划
主机名 | 角色 | 心跳地址 | 业务地址 | 高可用虚拟IP(HAVIP) |
saphana-01 | SAP HANA主节点 | 192.168.20.19 | 192.168.10.168 | 192.168.10.12 |
saphana-02 | SAP HANA备节点 | 192.168.20.20 | 192.168.10.169 | 192.168.10.12 |
3.4 文件系统规划
本示例中的文件系统划分如下:
属性 | 文件系统大小 | 云盘容量*数量 | 云盘类型 | 文件系统 | VG | LVM条带化 | 挂载点 |
数据盘 | 900G | 300G*3 | SSD或ESSD | XFS | datavg | 是 | /hana/data |
数据盘 | 400G | 400G*1 | SSD或ESSD | XFS | logvg | 否 | /hana/log |
数据盘 | 300G | 300G*1 | SSD或ESSD | XFS | sharedvg | 否 | /hana/shared |
数据盘 | 50G | 50G*1 | 高效云盘 | XFS | sapvg | 否 | /usr/sap |
3.5 VPC网络创建
专有网络VPC(Virtual Private Cloud)是基于阿里云构建的一个隔离的网络环境,专有网络之间逻辑上彻底隔离。专有网络是您自己独有的云上私有网络。您可以完全掌控自己的专有网络,例如选择IP地址范围、配置路由表和网关等。具体详细信息和文档请参考 产品文档。
登录控制台->专有网络,点击“创建专有网络”。按规划创建专有网络及SAP业务子网和心跳子网。
4、创建SAP HANA ECS实例
4.1 创建SAP HANA主节点实例
4.1.1 ECS 产品购买页面
访问 https://www.aliyun.com/product/ecs购买页面,在SAP HANA下选择实例类型,点击立即购买。
4.1.2 选择付费方式
选择 付费方式:包年包月 或者 按量付费。
4.1.3选择对应区域和可用区
选择地域和可用区。系统默认随机分配可用区,您可以选择适用的可用区。如何选择地域和可用区,请参见 地域和可用区。
本实例选择华东2可用区A。
4.1.4 选择实例规格
目前通过SAP HANA认证的实例规格请参考 认证ECS实例(SAP HANA)或者访问SAP官网 Certified and Supported SAP HANA Hardware。
4.1.5 选择镜像
您可以选择公共镜像、自定义镜像、共享镜像或从镜像市场选择镜像。
SAP HANA的镜像,可按实际需求选择对应的镜像类型和版本。
单击“从镜像市场选择”,进入镜像市场,输入“sap”关键字查询,本示例使用的是“SUSE linux Enterprise Server for SAP 12 SP3”镜像。
更多信息,请参考FAQ:SUSE Linux Enterprise for SAP
4.1.6 配置存储
系统盘:必选项,用于安装操作系统。指定系统盘的云盘类型和容量。
数据盘:可选项。如果在此时创建云盘作为数据盘,必须选择云盘类型、容量、数量,并设置是否加密。您可以创建空云盘,也可以使用快照创建云盘。最多可以添加16块云盘作数据盘。
数据盘的大小需要根据HANA实例的需求做相应的调整。
本示例中, /hana/data 使用三块同等容量的SSD或ESSD云盘用LVM做条带化以满足HANA的性能要求,/hana/log,/hana/shared 使用单块SSD或ESSD云盘,文件系统均为XFS。
有关SAP HANA存储需求请参考 Sizing SAP HANA。
4.1.7 选择网络类型
单击 下一步:网络和安全组,完成网络和安全组设置。
1、选择网络类型
按规划并选择专有网络和业务网段交换机。
2、设置公网带宽
按需设置合适的公网带宽。
4.1.8 选择安全组
选择安全组。如果您自己没有创建安全组,需要手工创建安全组用于管理ECS出和入的网络访问策略。默认创建安全组的规则,请参见默认安全组规则。
4.1.9 网卡配置
先不增加第二张弹性网卡,ECS创建成功之后再添加第二张网卡。
4.1.10 设置部署集
在指定部署集中创建 ECS 实例时,会和处于同一部署集中的其他 ECS 实例严格按物理服务器打散,保障在硬件故障等异常情况下的服务高可用性。
关于部署集的更多说明,请参考 部署集概述。
在本示例中,高可用架构的两台SAP HANA实例将被放入部署集“S4HANA_HA”中,SAP的ASCS/SCS的高可用部署也建议使用这种方式来管理ECS。
选择一个已经创建好的部署集,如果还没有部署集,可以访问控制台->云服务器ECS->部署与弹性->部署集进行创建。
部署集创建完成后,返回刚才的页面,选择这个部署集,完成系统配置、分组设置。
4.2 创建SAP HANA备节点实例
参考上述步骤按需求和规划创建SAP HANA备节点ECS实例。
SAP HANA主备节点的ECS实例需要放在一个部署集中。
5、部署云资源
5.1 配置弹性网卡
弹性网卡(ENI)是一种可以附加到专有网络VPC类型ECS实例上的虚拟网卡,通过弹性网卡,您可以实现高可用集群搭建、低成本故障转移和精细化的网络管理。所有地域均支持弹性网卡。具体说明请参见 弹性网卡。
创建弹性网卡
本示例,按规划每台ECS各创建一块额外的ENI,用于心跳网卡。
[1] 登录控制台->云服务器ECS->网络和安全->弹性网卡。确认跟ECS是同地域,点击“创建弹性网卡”。
[2] 按规划选择对应的VPC网络、交换机等参数。ENI创建完成后,绑定对应的ECS实例。
[3] 登录操作系统配置网卡。
登录SUSE图形窗口进入网络配置或者通过终端运行yast2 network,按规划配置新建的ENI网卡的静态IP地址和子网掩码,并确保网卡处于激活状态。可以通过以下命令来查询网卡的配置和状态:
ip addr sh
如果需要修改主网卡内网IP地址,请参考 修改私有IP地址。
5.2 配置高可用虚拟IP
高可用虚拟IP(Private High-Availability Virtual IP Address,简称HAVIP),是一种可以独立创建和释放的私网IP资源。这种私网IP的特殊之处在于,用户可以在ECS上使用ARP协议进行该IP的宣告。本次部署使用高可用虚拟IP作为集群中的虚拟IP挂载在集群中的每一个节点。
5.2.1 创建高可用虚拟IP
高可用虚拟IP作为HANA instance提供服务的虚拟IP,选择创建在业务网段(主网卡)。
登录控制台->专有网络VPC->高可用虚拟IP,点击创建“高可用虚拟IP”,这里请选择业务网段的交换机(主网卡),按需要选择自动或手工分配IP地址。
请联系您的阿里云解决方案架构师(SA)协助你完成产品使用申请。
5.2.2 关联SAP HANA主、备节点
进入已创建的高可用虚拟IP实例的管理界面,分别绑定集群中的两台ECS实例。
初始绑定后,两台ECS实例的状态均为“备”。通过SUSE HAE的集群软件接管被管理资源后,才会显示正确的状态。
5.3 配置Fence
阿里云提供两个方案用于实现SAP系统高可用部署中的Fence的功能,推荐您选择云原生的《方案二:Fence_aliyun实现Stonith功能》。
如果您希望了解,如何将已经部署在阿里云上SAP HANA高可用环境(基于共享块存储方案)切换到云原生的Fence_aliyun方案,请参阅如何从SBD fence方案迁移到Fence aliyun方案?
5.3.1 方案一:共享块存储实现SBD fence功能(方案已下线)
共享块存储是一种支持多台ECS实例并发读写访问的数据块级存储设备,具备多并发、高性能、高可靠等特性,单块共享块存储最多支持同时挂载到16台ECS实例挂载共享块存储的操作。
共享块存储作为高可用集群的SBD设备,选择与ECS同地域可用区,并挂载在高可用集群中的ECS实例中。
请联系您的阿里云解决方案架构师(SA)协助你完成产品使用申请。
[1] 创建共享块存储
登录控制台->云服务器ECS->存储与快照,点击“共享块存储”,在ECS同地域同可用区创建共享块存储。
创建成功后,返回共享块存储控制台,将刚才创建的共享块存储设备挂载到高可用集群中的两台ECS实例上。
[2] 配置共享块存储
登录操作系统,查看磁盘信息
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 为共享块存储设备标识。
配置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
配置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"
检查SBD状态
在两个节点上,分别检查SBD状态:
sbd -d /dev/vdf list
确保SAP HANA两个节点的SBD状态均是clear:
sbd -d /dev/vdf list
0 saphana-01 clear
1 saphana-02 clear
验证SBD配置
请确保被fence节点的应用程序已关闭,此操作将触发节点重启动作。
本示例,登录主节点saphana01。
sbd -d /dev/vdf message saphana-02 reset
如果备节点saphana-02正常重启,说明配置成功。
备节点重启后,还需要手动将其重置为clear状态。
sbd -d /dev/vdf list
0 saphana-01 clear
1 saphana-02 reset saphana-01
sbd -d /dev/vdf message saphana-02 clear
sbd -d /dev/vdf list
0 saphana-01 clear
1 saphana-02 clear saphana-01
5.3.2 方案二:Fence_aliyun实现Fence功能
为方便实现Fence功能,此处提供了参考方案,但部署方案并非标准产品交付的一部份,本方案仅供参考。用户可根据实际情况自行实现Fence功能。
fence_aliyun是针对阿里云环境开发的,用于隔离SAP系统高可用环境故障节点的fence代理程序。通过调用阿里云Open API实现对阿里云云资源的灵活调度和管理,支持同可用区的SAP系统高可用部署,满足企业对SAP核心应用的高可用部署的需求。
SUSE Enterprise Server for SAP Applications 12 SP4及之后的版本已经原生集成了fence_aliyun组件,只需简单配置就能用于阿里云公有云环境的SAP系统高可用环境部署。
[1] 环境准备
本示例使用的是阿里云SUSE CSP付费镜像,可以直连阿里云SUSE SMT更新源下载或更新SUSE组件。关于SUSE CSP镜像的更多信息请参考FAQ:SUSE Linux Enterprise for SAP。
如果您使用的是自定义镜像,请参考 How to register SLES using the SUSEConnect command line tool连接SUSE官方更新源。
安装python等开源软件需要连接公网,请确保已经为ECS配置了EIP公网地址或NAT网关。
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
wget https://www.python.org/ftp/python/3.6.15/Python-3.6.15.tgz
tar -xf Python-3.6.15.tgz
cd Python-3.6.15/
./configure
make && make install
# 重启ECS并安装验证
python3 -V
# 安装pip3
curl https://bootstrap.pypa.io/pip/3.6/get-pip.py -o get-pip.py
python3 get-pip.py
# 安装验证
pip3 -V
[2] 安装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
[3] 配置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”角色。
[4] fence_aliyun安装和配置
下载最新版fence_aliyun
下载fence_aliyun需要访问github,请确保ECS实例的网络环境可以正常访问github站点。
打开浏览器访问github fence_aliyun源码,新建并复制源码到 /usr/sbin/fence_aliyun
文件中。
如果已经存在/usr/sbin/fence_aliyun,请先用命令清空该文件
cat /dev/null > /usr/sbin/fence_aliyun
# 配置权限
chmod 755 /usr/sbin/fence_aliyun
chown root:root /usr/sbin/fence_aliyun
适配用户环境
# 指定解释器为python3
sed -i "s|@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获取ECS实例的运行状态
# 语法示例:
# 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实例的名称没有中文字符。
6、操作系统配置
6.1 维护主机名
分别在高可用集群的两台SAP HANA ECS实例上,配置两台 HANA 服务器之间的主机名称解析。
本示例的 /etc/hosts 文件内容如下:
127.0.0.1 localhost
#业务网
192.168.10.168 saphana-01 saphana-01
192.168.10.169 saphana-02 saphana-02
#心跳网
192.168.20.19 hana-ha01 hana-ha01
192.168.20.20 hana-ha02 hana-ha02
6.2 ECS SSH互信配置
高可用集群的两台SAP HANA ECS实例需要配置 SSH互信,配置示例如下。
6.2.1 配置认证公钥
在SAP HANA主节点执行如下命令:
ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.169
在SAP HANA备节点上执行如下命令:
ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.168
6.2.2 验证配置结果
分别在两个节点上,使用 SSH 登录另外一个节点,如果不需要密码登录,则说明互信已经建立。
6.3 关闭DHCP自动设置主机名
分别在主备节点ECS上执行以下命令:
sed -i '/DHCLIENT_SET_HOSTNAME/ c\DHCLIENT_SET_HOSTNAME="no"' /etc/sysconfig/network/dhcp
6.4 关闭/etc/hosts自动更新主机名
sed -i "s/^ - update_etc_hosts/#- update_etc_hosts/" /etc/cloud/cloud.cfg
6.5 设置时钟源为tsc
不正确的时钟源设置可能会使SAP HANA出现潜在的性能问题,详情请参考 HANA Alert “Alert Timer fallback”。
[1] 先确认当前时间源配置
cat /sys/devices/system/clocksource/clocksource0/current_clocksource
kvm-clock
[2] 查询可用的时钟源
cat /sys/devices/system/clocksource/clocksource0/available_clocksource
kvm-clock tsc acpi_pm
[3] 将时钟源设置为tsc
sudo bash -c 'echo tsc > /sys/devices/system/clocksource/clocksource0/current_clocksource'
设置成功的话,内核消息里会显示以下信息
dmesg | less
clocksource: Switched to clocksource tsc
[4] 设置系统启动时的时钟源为tsc
备份并编辑 /etc/default/grub,为GRUB_CMDLINE_LINUX 选项添加 clocksource=tsc tsc=reliable。
GRUB_CMDLINE_LINUX=" net.ifnames=0 console=tty0 console=ttyS0,115200n8 clocksource=tsc tsc=reliable"
生成grub.cfg文件
grub2-mkconfig -o /boot/grub2/grub.cfg
登录阿里云ECS控制台,重启ECS使变更生效。
7、ECS Metrics Collector for SAP监控代理
ECS Metrics Collector监控代理程序,用于云平台上SAP系统收集需要的虚拟机配置信息和底层物理资源使用相关的信息,供日后做性能统计和问题分析使用。
每台SAP应用和数据库都需要安装Metrics Collector,监控代理的部署请参考 ECS Metrics Collector for SAP部署指南。
8、HANA文件系统划分
按前面的文件系统规划,用LVM来管理和配置云盘。
有关LVM更详细的介绍,请参考 LVM HOWTO。
创建PV和VG
pvcreate /dev/vdb /dev/vdc /dev/vdd /dev/vde /dev/vdf /dev/vdg
vgcreate datavg /dev/vdb /dev/vdc /dev/vdd
vgcreate logvg /dev/vde
vgcreate sharedvg /dev/vdf
vgcreate sapvg /dev/vdg
创建LV
'将datavg的三块300G的SSD云盘制作条带化'
lvcreate -l 100%FREE -n datalv -i 3 -I 256 datavg
lvcreate -l 100%FREE -n loglv logvg
lvcreate -l 100%FREE -n sharedlv sharedvg
lvcreate -l 100%FREE -n usrsaplv sapvg
创建挂载点并格式化文件系统
mkdir -p /usr/sap /hana/data /hana/log /hana/shared
mkfs.xfs /dev/sapvg/usrsaplv
mkfs.xfs /dev/datavg/datalv
mkfs.xfs /dev/logvg/loglv
mkfs.xfs /dev/sharedvg/sharedlv
挂载文件系统并加到开机自启动项
vim /etc/fstab
# 添加下列项:
/dev/mapper/datavg-datalv /hana/data xfs defaults 0 0
/dev/mapper/logvg-loglv /hana/log xfs defaults 0 0
/dev/mapper/sharedvg-sharedlv /hana/shared xfs defaults 0 0
/dev/mapper/sapvg-usrsaplv /usr/sap xfs defaults 0 0
# 挂载文件系统
mount -a
9、SAP HANA的安装和配置
9.1 安装SAP HANA
SAP HANA的主、备节点的System ID和Instance ID要相同。本示例的SAP HANA的System ID为H01,Instance ID为00。
SAP HANA的安装和配置请参考 SAP HANA Platform。
9.2 配置HANA System Replication
SAP HANA System Replication的配置请参考 How To Perform System Replication for SAP HANA。
10、SLES Cluster HA安装配置
10.1 安装SUSE HAE软件
有关SUSE HAE操作手册请参考:SUSE Product Documentation。
在SAP HANA主、备节点上,检查是否已经安装SUSE HAE组件和SAPHanaSR等必要组件。
本示例使用的是SUSE CSP(Cloud Service Provider)付费镜像,此镜像已经预置了阿里云SUSE SMT Server配置,可直接进行组件检查和安装。如果是自定义镜像或其他镜像,请自行购买SUSE授权并注册到SUSE官方的SMT Server或者手工配置Zypper repository源。有关阿里云SUSE CSP镜像的更多信息,请参考FAQ:SUSE Linux Enterprise for SAP。
请确保已经正确安装了以下组件:
# 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
10.2 配置集群
在SAP HANA实例上通过VNC图形界面配置Corosync
# 进入集群配置
yast2 cluster
[1] 配置communication channel
Channel选择心跳网段,Redundant Channel选择业务网段。
按正确的顺序依次添加Member address(Redundant Channel输入业务地址)。
Excepted Votes: 2
Transport: Unicast
[2] 配置Security
勾选”Enable Security Auth”,并点击 Generate Auth Key File。
[3] 配置Csync2
添加Sync host。
点击Add Suggested Files。
点击Generate Pre-Shared-Keys。
点击Turn csync2 ON。
Configure conntrackd默认,直接下一步。
[4] 配置Service
确认Cluster服务不要设成开机自启动。
配置完成后保存退出,将Corosync配置文件复制到SAP HANA的备节点。
# scp -pr /etc/corosync/authkey /etc/corosync/corosync.conf root@saphana-02:/etc/corosync/
[5] 启动集群
在两个节点里执行如下命令:
# systemctl start pacemaker
[6] 查看集群状态
现在两个node都已经online了,被管理的资源后面做配置。
crm_mon -r
Stack: corosync
Current DC: saphana-02 (version 1.1.16-4.8-77ea74d) - partition with quorum
Last updated: Tue Apr 23 11:22:38 2019
Last change: Tue Apr 23 11:22:36 2019 by hacluster via crmd on saphana-02
2 nodes configured
0 resources configured
Online: [ saphana-01 saphana-02 ]
No resources
[7] 启动Web网页图形化配置
(1)激活两台ECS的Hawk2服务
# 设置hacluster用户的密码
passwd hacluster
# 重启服务,使设置生效
systemctl restart hawk
(2)访问Hawk2
打开浏览器访问hawk的Web控制台。
https://[ECS实例IP地址]:7630
输入用户名 hacluster和密码登录。
11、SAP HANA与SUSE HAE集成
本示例介绍了两种Fence设备的配置,请根据您选择的Fence的方案,选择对应的配置脚本。
11.1 方案一:共享块存储实现SBD fence功能(方案已下线)
登录集群任意节点新建文本文件,将脚本中的”SID、InstanceNumber、和params ip” 三个参数值替换成实际部署的SAP系统的值。
本示例中,SID:H01,InstanceNumber:00,params ip:192.168.10.12,脚本文件名HANA_HA_script.txt。
###SAP HANA Topology is a resource agent that monitors and analyze the HANA landscape and communicate the status between two nodes##
primitive rsc_SAPHanaTopology_HDB ocf:suse:SAPHanaTopology \
operations $id=rsc_SAPHanaTopology_HDB-operations \
op monitor interval=10 timeout=600 \
op start interval=0 timeout=600 \
op stop interval=0 timeout=300 \
params SID=H01 InstanceNumber=00
###This file defines the resources in the cluster together with the Virtual IP###
primitive rsc_SAPHana_HDB ocf:suse:SAPHana \
operations $id=rsc_SAPHana_HDB-operations \
op start interval=0 timeout=3600 \
op stop interval=0 timeout=3600 \
op promote interval=0 timeout=3600 \
op monitor interval=60 role=Master timeout=700 \
op monitor interval=61 role=Slave timeout=700 \
params SID=H01 InstanceNumber=00 PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=false
#This is for sbd setting##
primitive rsc_sbd stonith:external/sbd \
op monitor interval=20 timeout=15 \
meta target-role=Started maintenance=false
#This is for VIP resource setting##
primitive rsc_vip IPaddr2 \
operations $id=rsc_vip-operations \
op monitor interval=10s timeout=20s \
params ip=192.168.10.12
ms msl_SAPHana_HDB rsc_SAPHana_HDB \
meta is-managed=true notify=true clone-max=2 clone-node-max=1 target-role=Started interleave=true maintenance=false
clone cln_SAPHanaTopology_HDB rsc_SAPHanaTopology_HDB \
meta is-managed=true clone-node-max=1 target-role=Started interleave=true maintenance=false
colocation col_saphana_ip_HDB 2000: rsc_vip:Started msl_SAPHana_HDB:Master
order ord_SAPHana_HDB Optional: cln_SAPHanaTopology_HDB msl_SAPHana_HDB
property cib-bootstrap-options: \
have-watchdog=true \
cluster-infrastructure=corosync \
cluster-name=cluster \
no-quorum-policy=ignore \
stonith-enabled=true \
stonith-action=reboot \
stonith-timeout=150s
rsc_defaults rsc-options: \
migration-threshold=5000 \
resource-stickiness=1000
op_defaults op-options: \
timeout=600 \
record-pending=true
11.2 方案二:Fence_aliyun实现Fence功能
登录集群任意节点新建文本文件,拷贝示例中的脚本按SAP HANA的实际部署的情况,修改如下参数:
plug的值替换成SAP HANA集群的两台ECS的实例ID。
ram_role的值替换成上面配置的ram role。
region的值替换成ECS实例所在的地域ID。
ip的值替换成集群的高可用虚拟IP地址。
SID和InstanceNumber的值替换成SAP HANA实例的SID和实例编号。
location后面的参数中替换成SAP HANA实例的主机名。
阿里云地域和Region ID对照关系,请访问 地域和可用区。
本示例中的脚本文件名HANA_HA_script.txt。
primitive res_ALIYUN_STONITH_1 stonith:fence_aliyun \
op monitor interval=120 timeout=60 \
params plug=i-xxxxxxxxxxxxxxxxxxxx ram_role=xxxxxxxxxxxxxxxxxxxx region=cn-xxxx \
meta target-role=Started
primitive res_ALIYUN_STONITH_2 stonith:fence_aliyun \
op monitor interval=120 timeout=60 \
params plug=i-xxxxxxxxxxxxxxxxxxxx ram_role=xxxxxxxxxxxxxxxxxxxx region=cn-xxxx \
meta target-role=Started
# havip resources
primitive rsc_vip IPaddr2 \
operations $id=rsc_vip-operations \
op monitor interval=10s timeout=20s \
params ip=x.x.x.x
###SAP HANA Topology is a resource agent that monitors and analyze the HANA landscape and communicate the status between two nodes##
primitive rsc_SAPHanaTopology_HDB ocf:suse:SAPHanaTopology \
operations $id=rsc_SAPHanaTopology_HDB-operations \
op monitor interval=10 timeout=600 \
op start interval=0 timeout=600 \
op stop interval=0 timeout=300 \
params SID=XXX InstanceNumber=XX
###This file defines the resources in the cluster together with the Virtual IP###
primitive rsc_SAPHana_HDB ocf:suse:SAPHana \
operations $id=rsc_SAPHana_HDB-operations \
op start interval=0 timeout=3600 \
op stop interval=0 timeout=3600 \
op promote interval=0 timeout=3600 \
op monitor interval=60 role=Master timeout=700 \
op monitor interval=61 role=Slave timeout=700 \
params SID=XXX InstanceNumber=XX PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=false
ms msl_SAPHana_HDB rsc_SAPHana_HDB \
meta is-managed=true notify=true clone-max=2 clone-node-max=1 target-role=Started interleave=true maintenance=false
clone cln_SAPHanaTopology_HDB rsc_SAPHanaTopology_HDB \
meta is-managed=true clone-node-max=1 target-role=Started interleave=true maintenance=false
colocation col_saphana_ip_HDB 2000: rsc_vip:Started msl_SAPHana_HDB:Master
location loc_saphana-01_stonith_not_on_saphana-01 res_ALIYUN_STONITH_1 -inf: saphana-01
#Stonith 1 should not run on primary node because it is controling primary node
location loc_saphana-02_stonith_not_on_saphana-02 res_ALIYUN_STONITH_2 -inf: saphana-02
order ord_SAPHana_HDB Optional: cln_SAPHanaTopology_HDB msl_SAPHana_HDB
property cib-bootstrap-options: \
have-watchdog=false \
cluster-infrastructure=corosync \
cluster-name=cluster \
stonith-enabled=true \
stonith-action=off \
stonith-timeout=150s
rsc_defaults rsc-options: \
migration-threshold=5000 \
resource-stickiness=1000
op_defaults op-options: \
timeout=600
用root用户运行如下命令,让SAP HANA资源被SUSE HAE接管起来。
crm configure load update HANA_HA_script.txt
11.3 验证集群状态
登录Hawk2 web控制台,访问地址 https://[ECS实例的IP地址]:7630。
方案一共享块存储HAE Cluster的Status和Dashboard如下:
也可以登录任意一个节点,使用crmsh检查当前集群状态。
crm_mon -r
Stack: corosync
Current DC: saphana-01 (version 1.1.16-4.8-77ea74d) - partition with quorum
Last updated: Wed Apr 24 11:48:38 2019
Last change: Wed Apr 24 11:48:35 2019 by root via crm_attribute on saphana-01
2 nodes configured
6 resources configured
Online: [ saphana-01 saphana-02 ]
Full list of resources:
rsc_sbd (stonith:external/sbd): Started saphana-01
rsc_vip (ocf::heartbeat:IPaddr2): Started saphana-01
Master/Slave Set: msl_SAPHana_HDB [rsc_SAPHana_HDB]
Masters: [ saphana-01 ]
Slaves: [ saphana-02 ]
Clone Set: cln_SAPHanaTopology_HDB [rsc_SAPHanaTopology_HDB]
Started: [ saphana-01 saphana-02 ]
方案二Fence agnet中HAE Cluster的Status和Dashboard如下:
也可以登录任意一个节点,使用crmsh检查当前集群状态。
crm_mon -r
Stack: corosync
Current DC: hana02 (version 2.0.1+20190417.13d370ca9-3.21.1-2.0.1+20190417.13d370ca9) - partition with quorum
Last updated: Sat Jan 29 13:14:47 2022
Last change: Sat Jan 29 13:13:44 2022 by root via crm_attribute on hana01
2 nodes configured
7 resources configured
Online: [ hana01 hana02 ]
Full list of resources:
res_ALIYUN_STONITH_1 (stonith:fence_aliyun): Started hana02
res_ALIYUN_STONITH_2 (stonith:fence_aliyun): Started hana01
rsc_vip (ocf::heartbeat:IPaddr2): Started hana01
Clone Set: msl_SAPHana_HDB [rsc_SAPHana_HDB] (promotable)
Masters: [ hana01 ]
Slaves: [ hana02 ]
Clone Set: cln_SAPHanaTopology_HDB [rsc_SAPHanaTopology_HDB]
Started: [ hana01 hana02 ]
12、相关参考
SUSE Linux Enterprise High Availability Extension SUSE Linux Enterprise High Availability Extension。
有关SAP系统高可用环境维护请参考 SAP系统高可用环境维护指南。