SAP HANA Scale-Out 部署指南
HANA安装
版本管理
版本 | 修订日期 | 变更类型 | 生效日期 |
1.0 | 2018/5/14 | ||
1.1 | 2018/5/31 | 1.增加Metrics Collector的安装 2.部分页面样式调整 | 2018/6/1 |
1.2 | 2019/7/4 | 1.优化NAS参数 | 2019/7/4 |
1.3 | 2019/7/30 | 1.更新部分链接 | 2019/7/30 |
1.4 | 2022/1/18 | 1.修改了HANA内部服务通讯的配置说明 | 2022/1/18 |
概述
本文档描述了如何在阿里云环境中,SAP HANA Scale-Out安装部署。本次部署架构基于Non-shared的3+0架构,使用ECS故障自动恢复功能,满足故障节点自动恢复的需要,因此不需要额外购买和维护SAP HANA实例的standby节点。
本文档无法代替SAP标准文档,文档中出现的安装部署方式仅供参考,建议在部署之前阅读SAP官方的安装配置文档以及其中建议的SAP Notes。
架构总览
资源规划
网络规划
用途 | 位置 | 分配网段 | 交换机 | VPC |
业务网 | 华北2可用区F | 192.168.10.0/24 | sap_business | SAP_Network |
SAP及主机规划
SAP HANA SID:BWS
主机名 | IP 地址 | 类型 | 实例编号 | SID | 备注 |
hana01 | 192.168.10.4 | Master | 00 | BWS | 安装在本地 |
hana02 | 192.168.10.5 | Worker | 00 | BWS | 安装在本地 |
hana03 | 192.168.10.6 | Worker | 00 | BWS | 安装在本地 |
用户及组规划
SAP HANA集群中的各个节点中的SAP HANA用户和组ID要保持一致。
用户:本示例[sid]adm ID统一设置为2000。
组:本示例sapsys ID统一设置为2000。
SWAP规划
SAP应用及HANA的安装都需要创建SWAP空间,推荐在创建ECS实例的时候单独创建SSD云盘作为SWAP盘,关于SWAP空间的推荐请参见SAP Note 1597355 - Swap-space recommendation for Linux[需要SAP Service账号访问]。
文件系统规划
对于global文件系统,推荐使用autofs的方式挂载。关于HANA文件系统sizing,请参照SAP官方文档,本示例选用的ECS机型内存128G,以下文件系统划分仅供参考。
文件系统 | 类型 | LV | VG | 大小 | 云盘类型 |
/hana/data | xfs | datalv | hanavg | 384G | SSD云盘 |
/hana/log | xfs | loglv | hanavg | 64G | SSD云盘 |
/hana/shared | NAS | N/A | N/A | 128G | SSD云盘 |
前期准备
阿里云账号
如果您还没有阿里云账号,您可以在阿里云官网或阿里云 App 上,使用手机号码注册阿里云账号和完成账号实名认证。并且,后续您还可以在阿里云 App 上,管理云资源、监控资源状态、进行身份验证、及上云栖社区咨询、了解云知识等。
VPC
专有网络VPC(Virtual Private Cloud)是基于阿里云构建的一个隔离的网络环境,专有网络之间逻辑上彻底隔离。专有网络是您自己独有的云上私有网络。您可以完全掌控自己的专有网络,例如选择IP地址范围、配置路由表和网关等。具体详细信息和文档请参考产品文档。
按照规划创建VPC和交换机。
ECS实例
云服务器Elastic Compute Service(ECS)是阿里云提供的一种基础云计算服务您可以通过云服务器管理控制台 配置您的ECS资源。关于阿里云认证的SAP Netweaver和SAP HANA相关信息请参考sap note: 1380654 - SAP support in public cloud environments。
创建ECS实例
在控制台选择创建ECS实例,选择付费方式和可用区。
选择专有网络和安全组,需要填写之前创建或者已有的 VPC 和安全组信息,关于安全组的设置和信息请参考安全组使用FAQ 。
本示例中的安全组策略如下:
协议类型 | 端口范围 | 使用场景 |
ICMP | -1/-1 | 允许ICMP协议 |
SSH | 22/22 | Linux SSH远程访问 |
TELNET | 23/23 | Telnet默认端口 |
HTTPS | 443/443 | 基于HTTPS的Web访问 |
SAP HANA | 30015-39915 | SAP HANA |
VNC | 5801-5904 | VNC viewer的访问 |
按照前面的规划,创建或修改磁盘的数据和大小,关于云盘的相关产品文档和性能请参见块存储性能。
本示例中, /hana/data 使用三块同等容量的SSD或ESSD云盘用LVM做条带化以满足HANA的性能要求,/hana/log,/hana/shared 使用单块SSD或ESSD云盘,文件系统均为XFS。
检查所有的选项后创建ECS实例,根据本次部署的规划共创建3台ECS实例。
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的部署指南。
文件存储NAS
阿里云文件存储(Network Attached Storage,简称 NAS)是面向阿里云 ECS 实例、E-HPC 和 Docker 等计算节点的文件存储服务,提供标准的文件访问协议,用户无需对现有应用做任何修改,即可使用具备无限容量及性能扩展、单一命名空间、多共享、高可靠和高可用等特性的分布式文件系统。详细产品信息请参见阿里云上部署SAP推荐Global文件系统采用文件存储NAS。
1.创建NAS
选择地域和类型。本次部署采用SSD性能型,关于NAS的性能请参考存储类型介绍 。
控制台->存储->文件存储NAS,创建文件系统,选择区域、存储类型、容量和可用区,选中“创建新文件系统并绑定存储包”。
完成支付后,返回控制台刷新即可看到刚才新建的NAS文件系统。
2.记录NAS地址
根据规划为/hana/shared 创建1个NAS文件系统,并记录挂载地址。
ECS宕机迁移
宕机迁移是其中一种用于提升 ECS 实例可用性,降低物理故障对用户服务影响的功能。
当您的 ECS 实例所宿的物理机由于底层性能出现异常,或者其他原因导致物理机宕机时,宕机迁移功能通过技术检测确认机器无法恢复之后,会立刻发送短信通知 ECS 实例拥有者。
迁移完成后,阿里云会再次发送迁移完成的短信,且 ECS 实例的元数据,例如,实例 ID、私网 IP 地址、公网 IP 地址等,以及其他属性均保持不变。
其他说明请参考,ECS宕机迁移FAQ 。
安装SAP HANA
维护主机名
在SAP HANA所有节点维护主机名,按照规划维护/etc/hosts文件添加如下信息:
192.168.10.4 hana01
192.168.10.5 hana02
192.168.10.6 hana03
创建文件系统
/hana/shared文件系统采用NAS;/hana/data和/hana/log文件系统为xfs类型文件系统。
1./hana/data和/hana/log文件系统:
1)首先检查磁盘。
2)创建pv。
3)创建hanavg。
4)创建datalv和log。
5)创建文件系统。
6)创建mount点并加入开机自动挂载。
fdisk -l
pvcreate /dev/vdb /dev/vdc /dev/vdd
vgcreate hanavg /dev/vdb /dev/vdc /dev/vdd
lvcreate -L 384G -n datalv -i 3 -I 64 hanavg
lvcreate -L 64G -n loglv -i 3 -I 64 hanavg
mkfs.xfs /dev/hanavg/datalv
mkfs.xfs /dev/hanavg/loglv
mkdir -p /hana/data
mkdir -p /hana/log
编辑 /etc/fstab文件添加如下内容:
/dev/mapper/hanavg-datalv /hana/data xfs nobarrier,noatime,nodiratime,logbsize=256k 0 0
/dev/mapper/hanavg-loglv /hana/log xfs nobarrier,noatime,nodiratime,logbsize=256k 0 0
全部完成后mount -a
将所有的文件系统挂载。
3.Global文件系统
推荐/hana/shared与/hana/backup均采用autofs,所以不需要创建目录。
配置autofs如下:
1)编辑auto.master文件
#vim /etc/auto.master
添加/- /etc/auto.nfs
2)创建并编辑/etc/auto.nfs文件如下:
/hana/shared -rw,hard,intr,noresvport,timeo=60,retrans=2 xxxxxxx.nas.aliyuncs.com:/
3).启动autofs服务并设置开机自启动。
systemctl start autofs
systemctl enable autofs
此时cd到这个文件系统进行访问即可看到文件系统挂载情况。
准备OS以及安装包
如下的配置都需要在集群节点中配置和添加,本例只描述在其中一个节点的操作。
1.安装HA配置以及优化所需的包
安装sap_cluster_connector/saptune包。
zypper in -y saptune sap_cluster_connector
通过如下命令检查是否安装成功:
zypper se saptune sap_cluster_connector
2.检查ntp服务
使用阿里云提供的ECS服务器自动开启NTP服务,如果时区设置不是“Asia/Shanghai”,请参考配置SUSE linux实例的NTP/Chrony时钟同步服务来确保所有的机器开启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
本示例如下:
激活daemon进程:
saptune daemon start
关于saptune更多信息请参考Prepare your Linux for your SAP solution with saptune 或SLES官方文档。
安装HANA
SAP HANA的安装和配置请参考 SAP HANA Platform。
1.主节点安装(略)
SAP HANA安装成功后,需要修改配置参数以满足Non-shared架构的需要。
编辑 /hana/shared/[SID]
/global/hdb/custom/config/global.ini 并添加:
basepath_shared=no
以root用户执行:
cd /hana/shared/[SID]/hdblcm
./hdblcm
选择4 (configure_internal_network),再选择内部服务的通讯类型。
本示例中使用的是internal的192.168.10/24网段。
2.worker节点安装(这里只提供一个worker节点安装的示例,其他节点类似)
创建实例路径
mkdir -p /hana/data/[HANA SID]
mkdir -p /hana/log/[HANA SID]
修改目录权限
chmod -R 775 /hana/data/[HANA SID]
chmod -R 775 /hana/log/[HANA SID]
worker节点安装(略)
root用户切换到安装路径cd /hana/shared/[HANA SID]/hdblcm
3.修改参数,实现SAP HANA开机自启动
用root用户登录HANA主机,修改所有HANA实例参数。
编辑 /hana/shared/[SID]/profile/[SID]_HDB[instance number]_[host name]。
将Autostart = 0 修改成 Autostart = 1,保存参数并重启HANA实例。
4.按本示例规划再安装一个worker节点,步骤同上(略)
验证集群安装
1.切换到实例用户su - [sid]adm
2.验证集群
cd /hana/shared/[SID]/exe/linuxx86_64/hdb/python_support/
python landscapeHostConfiguration.py