配置SAP NetWeaver的HA功能(分布式高可用部署)
操作场景
为保护SAP NetWeaver免受单点故障的影响,提高SAP NetWeaver的可用性,需要为ASCS主备节点配置HA机制,此操作只有在分布式HA部署场景下才需要执行。
在跨AZ HA场景中,需要规划三台云服务器,并将磁盘配置iSCSI实现共享存储用作SBD。详情请参考配置iSCSI(跨AZ部署HA)。
前提条件
- ASCS主备节点之间已建立互信。
- 已关闭操作系统防火墙。操作方法请参考修改操作系统配置。
- 为保证ASCS主备节点内部通信正常,在安装完SAP NetWeaver实例后需要修改hosts文件,增加虚拟IP与虚拟主机的映射关系。
- 登录ASCS主备节点,执行以下命令,修改“/etc/hosts”文件。
vi /etc/hosts
- 将虚拟主机名对应的主机IP改为虚拟IP。
10.0.3.52 netweaver-0001 10.0.3.196 netweaver-0002 10.0.3.220 ascsha 10.0.3.2 ersha
ascsha为ASCS主节点虚拟主机名,ersha为ASCS备节点虚拟主机名,虚拟机主机名可自定义。
- 登录ASCS主备节点,执行以下命令,修改“/etc/hosts”文件。
- 检查ASCS主备节点是否存在“/var/log/cluster”目录,不存在则创建这个目录。
- 在ASCS主备节点上更新SAP resource agents。
- 执行以下命令,检查是否已安装resource-agents补丁包。
sudo grep 'parameter name="IS_ERS"' /usr/lib/ocf/resource.d/heartbeat/SAPInstance
- 输出如下,表示已安装补丁包,结束操作。
- 未输出以下结果,则需要安装补丁包,执行2。
<parameter name="IS_ERS" unique="0" required="0">
- 执行以下命令,安装resource-agents补丁包。
sudo zypper in -t patch SUSE-SLE-HA-12-SP1-2017-885=1
镜像为SLES 12 SP2时需执行以下命令:
sudo zypper in -t patch SUSE-SLE-HA-12-SP2-2018-1923=1
镜像为SLES 12 SP3时需执行以下命令:
sudo zypper in -t patch SUSE-SLE-HA-12-SP3-2018-1922=1
- 执行以下命令,检查是否已安装resource-agents补丁包。
- 在ASCS主备节点上更新sap_suse_cluster_connector。
- 确保已安装了依赖包patterns-ha-ha_sles和sap-suse-cluster-connector。
rpm -qa | grep patterns-ha-ha_sles
rpm -qa | grep sap-suse-cluster-connector
如未安装,请执行以下命令安装。
zypper in -y patterns-ha-ha_sles
zypper in -y sap-suse-cluster-connector
操作步骤
- 登录ASCS实例节点,获取ha_auto_script.zip压缩包,解压到任意目录。
- 获取ha_auto_script.zip压缩包
中国-香港:wget https://obs-sap-ap-southeast-1.obs.ap-southeast-1.myhuaweicloud.com/ha_auto_script/ha_auto_script.zip -P /sapmnt
亚太-曼谷:wget https://obs-sap-ap-southeast-2.obs.ap-southeast-2.myhuaweicloud.com/ha_auto_script/ha_auto_script.zip -P /sapmnt
南非-约翰内斯堡:wget https://obs-sap-af-south-1.obs.af-south-1.myhuaweicloud.com/ha_auto_script/ha_auto_script.zip -P /sapmnt
- 解压文件
cd /sapmnt
unzip ha_auto_script.zip
- 获取ha_auto_script.zip压缩包
- 根据客户实际情况配置ascs_ha.cfg文件中的参数。各参数含义如表1所示。
表1 ascs_ha.cfg配置文件参数含义 参数类型
参数名称
参数解释
masterNode
masterName
ASCS实例节点的主机名
masterHeartbeatIP1
ASCS实例节点心跳平面IP1
masterHeartbeatIP2
ASCS实例节点业务平面IP
slaveNode
slaveName
ERS实例节点的主机名
slaveHeartbeatIP1
ERS实例节点心跳平面IP1
slaveHeartbeatIP2
ERS实例节点业务平面IP
ASCSInstance
ASCSFloatIP
ASCS实例的业务IP
ASCSInstanceDir
ASCS实例的目录
ASCSDevice
ASCS实例目录所使用的磁盘分区
ASCSProfile
ASCS实例的profile文件
ERSInstance
说明:ERSInstanceDir、ERSDevice和ERSProfile参数信息需要登录ERS实例节点获取。
ERSFloatIP
ERS实例的业务IP
ERSInstanceDir
ERS实例的目录
ERSDevice
ERS实例目录所使用的磁盘分区
ERSProfile
ERS实例的profile文件
trunkInfo
SBDDevice
SBD使用独立磁盘,最多支持3个,使用英文逗号分隔,如/dev/sda, /dev/sdb, /dev/sdc
- 执行脚本进行HA自动部署。
sh ascs_auto_ha.sh
- 执行crm status命令,查看资源状态。
HA功能配置完成后,HAE会管理资源,请不要使用其他方式启动或停止资源。如果需要手动执行一些测试或者修改操作,请先将集群进入维护模式。
crm configure property maintenance-mode=true
修改完成后再退出维护模式。
crm configure property maintenance-mode=false
如果需要对节点进行关机或者重启等操作,请先手动关闭集群服务。
systemctl stop pacemaker
虚拟机启动或者重启完成后,需要手动执行以下命令来启动集群服务。
systemctl start pacemaker