借助阿里云在亚洲加速迈向成功
一站式安全合规咨询服务
MLPS 2.0 一站式合规解决方案
依托我们的网络进军中国市场
提升面向互联网应用的性能和安全性
保障您的中国业务安全无忧
通过强大的数据安全框架保护您的数据资产
申请 ICP 备案的流程解读和咨询服务
面向大数据建设、管理及应用的全域解决方案
企业内大数据建设、管理和应用的一站式解决方案
将您的采购和销售置于同一企业级全渠道数字平台上
全渠道内置 AI 驱动、拟人化、多语言对话的聊天机器人
快速搭建在线教育平台
提供域名注册、分析和保护服务
云原生 Kubernetes 容器化应用运行环境
以 Kubernetes 为使用界面的容器服务产品,提供符合容器规范的算力资源
安全的镜像托管服务,支持全生命周期管理
多集群环境下微服务应用流量统一管理
提供任意基础设施上容器集群的统一管控,助您轻松管控分布式云场景
高弹性、高可靠的企业级无服务器 Kubernetes 容器产品
敏捷安全的 Serverless 容器运行服务
为虚拟机和容器提供高可靠性、高性能、低时延的块存储服务
一款海量、安全、低成本、高可靠的云存储服务
可靠、弹性、高性能、多共享的文件存储服务
全托管、可扩展的并行文件系统服务。
全托管的 NoSQL 结构化数据实时存储服务
可抵扣多种存储产品的容量包,兼具灵活性和长期成本优化
让您的应用跨不同可用区资源自动分配访问量
随时绑定和解绑 VPC ECS
云网络公网、跨域流量统一计费
高性价比,可抵扣按流量计费的流量费用
创建云上隔离的网络,在专有环境中运行资源
在 VPC 环境下构建公网流量的出入口
具备网络状态可视化、故障智能诊断能力的自助式网络运维服务。
安全便捷的云上服务专属连接
基于阿里云专有网络的私有 DNS 解析服务
保障在线业务不受大流量 DDoS 攻击影响
系统运维和安全审计管控平台
业务上云的第一个网络安全基础设施
集零信任内网访问、办公数据保护、终端管理等多功能于一体的办公安全管控平台
提供7X24小时安全运维平台
防御常见 Web 攻击,缓解 HTTP 泛洪攻击
实现全站 HTTPS,呈现可信的 WEB 访问
为云上应用提供符合行业标准和密码算法等级的数据加解密、签名验签和数据认证能力
一款发现、分类和保护敏感数据的安全服务
创建、控制和管理您的加密密钥
快速提高应用高可用能力服务
围绕应用和微服务的 PaaS 平台
兼容主流开源微服务生态的一站式平台
多集群环境下微服务应用流量统一管理
Super MySQL 和 PostgreSQL,高度兼容 Oracle 语法
全托管 MySQL、PostgreSQL、SQL Server、MariaDB
兼容 Redis® 的缓存和KV数据库
兼容Apache Cassandra、Apache HBase、Elasticsearch、OpenTSDB 等多种开源接口
文档型数据库,支持副本集和分片架构
100%兼容 Apache HBase 并深度扩展,稳定、易用、低成本的NoSQL数据库。
低成本、高可用、可弹性伸缩的在线时序数据库服务
专为搜索和分析而设计,成本效益达到开源的两倍,采用最新的企业级AI搜索和AI助手功能。
一款兼容PostgreSQL协议的实时交互式分析产品
一种快速、完全托管的 TB/PB 级数据仓库
基于 Flink 为大数据行业提供解决方案
基于Qwen和其他热门模型的一站式生成式AI平台,可构建了解您业务的智能应用程
一站式机器学习平台,满足数据挖掘分析需求
高性能向量检索服务,提供低代码API和高成本效益
帮助您的应用快速构建高质量的个性化推荐服务能力
提供定制化的高品质机器翻译服务
全面的AI计算平台,满足大模型训练等高性能AI计算的算力和性能需求
具备智能会话能力的会话机器人
基于机器学习的智能图像搜索产品
基于阿里云深度学习技术,为用户提供图像分割、视频分割、文字识别等离线SDK能力,支持Android、iOS不同的适用终端。
语音识别、语音合成服务以及自学习平台
一站式智能搜索业务开发平台
助力金融企业快速搭建超低时延、高质量、稳定的行情数据服务
帮助企业快速测算和分析企业的碳排放和产品碳足迹
企业工作流程自动化,全面提高效率
金融级云原生分布式架构的一站式高可用应用研发、运维平台
eKYC 数字远程在线解决方案
可智能检测、大数据驱动的综合性反洗钱 (AML) 解决方案
阿里云APM类监控产品
实时云监控服务,确保应用及服务器平稳运行
为系统运维人员管理云基础架构提供全方位服务的云上自动化运维平台
面向您的云资源的风险检测服务
提升分布式环境下的诊断效率
日志类数据一站式服务,无需开发就能部署
ECS 预留实例
让弹性计算产品的成本和灵活性达到最佳平衡的付费方式。云原生 AI 套件
加速AI平台构建,提高资源效率和交付速度FinOps
实时分析您的云消耗并实现节约SecOps
实施细粒度安全控制DevOps
快速、安全地最大限度提高您的DevOps优势自带IP上云
自带公网 IP 地址上云全球网络互联
端到端的软件定义网络解决方案,可推动跨国企业的业务发展全球应用加速
提升面向互联网应用的性能和安全性全球互联网接入
将IDC网关迁移到云端云原生 AI 套件
加速AI平台构建,提高资源效率和交付速度FinOps
实时分析您的云消耗并实现节约SecOps
实施细粒度安全控制DevOps
快速、安全地最大限度提高您的DevOps优势金融科技云数据库解决方案
利用专为金融科技而设的云原生数据库解决方案游戏行业云数据库解决方案
提供多种成熟架构,解决所有数据问题Oracle 数据库迁移
将 Oracle 数据库顺利迁移到云原生数据库数据库迁移
加速迁移您的数据到阿里云阿里云上的数据湖
实时存储、管理和分析各种规模和类型的数据数码信贷
利用大数据和 AI 降低信贷和黑灰产风险面向企业数据技术的大数据咨询服务
帮助企业实现数据现代化并规划其数字化未来人工智能对话服务
全渠道内置 AI 驱动、拟人化、多语言对话的聊天机器人EasyDispatch 现场服务管理
为现场服务调度提供实时AI决策支持在线教育
快速搭建在线教育平台窄带高清 (HD) 转码
带宽成本降低高达 30%广电级大型赛事直播
为全球观众实时直播大型赛事,视频播放流畅不卡顿直播电商
快速轻松地搭建一站式直播购物平台用于供应链规划的Alibaba Dchain
构建和管理敏捷、智能且经济高效的供应链云胸牌
针对赛事运营的创新型凭证数字服务数字门店中的云 POS 解决方案
将所有操作整合到一个云 POS 系统中元宇宙
元宇宙是下一代互联网人工智能 (AI) 加速
利用阿里云 GPU 技术,为 AI 驱动型业务以及 AI 模型训练和推理加速DevOps
快速、安全地最大限度提高您的DevOps优势数据迁移解决方案
加速迁移您的数据到阿里云企业 IT 治理
在阿里云上构建高效可控的云环境基于日志管理的AIOps
登录到带有智能化日志管理解决方案的 AIOps 环境备份与存档
数据备份、数据存档和灾难恢复用阿里云金融服务加快创新
在云端开展业务,提升客户满意度
为全球资本市场提供安全、准确和数字化的客户体验
利用专为金融科技而设的云原生数据库解决方案
利用大数据和 AI 降低信贷和黑灰产风险
建立快速、安全的全球外汇交易平台
新零售时代下,实现传统零售业转型
利用云服务处理流量波动问题,扩展业务运营、降低成本
快速轻松地搭建一站式直播购物平台
面向大数据建设、管理及应用的全域解决方案
全渠道内置 AI 驱动、拟人化、多语言对话的聊天机器人
以数字化媒体旅程为当今的媒体市场准备就绪您的内容
带宽成本降低高达 30%
快速轻松地搭建一站式直播购物平台
为全球观众实时直播大型赛事,视频播放流畅不卡顿
使用阿里云弹性高性能计算 E-HPC 将本地渲染农场连接到云端
构建发现服务,帮助客户找到最合适的内容
保护您的媒体存档安全
通过统一的数据驱动平台提供一致的全生命周期客户服务
在钉钉上打造一个多功能的电信和数字生活平台
在线存储、共享和管理照片与文件
提供全渠道的无缝客户体验
面向中小型企业,为独立软件供应商提供可靠的IT服务
打造最快途径,助力您的新云业务扬帆起航
先进的SD-WAN平台,可实现WAN连接、实时优化并降低WAN成本
通过自动化和流程标准化实现快速事件响应
针对关键网络安全威胁提供集中可见性并进行智能安全分析
提供大容量、可靠且高度安全的企业文件传输
用智能技术数字化体育赛事
基于人工智能的低成本体育广播服务
专业的广播转码及信号分配管理服务
基于云的音视频内容引入、编辑和分发服务
在虚拟场馆中模拟关键运营任务
针对赛事运营的创新型凭证数字服务
智能和交互式赛事指南
轻松管理云端背包单元的绑定直播流
通过数据加强您的营销工作
元宇宙是下一代互联网
利用生成式 AI 加速创新,创造新的业务佳绩
阿里云高性能开源大模型
借助AI轻松解锁和提炼文档中的知识
通过AI驱动的语音转文本服务获取洞察
探索阿里云人工智能和数据智能的所有功能、新优惠和最新产品
该体验中心提供广泛的用例和产品帮助文档,助您开始使用阿里云 AI 产品和浏览您的业务数据。
利用阿里云 GPU 技术,为 AI 驱动型业务以及 AI 模型训练和推理加速
元宇宙是下一代互联网
构建发现服务,帮助客户找到最合适的内容
全渠道内置 AI 驱动、拟人化、多语言对话的聊天机器人
加速迁移您的数据到阿里云
在阿里云上建立一个安全且易扩容的环境,助力高效率且高成本效益的上云旅程
迁移到完全托管的云数据库
将 Oracle 数据库顺利迁移到云原生数据库
自带公网 IP 地址上云
利用阿里云强大的安全工具集,保障业务安全、应用程序安全、数据安全、基础设施安全和帐户安全
保护、备份和还原您的云端数据资产
MLPS 2.0 一站式合规解决方案
快速高效地将您的业务扩展到中国,同时遵守适用的当地法规
实现对 CloudOps、DevOps、SecOps、AIOps 和 FinOps 的高效、安全和透明的管理
构建您的原生云环境并高效管理集群
快速、安全地最大限度提高您的DevOps优势
实施细粒度安全控制
提供运维效率和总体系统安全性
实时分析您的云消耗并实现节约
实时存储、管理和分析各种规模和类型的数据
登录到带有智能化日志管理解决方案的 AIOps 环境
帮助企业实现数据现代化并规划其数字化未来
帮助零售商快速规划数字化之旅
将全球知名的 CRM 平台引入中国
在线存储、共享和管理照片与文件
构建、部署和管理高可用、高可靠、高弹性的应用程序
快速、安全地最大限度提高您的DevOps优势
将您的采购和销售置于同一企业级全渠道数字平台上
企业内大数据建设、管理和应用的一站式解决方案
帮助企业简化 IT 架构、实现商业价值、加速数字化转型的步伐
快速高效地将您的业务扩展到中国,同时遵守适用的当地法规
快速搜集、处理、分析联网设备产生的数据
0.0.201
本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
版本 | 修订日期 | 变更说明 | 生效日期 |
版本 | 修订日期 | 变更说明 | 生效日期 |
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 |
本文档描述了如何在阿里云同可用区环境中,基于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。
本次部署的架构设计如下:
网络 | 位置 | 分配网段 | 交换机 | VPC |
网络 | 位置 | 分配网段 | 交换机 | 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 |
SAP应用SID:S4T
SAP HANA SID:S4T
应用与HANA的SID也可使用不同的SID。
主机名 | IP 地址 | 类型 | 实例编号 | 备注 |
主机名 | 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 | 安装在本地 |
高可用集群中的两个节点中的SAP以及HANA用户和组ID要保持一致。
用户ID:<sid>adm统一设置为2000,sapadm统一为2001。
组ID:sapsys统一设置为2000。
SAP应用的安装都需要创建SWAP空间,推荐在创建ECS实例的时候单独创建SSD/ESSD云盘作为SWAP盘,关于SWAP空间的推荐请参见 SAP Note:1597355 - Swap-space recommendation for Linux。
对于SAP应用的global文件系统推荐使用autofs的方式挂载。关于文件系统大小的sizing,请参照SAP官方安装配置文档或实施商的规划,本例仅供参考。
文件系统 | 类型 | LV | VG |
文件系统 | 类型 | 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 |
如果您还没有阿里云账号,您可以在阿里云官网或阿里云 App 上,使用手机号码注册阿里云账号和完成账号实名认证。并且,后续您还可以在阿里云 App 上,管理云资源、监控资源状态、进行身份验证、及上云栖社区咨询、了解云知识等。
专有网络VPC(Virtual Private Cloud)是基于阿里云构建的一个隔离的网络环境,专有网络之间逻辑上彻底隔离。专有网络是您自己的云上私有网络。您可以完全掌控自己的专有网络,例如选择IP地址范围、配置路由表和网关等。具体详细信息和文档请参考产品文档.按照规划创建VPC以及对应的业务网交换机和心跳网交换机。
云服务器Elastic Compute Service(ECS)是阿里云提供的一种基础云计算服务您可以通过云服务器管理控制台配置您的ECS资源。
关于阿里云认证的Netweaver相关信息请参见sap note: 1380654 - SAP support in public cloud environments.
在控制台选择创建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地址。
需要为高可用集群的每个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部署指南。
阿里云提供两个方案用于实现SAP系统高可用部署中的Fence的功能,推荐您选择云原生的《方案二:Fence_aliyun》。
共享块存储是一种支持多台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实例的名称没有中文字符。
高可用虚拟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的连通性:
阿里云文件存储(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文件存储。
SAP HANA的安装和配置请参见 SAP HANA Platform。
SAP HANA System Replication的配置请参见 How To Perform System Replication for SAP HANA。
SAP HANA HA的安装和配置请参见 SAP HANA同可用区高可用部署。
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
本示例中
/sapmnt与/usr/sap/trans文件系统采用NAS;
/usr/sap文件系统为本地xfs类型文件系统。
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
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
推荐/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个文件系统进行访问即可看到文件系统挂载情况
下面的配置过程都需要在参与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官方文档。
[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
第一个节点启动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的进程
在第一个节点再次启动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进程
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是否正确
登录第一个节点,启动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.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的方案,选择对应的配置脚本。
登录集群任意节点新建文本文件,将脚本中的”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
登录集群任意节点新建文本文件,拷贝示例中的脚本按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
PAS本身不参与HA的切换,安装在本地。启动SWPM安装,选择安装PAS到本地
# ./sapinst
windows跳转机浏览器中输入访问地址:
https://s4app1:4237/sapinst/docs/index.html
使用root用户以及密码登录(确保主机名解析和端口可访问)按照规划输入Instance number
不注册sld,后续可以注册
根据需求选择是否创建message server的ACL,本次部署不创建,后续可以创建
安装AAS在s4app2本地与安装PAS过程大致,过程略
PAS/AAS安装完成之后需要配置hdbuserstore以确保PAS与AAS连接的是HANA的高可用虚拟IP对应的虚拟主机名。
su - s4tadm
hdbuserstore set default VDBS4T:30015 SAPHANADB "pasword"
hdbuserstore list
关于高可用环境维护指南请参考SAP系统高可用环境维护指南。关于Suse HAE的日常管理任务及命令请参考Suse官方文档《Administration Guide》