阿里云首页 SAP 解决方案

SAP HANA同可用区高可用部署

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的sbd fence方案
2.优化了云产品的部署说明
2021/11/11

1、概述

本文档描述了如何在阿里云的同可用区内部署SAP HANA的高可用环境。

请注意,本文档无法代替SAP标准文档,文档中出现的安装部署方式仅供参考,建议在部署之前阅读SAP官方的安装配置文档以及其中建议的SAP Notes。

2、SAP HANA高可用架构

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

mc-01

3、安装前准备

3.1 SAP系统安装介质

访问方式 访问原理 备注
直接上传 通过公网直接上传到ECS
OSS + ossutil 上传到OSS再下载到ECS ossutil工具使用

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认证的实例规格如下:

实例规格 vCPU 内存(GiB) 架构
ecs.g5.8xlarge 32 128 Skylake
ecs.r5.8xlarge 32 256 Skylake
ecs.r6.13xlarge 52 384 Cascade Lake
ecs.r5.16xlarge 64 512 Skylake
ecs.se1.14xlarge 56 480 Broadwell
ecs.re6.13xlarge 52 768 Cascade Lake
ecs.re4.20xlarge 80 960 Broadwell
ecs.re6.26xlarge 104 1536 Cascade Lake
ecs.re4.40xlarge 160 1920 Broadwell
ecs.re6.52xlarge 208 3072 Cascade Lake
ecs.re4e.40xlarge 160 3840 Broadwell
ecs.ebmre6-6t.52xlarge 208 6144 Cascade Lake

查询阿里云所有SAP认证的HANA实例规格,请访问 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存储需求请参考 SAP HANA TDI-Storage Requirements

4.1.7 选择网络类型

单击 下一步:网络和安全组,完成网络和安全组设置:

1、选择网络类型
专有网络,选择专有网络和交换机。按创建并选择专有网络和业务网段交换机。

2、设置公网带宽
按需选择合适的公网带宽。

4.1.8 选择安全组

选择安全组。如果您自己没有创建安全组,需要手工创建安全组用于管理ECS出和入的网络访问策略。默认创建安全组的规则,请参见默认安全组规则

4.1.9 网卡配置

Tips:先不增加第二张弹性网卡,ECS创建成功之后再添加第二张网卡。

4.1.10 设置部署集

在指定部署集中创建 ECS 实例时,会和处于同一部署集中的其他 ECS 实例严格按物理服务器打散,保障在硬件故障等异常情况下的服务高可用性。

关于部署集的更多说明,请参考 部署集概述

在本示例中,高可用架构的两台SAP HANA实例将被放入部署集“S4HANA_HA”中,SAP的ASCS/SCS的高可用部署也建议使用这种方式来管理ECS。

选择一个已经创建好的部署集,如果还没有部署集,可以访问控制台->云服务器ECS->部署与弹性->部署集进行创建。

部署集创建完成后,返回刚才的页面,选择这个部署集,完成系统配置、分组设置。

4.2 创建SAP HANA备节点实例

参考上述步骤按需求和规划创建SAP HANA备节点ECS实例。

Tips: SAP HANA主备节点的ECS实例需要放在一个部署集中。

5、部署云资源

5.1 配置弹性网卡

弹性网卡(ENI)是一种可以附加到专有网络VPC类型ECS实例上的虚拟网卡,通过弹性网卡,您可以实现高可用集群搭建、低成本故障转移和精细化的网络管理。所有地域均支持弹性网卡。具体说明请参见 弹性网卡

创建弹性网卡

本示例,按规划每台ECS各创建一块额外的ENI,用于心跳网卡。

[1] 登录控制台->云服务器ECS->网络和安全->弹性网卡。确认跟ECS是同地域,点击“创建弹性网卡”。

[2] 按规划选择对应的VPC网络、交换机等参数。ENI创建完成后,绑定对应的ECS实例。

[3] 登录操作系统配置网卡

登录SUSE图形窗口进入网络配置或者通过终端运行yast2 network,按规划配置新建的ENI网卡的静态IP地址和子网掩码,并确保网卡处于激活状态。可以通过以下命令来查询网卡的配置和状态:

  1. ip addr sh

Tips:如果需要修改修改主网卡内网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地址。

5.2.2 关联SAP HANA主、备节点

进入已创建的高可用虚拟IP实例的管理界面,分别绑定集群中的两台ECS实例。

绑定后两台ECS实例的状态均为“备”,后面我们通过SUSE HAE的集群软件来实现被管理资源的主备角色的管理,这里就才会显示资源的正常关系。

5.3 配置SBD fence

阿里云提供两个方案用于实现SAP系统高可用部署中的SBD fence的功能。推荐您优先使用《方案一:共享块存储》,如果您选择的地域没有共享块存储产品,请选择方案《方案二:fence_aliyun》。

5.3.1 方案一:共享块存储

共享块存储是一种支持多台ECS实例并发读写访问的数据块级存储设备,具备多并发、高性能、高可靠等特性,单块共享块存储最多支持同时挂载到16台ECS实例挂载共享块存储的操作。
共享块存储作为高可用集群的SBD设备,选择与ECS同地域可用区,并挂载在高可用集群中的ECS实例中。

[1] 创建共享块存储

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

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

[2] 配置共享块存储

登录操作系统,查看磁盘信息

  1. lsblk
  2. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
  3. vda 253:0 0 100G 0 disk
  4. └─vda1 253:1 0 100G 0 part /
  5. vdb 253:16 0 500G 0 disk
  6. vdc 253:32 0 500G 0 disk
  7. vdd 253:48 0 500G 0 disk
  8. vde 253:64 0 64G 0 disk
  9. vdf 253:80 0 20G 0 disk

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

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

  1. echo "modprobe softdog" > /etc/init.d/boot.local
  2. echo "softdog" > /etc/modules-load.d/watchdog.conf
  3. modprobe softdog
  4. # watchdog配置检查
  5. ls -l /dev/watchdog
  6. crw------- 1 root root 10, 130 Apr 23 12:09 /dev/watchdog
  7. lsmod | grep -e wdt -e dog
  8. softdog 16384 0
  9. grep -e wdt -e dog /etc/modules-load.d/watchdog.conf
  10. softdog

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

  1. sbd -d /dev/vdf -4 60 -1 30 create
  2. # 配置SBD参数
  3. vim /etc/sysconfig/sbd
  4. # 修改以下参数,将SBD_DEVICE的值替换成共享块存储的设备标识
  5. SBD_DEVICE="/dev/vdf"
  6. SBD_STARTMODE="clean"
  7. SBD_OPTS="-W"

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

  1. sbd -d /dev/vdf list

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

  1. sbd -d /dev/vdf list
  2. 0 saphana-01 clear
  3. 1 saphana-02 clear

验证SBD配置

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

本示例,登录主节点saphana01

  1. sbd -d /dev/vdf message saphana-02 reset

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

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

  1. sbd -d /dev/vdf list
  2. 0 saphana-01 clear
  3. 1 saphana-02 reset saphana-01
  4. sbd -d /dev/vdf message saphana-02 clear
  5. sbd -d /dev/vdf list
  6. 0 saphana-01 clear
  7. 1 saphana-02 clear saphana-01

5.3.2 方案二:fence_aliyun

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] 环境准备

python和pip安装和检查

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

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

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

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

  1. # 安装python3.6
  2. wget https://www.python.org/ftp/python/3.6.15/Python-3.6.15.tgz
  3. tar -xf Python-3.6.15.tgz
  4. ./configure
  5. make && make install
  6. # 安装验证
  7. python3 -V
  8. # 安装pip
  9. curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
  10. python get-pip.py
  11. # 安装验证
  12. pip -V

[2] 安装aliyun SDK

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

  1. python3 -m pip install --upgrade pip
  2. pip3 install --upgrade aliyun-python-sdk-core
  3. pip3 install --upgrade aliyun-python-sdk-ecs
  4. # 安装依赖包
  5. pip3 install pycurl pexpect
  6. zypper install libcurl-devel
  7. # 安装验证
  8. pip list | grep aliyun-python
  9. aliyun-python-sdk-core 2.13.35
  10. aliyun-python-sdk-ecs 4.24.8

[3] 配置RAM Role

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

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

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

  1. {
  2. "Version": "1",
  3. "Statement": [
  4. {
  5. "Effect": "Allow",
  6. "Action": [
  7. "ecs:StartInstance",
  8. "ecs:StopInstance",
  9. "ecs:RebootInstance",
  10. "ecs:DescribeInstances"
  11. ],
  12. "Resource": [
  13. "acs:ecs:*:*:instance/*"
  14. ]
  15. }
  16. ]
  17. }

将权限策略授权给角色

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

RAM Role授权给ECS实例

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

[4] fence_aliyun安装和配置

下载最新版fence_aliyun

  1. curl https://raw.githubusercontent.com/ClusterLabs/fence-agents/master/agents/aliyun/fence_aliyun.py > /usr/sbin/fence_aliyun
  2. # 配置权限
  3. chmod 755 /usr/sbin/fence_aliyun
  4. chown root:root /usr/sbin/fence_aliyun

适配用户环境

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

验证安装

  1. # 语法示例:
  2. # fence_aliyun --[region ID] --ram-role [RAM role] --action status --plug '[ECS实例ID]'
  3. # 示例如下:
  4. fence_aliyun --region cn-beijing --ram-role AliyunECSAccessingHBRRole --action status --plug 'i-xxxxxxxxxxxxxxxxxxxx'
  5. # 配置正常会返回此实例的状态,示例如下:
  6. Status: ON

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

6、操作系统配置

6.1 维护主机名

分别在高可用集群的两台SAP HANA ECS实例上,配置两台 HANA 服务器之间的主机名称解析。
本示例的 /etc/hosts 文件内容如下:

  1. 127.0.0.1 localhost
  2. #业务网
  3. 192.168.10.168 saphana-01 saphana-01
  4. 192.168.10.169 saphana-02 saphana-02
  5. #心跳网
  6. 192.168.20.19 hana-ha01 hana-ha01
  7. 192.168.20.20 hana-ha02 hana-ha02

6.2 ECS SSH互信配置

高可用集群的两台SAP HANA ECS实例需要配置 SSH互信,配置示例如下。

6.2.1 配置认证公钥

在SAP HANA主节点执行如下命令:

  1. ssh-keygen -t rsa
  2. ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.169

在SAP HANA备节点上执行如下命令:

  1. ssh-keygen -t rsa
  2. ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.168

6.2.2 验证配置结果

分别在两个节点上,使用 SSH 登录另外一个节点,如果不需要密码登录,则说明互信已经建立。

6.3 关闭DHCP自动设置主机名

分别在主备节点ECS上执行以下命令:

  1. # sed -i '/DHCLIENT_SET_HOSTNAME/ c\DHCLIENT_SET_HOSTNAME="no"' /etc/sysconfig/network/dhcp

6.4 关闭/etc/hosts自动更新主机名

  1. # sed -i "s/^ - update_etc_hosts/#- update_etc_hosts/" /etc/cloud/cloud.cfg

6.5 设置时钟源为tsc

不正确的时钟源设置可能会使SAP HANA出现潜在的性能问题,详情请参考 HANA Alert “Alert Timer fallback”

[1] 先确认当前时间源配置

  1. cat /sys/devices/system/clocksource/clocksource0/current_clocksource
  2. kvm-clock

[2] 查询可用的时钟源

  1. cat /sys/devices/system/clocksource/clocksource0/available_clocksource
  2. kvm-clock tsc acpi_pm

[3] 将时钟源设置为tsc

  1. sudo bash -c 'echo tsc > /sys/devices/system/clocksource/clocksource0/current_clocksource'

设置成功的话,内核消息里会显示以下信息

  1. dmesg | less
  2. clocksource: Switched to clocksource tsc

[4] 设置系统启动时的时钟源为tsc

备份并编辑 /etc/default/grub,为GRUB_CMDLINE_LINUX 选项添加 clocksource=tsc tsc=reliable

  1. GRUB_CMDLINE_LINUX=" net.ifnames=0 console=tty0 console=ttyS0,115200n8 clocksource=tsc tsc=reliable"
  2. 生成grub.cfg文件
  3. 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
  1. pvcreate /dev/vdb /dev/vdc /dev/vdd /dev/vde /dev/vdf /dev/vdg
  2. vgcreate datavg /dev/vdb /dev/vdc /dev/vdd
  3. vgcreate logvg /dev/vde
  4. vgcreate sharedvg /dev/vdf
  5. vgcreate sapvg /dev/vdg
  • 创建LV
  1. '将datavg的三块300G的SSD云盘制作条带化'
  2. lvcreate -l 100%FREE -n datalv -i 3 -I 256 datavg
  3. lvcreate -l 100%FREE -n loglv logvg
  4. lvcreate -l 100%FREE -n sharedlv sharedvg
  5. lvcreate -l 100%FREE -n usrsaplv sapvg
  • 创建挂载点并格式化文件系统
  1. mkdir -p /usr/sap /hana/data /hana/log /hana/shared
  2. mkfs.xfs /dev/sapvg/usrsaplv
  3. mkfs.xfs /dev/datavg/datalv
  4. mkfs.xfs /dev/logvg/loglv
  5. mkfs.xfs /dev/sharedvg/sharedlv
  • 挂载文件系统并加到开机自启动项
  1. vim /etc/fstab
  2. # 添加下列项:
  3. /dev/mapper/datavg-datalv /hana/data xfs defaults 0 0
  4. /dev/mapper/logvg-loglv /hana/log xfs defaults 0 0
  5. /dev/mapper/sharedvg-sharedlv /hana/shared xfs defaults 0 0
  6. /dev/mapper/sapvg-usrsaplv /usr/sap xfs defaults 0 0
  7. # 挂载文件系统
  8. mount -a

9、SAP HANA的安装和配置

9.1 安装SAP HANA

Note: 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

请确保已经正确安装了以下组件:

  1. # SLES 12 for SAP版本的组件
  2. zypper in patterns-sle-gnome-basic
  3. zypper in patterns-sles-sap_server
  4. zypper in patterns-ha-ha_sles
  5. zypper in sap_suse_cluster_connector
  6. zypper in saptune fence-agents
  7. # SLES 15 for SAP版本的组件
  8. zypper in patterns-server-enterprise-sap_server
  9. zypper in patterns-ha-ha_sles
  10. zypper in patterns-gnome-gnome_basic
  11. zypper in sap-suse-cluster-connector corosync-qdevice
  12. zypper in saptune fence-agents

10.2 配置集群

在SAP HANA实例上通过VNC图形界面配置Corosync

  1. # 进入集群配置
  2. yast2 cluster

[1] 配置communication channel

  • Channel选择心跳网段,Redundant Channel选择业务网段
  • 按正确的顺序依次添加Member address(前心跳地址,后业务地址)
  • Excepted Votes: 2
  • Transport: Unicast

coro_01

[2] 配置Security

勾选”Enable Security Auth”,并点击 Generate Auth Key Filecoro_02

[3] 配置Csync2

  • 添加Sync host
  • 点击Add Suggested Files
  • 点击Generate Pre-Shared-Keys
  • 点击Turn csync2 ONcoro_03

Configure conntrackd这一步使用默认,直接下一步coro_04

[4] 配置Service

  • 确认Cluster服务不要设成开机自启动

coro_05

配置完成后保存退出,将Corosync配置文件复制到SAP HANA的备节点。

  1. # scp -pr /etc/corosync/authkey /etc/corosync/corosync.conf root@saphana-02:/etc/corosync/

[5] 启动集群
在两个节点里执行如下命令:

  1. # systemctl start pacemaker

[6] 查看集群状态

现在两个node都已经online了,被管理的资源后面做配置

  1. crm_mon -r
  2. Stack: corosync
  3. Current DC: saphana-02 (version 1.1.16-4.8-77ea74d) - partition with quorum
  4. Last updated: Tue Apr 23 11:22:38 2019
  5. Last change: Tue Apr 23 11:22:36 2019 by hacluster via crmd on saphana-02
  6. 2 nodes configured
  7. 0 resources configured
  8. Online: [ saphana-01 saphana-02 ]
  9. No resources

[7] 启动WEB网页图形化配置

(1)激活两台ECS的Hawk2服务

  1. # 设置hacluster用户的密码
  2. passwd hacluster
  3. # 重启服务,使设置生效
  4. systemctl restart hawk

(2)访问Hawk2

打开浏览器访问hawk的WEB控制台

  1. https://[ECS实例IP地址]:7630

输入用户名 hacluster和密码登录。

11、SAP HANA与SUSE HAE集成

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

11.1 方案一:共享块存储实现SBD fence功能

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

本示例中,SID:H01,InstanceNumber:00,params ip:192.168.10.12,脚本文件名HANA_HA_script.txt

  1. ###SAP HANA Topology is a resource agent that monitors and analyze the HANA landscape and communicate the status between two nodes##
  2. primitive rsc_SAPHanaTopology_HDB ocf:suse:SAPHanaTopology \
  3. operations $id=rsc_SAPHanaTopology_HDB-operations \
  4. op monitor interval=10 timeout=600 \
  5. op start interval=0 timeout=600 \
  6. op stop interval=0 timeout=300 \
  7. params SID=H01 InstanceNumber=00
  8. ###This file defines the resources in the cluster together with the Virtual IP###
  9. primitive rsc_SAPHana_HDB ocf:suse:SAPHana \
  10. operations $id=rsc_SAPHana_HDB-operations \
  11. op start interval=0 timeout=3600 \
  12. op stop interval=0 timeout=3600 \
  13. op promote interval=0 timeout=3600 \
  14. op monitor interval=60 role=Master timeout=700 \
  15. op monitor interval=61 role=Slave timeout=700 \
  16. params SID=H01 InstanceNumber=00 PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=false
  17. #This is for sbd setting##
  18. primitive rsc_sbd stonith:external/sbd \
  19. op monitor interval=20 timeout=15 \
  20. meta target-role=Started maintenance=false
  21. #This is for VIP resource setting##
  22. primitive rsc_vip IPaddr2 \
  23. operations $id=rsc_vip-operations \
  24. op monitor interval=10s timeout=20s \
  25. params ip=192.168.10.12
  26. ms msl_SAPHana_HDB rsc_SAPHana_HDB \
  27. meta is-managed=true notify=true clone-max=2 clone-node-max=1 target-role=Started interleave=true maintenance=false
  28. clone cln_SAPHanaTopology_HDB rsc_SAPHanaTopology_HDB \
  29. meta is-managed=true clone-node-max=1 target-role=Started interleave=true maintenance=false
  30. colocation col_saphana_ip_HDB 2000: rsc_vip:Started msl_SAPHana_HDB:Master
  31. order ord_SAPHana_HDB Optional: cln_SAPHanaTopology_HDB msl_SAPHana_HDB
  32. property cib-bootstrap-options: \
  33. have-watchdog=true \
  34. cluster-infrastructure=corosync \
  35. cluster-name=cluster \
  36. no-quorum-policy=ignore \
  37. stonith-enabled=true \
  38. stonith-action=reboot \
  39. stonith-timeout=150s
  40. rsc_defaults rsc-options: \
  41. migration-threshold=5000 \
  42. resource-stickiness=1000
  43. op_defaults op-options: \
  44. timeout=600 \
  45. record-pending=true

11.2 方案二:Fence agent实现SBD fence功能

登录集群任意节点新建文本文件,拷贝示例中的脚本按SAP HANA的实际部署的情况,修改如下参数:

  • 将脚本中的”SID、InstanceNumber、和params ip” 三个参数值替换成实际部署的SAP系统的值。
  • 将res_ALIYUN_STONITH_1和res_ALIYUN_STONITH_2资源中的plug替换成SAP HANA集群的两台ECS的实例ID。
  • 替换region的值成ECS实例所在的地域ID。
  • 将 “location loc_hana-master_stonith_not_on_hana-master res_ALIYUN_STONITH_1 -inf: hana-master” 中的hana-master替换成SAP HANA主节点的主机名。
  • 将”location loc_hana-slave_stonith_not_on_hana-slave res_ALIYUN_STONITH_2 -inf: hana-slave” 中的hana-slave替换成SAP HANA备节点的主机名。

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

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

  1. primitive res_ALIYUN_STONITH_1 stonith:fence_aliyun \
  2. op monitor interval=120 timeout=60 \
  3. params plug=i-2ze60p1wozqnadr2ju9t ram_role=AliyunECSAccessingHBRRole region=cn-beijing \
  4. meta target-role=Started
  5. primitive res_ALIYUN_STONITH_2 stonith:fence_aliyun \
  6. op monitor interval=120 timeout=60 \
  7. params plug=i-2zef3xjwn0izikyebbke ram_role=AliyunECSAccessingHBRRole region=cn-beijing \
  8. meta target-role=Started
  9. # havip resources
  10. primitive rsc_vip IPaddr2 \
  11. operations $id=rsc_vip-operations \
  12. op monitor interval=10s timeout=20s \
  13. params ip=192.168.10.12
  14. # SAP HANA Topology is a resource agent that monitors and analyze the HANA landscape and communicate the status between two nodes
  15. primitive rsc_SAPHanaTopology_HDB ocf:suse:SAPHanaTopology \
  16. operations $id=rsc_SAPHanaTopology_HDB-operations \
  17. op monitor interval=10 timeout=600 \
  18. op start interval=0 timeout=600 \
  19. op stop interval=0 timeout=300 \
  20. params SID=H01 InstanceNumber=00
  21. # This file defines the resources in the cluster together with the Virtual IP
  22. primitive rsc_SAPHana_HDB ocf:suse:SAPHana \
  23. operations $id=rsc_SAPHana_HDB-operations \
  24. op start interval=0 timeout=3600 \
  25. op stop interval=0 timeout=3600 \
  26. op promote interval=0 timeout=3600 \
  27. op monitor interval=60 role=Master timeout=700 \
  28. op monitor interval=61 role=Slave timeout=700 \
  29. params SID=H01 InstanceNumber=00 PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=false
  30. ms msl_SAPHana_HDB rsc_SAPHana_HDB \
  31. meta is-managed=true notify=true clone-max=2 clone-node-max=1 target-role=Started interleave=true maintenance=false
  32. clone cln_SAPHanaTopology_HDB rsc_SAPHanaTopology_HDB \
  33. meta is-managed=true clone-node-max=1 target-role=Started interleave=true maintenance=false
  34. colocation col_saphana_ip_HDB 2000: rsc_vip:Started msl_SAPHana_HDB:Master
  35. location loc_hana-master_stonith_not_on_hana-master res_ALIYUN_STONITH_1 -inf: hana-master
  36. #Stonith 1 should not run on primary node because it is controling primary node
  37. location loc_hana-slave_stonith_not_on_hana-slave res_ALIYUN_STONITH_2 -inf: hana-slave
  38. order ord_SAPHana_HDB Optional: cln_SAPHanaTopology_HDB msl_SAPHana_HDB
  39. property cib-bootstrap-options: \
  40. have-watchdog=false \
  41. cluster-infrastructure=corosync \
  42. cluster-name=cluster \
  43. stonith-enabled=true \
  44. stonith-action=off \
  45. stonith-timeout=150s
  46. rsc_defaults rsc-options: \
  47. migration-threshold=5000 \
  48. resource-stickiness=1000
  49. op_defaults op-options: \
  50. timeout=600

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

  1. crm configure load update HANA_HA_script.txt

11.3 验证集群状态

登录Hawk2 web控制台,访问地址 https://[ECS实例的IP地址]:7630

查看Cluster的Status和Dashboard

hanasr_05

hanasr_06

也可以登录任意一个节点,使用crmsh检查当前集群状态

  1. crm_mon -r
  2. Stack: corosync
  3. Current DC: saphana-01 (version 1.1.16-4.8-77ea74d) - partition with quorum
  4. Last updated: Wed Apr 24 11:48:38 2019
  5. Last change: Wed Apr 24 11:48:35 2019 by root via crm_attribute on saphana-01
  6. 2 nodes configured
  7. 6 resources configured
  8. Online: [ saphana-01 saphana-02 ]
  9. Full list of resources:
  10. rsc_sbd (stonith:external/sbd): Started saphana-01
  11. rsc_vip (ocf::heartbeat:IPaddr2): Started saphana-01
  12. Master/Slave Set: msl_SAPHana_HDB [rsc_SAPHana_HDB]
  13. Masters: [ saphana-01 ]
  14. Slaves: [ saphana-02 ]
  15. Clone Set: cln_SAPHanaTopology_HDB [rsc_SAPHanaTopology_HDB]
  16. Started: [ saphana-01 saphana-02 ]

12、相关参考

首页 SAP 解决方案 SAP 最佳实践 SAP HANA同可用区高可用部署