Date: 1月 14, 2024
使用 SIOS LifeKeeper 在 AWS 中通过 HANA 3 节点 HSR 集群构建高可用性
简介:如何确保数据库的 HA 和 DR
在 AWS 中创建高度可用的 SAP HANA 环境是许多企业的一项关键任务。本指南提供了使用以下命令设置 3 节点 HANA 系统复制 (HSR) 集群的详细演练:SIOS 生命守护者在AWS中,确保数据库弹力和高可用性。
先决条件
- 能够部署 EC2 实例的 AWS 帐户。
- SIOS LifeKeeper 软件
- SIOS LifeKeeper 评估或永久许可证
- SAP HANA 软件
- 熟悉 AWS 服务和 SAP HANA。
步骤 1:准备您的 AWS 环境
EC2实例部署
在 AWS 中部署三个 EC2 实例。这些实例将充当 HANA 集群的主节点、辅助节点和第三节点。确保它们满足 SAP HANA 和 SIOS LifeKeeper 的硬件和软件要求。确保在构建实例时遵循 SAP HANA 大小调整指南。
网络配置
配置您的 VPC、子网和安全组,以允许节点之间进行通信并允许访问必要的服务。
在不同区域配置 HANA 节点时,您可以使用 SIOS LifeKeeper for Linux Route53 应用程序恢复套件或 ARK 保护 DNS 名称。以下是 AWS 中 3 节点 HANA 数据库的架构:
设置存储时,请为 /usr/sap、/hana/data、/hana/log 和 /hana/shared 使用单独的 EBS 卷。
我们有 2 个 VPC,每个区域一个。我们需要在 VPC 之间设置对等互连,并将路由添加到路由表中,以确保服务器可以相互通信。我们还需要修改安全组以允许服务器之间的流量。
最后,我们需要创建一个包含两个 VPC 的托管区域,并添加用于与活动 HANA 节点通信的域和主机名的记录。
步骤 2:安装和配置 SAP HANA
每个节点上的安装
在每个 EC2 实例上安装 SAP HANA。确保所有节点的版本一致,以避免兼容性问题。这是迄今为止最具挑战性的过程。
首先确定您的安装设置。对于我来说,我使用以下内容:
SID:D11
- HANA实例数量:11
- Route53 中的 HANA 数据库 FQDN:saphana.sapdemo
- Node1 主机名:sapdemohana1
- 节点2主机名:sapdemohana2
- Node3 主机名:sapdemohana3
- 实例类型:r5.4xlarge
本地实例存储:
- 30GB /(根卷)
- 15GB/usr/sap
- 60GB /hana/共享*
- 200GB /hana/数据
- 200GB /hana/日志
*对于此安装,这些 HANA 数据库服务器之间未共享存储。如果您尝试使用共享存储,您将无法创建相同的服务器,因为 hdblcm 将阻止安装并出现有关 SID 和实例已存在的错误。
在每个节点上独立安装 HANA 服务器软件,就好像它是一个独立系统一样。确保安装了所有必需的库,对于 RHEL 8,它们位于 SAP note 2772999 中。您需要确保在安装 compact-sap-c++-9-9.1.1-2.3.el7_6.x86_64.rpm 后创建符号链接通过运行: ln -s /opt/rh/SAP/lib64/compat-sap-++-10.so /usr/sap/lib/libstdc++.so.6
- yum install xorg-x11-server-Xorg xorg-x11-xauth -y #for LifeKeeper GUI
- yum 安装 nfs-utils
创建分区、格式化存储并附加它。创建您的交换文件。
我在所有主机上创建 RSA 密钥,然后通过将公钥添加到 .ssh/authorized_keys 文件来允许 root ssh 在 hana 节点之间登录。这将使安装变得更加容易。
装载 HANA 安装介质卷。
- yum localinstall compat-sap-c++-10-10.2.1-11.el7_9.x86_64.rpm
- yum localinstall compat-sap-c++-9-9.1.1-2.3.el7_6.x86_64.rpm
- mkdir /usr/sap/lib
- ln -s /opt/rh/SAP/lib64/compat-sap-++-10.so /usr/sap/lib/libstdc++.so.6
- 百胜安装 compat-sap-c++-10 libatomic -y
从正确的 hana 安装介质目录运行 hdblcm。在所有节点上成功安装 HANA 后,您就可以开始下一步了。
系统复制设置
您需要在启用 HSR 之前进行备份:
- su – <SID>adm [即。苏-d11adm]
- hdbsql -i <实例编号>adm -u system -p <密码> [即。hdbsql -i 11 -u系统-p“密码123”]
- 使用文件备份数据(‘/usr/sap/<SID>/HDB<实例编号>’) [即。使用文件备份数据(‘/usr/sap/D11/HDB11’)
在所有节点上重复上述备份过程。
在每个节点上配置 HANA 系统复制:
在主 HANA 系统上启动 HDB 实例(如果尚未运行): sapcontrol -nr <实例编号> -function StartSystem HDB [即:sapcontrol -nr 11 -function StartSystem HDB]
在主站点启动 HSR: hdbnsutil -sr_enable –name=<主站点名称> [即。hdbnsutil -sr_enable –name=sapdemohana1
停止辅助 HANA 系统上的 HDB 实例: sapcontrol -nr <实例编号> -function StopSystem HDB [即。sapcontrol -nr 11 -function StopSystem HDB]
在其他 HANA 系统中,备份 KEY 和 DAT 文件并将主 KEY 和 DAT 文件复制到所需位置:
- mv /usr/sap/<SID>/SYS/global/security/rsecssfs/data/SSFS_<SID>.DAT /usr/sap/<SID>/SYS/global/security/rsecssfs/data/SSFS_<SID>。 DAT.BAK [即。mv /usr/sap/D11/SYS/global/security/rsecssfs/data/SSFS_D11.DAT /usr/sap/D11/SYS/global/security/rsecssfs/data/SSFS_D11.DAT.BAK]
- mv /usr/sap/<SID>/SYS/global/security/rsecssfs/key/SSFS_<SID>.KEY /usr/sap/<SID>/SYS/global/security/rsecssfs/key/SSFS_<SID>. KEY.BAK [即。mv /usr/sap/D11/SYS/global/security/rsecssfs/key/SSFS_D11.KEY /usr/sap/D11/SYS/global/security/rsecssfs/key/SSFS_D11.KEY.BAK]
- scp root@<主节点>:/usr/sap/<SID>/SYS/global/security/rsecssfs/data/SSFS_<SID>.DAT /usr/sap/<SID>/SYS/global/security/rsecssfs/数据/SSFS_<SID>.DAT [即。scp root@sapdemohana1:/usr/sap/D11/SYS/global/security/rsecssfs/data/SSFS_D11.DAT /usr/sap/D11/SYS/global/security/rsecssfs/data/SSFS_D11.DAT]
- scp root@<主节点>:/usr/sap/<SID>/SYS/global/security/rsecssfs/key/SSFS_<SID>.KEY /usr/sap/<SID>/SYS/global/security/rsecssfs/ key/SSFS_<SID>.KEY [即。scp root@sapdemohana1:/usr/sap/D11/SYS/global/security/rsecssfs/key/SSFS_D11.KEY /usr/sap/D11/SYS/global/security/rsecssfs/key/SSFS_D11.KEY]
确保密钥和 dat 文件的所有者是 <SID>adm sapsys:
- [root@sapdemohana2 ~]# ls -l /usr/sap/D11/SYS/global/security/rsecssfs/data/
- 总计 12
- -rw-r–r– 1 d11adm sapsys 2960 年 1 月 3 日 22:19 SSFS_D11.DAT
- -rw-r–r– 1 d11adm sapsys 2960 年 1 月 3 日 22:15 SSFS_D11.DAT.BAK
将附加 HANA 系统注册到主 HANA 系统 – 必须以管理员用户身份完成:
- hdbnsutil -sr_register –name=<辅助 HSR 名称> –remoteHost=<SAP HANA 系统的主主机名> –remoteInstance=<远程实例编号> –operationMode=<delta_datashipping | 日志重放 | logreplay_readaccess> –replicationMode=<同步 | 同步内存 | 异步>
[IE。hdbnsutil -sr_register –name=sapdemohana2 –remoteHost=sapdemohana1 –remoteInstance=11 –operationMode=logreplay –replicationMode=sync]
检查所有系统上的 HSR 状态,以管理员用户身份运行以下命令: d11adm@sapdemohana4:/usr/sap/D11/HDB11>hdbnsutil -sr_state
一旦所有系统都在线,您就可以进入下一步。
步骤 3:安装 SIOS LifeKeeper
AWS CLI 安装
安装 AWS CLI 并使用具有以下权限的密钥对其进行配置:
路由表(后端)配置:
- ec2:描述路由表
- ec2:替换路由
- ec2:描述网络接口属性
- ec2:修改网络接口属性
- 弹性IP(前端)配置:
- ec2:描述地址
- ec2:关联地址
- ec2:解除关联地址
LifeKeeper安装
在每个节点上安装 SIOS LifeKeeper。这涉及运行安装脚本并遵循安装向导,该向导将指导您完成必要的步骤。对于此安装,我使用网络、Route53 ARK 和数据库、SAP HANA ARK 以及见证功能。
编辑 /etc/selinux/config 文件并禁用 selinux:
我还更改了主机名并编辑了 /etc/hosts 文件。最后编辑 /etc/default/LifeKeeper 文件并将 /usr/local/bin 添加到 PATH 中:
更改 NOBCASTPING=1:
我还将 QUORUM_LOSS_ACTION 更改为 osu:
确保 Xwindows 可以工作。我从 .bashrc 中删除 cp 别名,并将 /opt/LifeKeeper/bin 和 /usr/local/bin 添加到我的 .bash_profile 中,并将 ec2-users .Xauthority 文件复制到 root 和 <SID>adm 主目录,以便 Xwindows将工作:
我更改 root 密码并重新启动。在启动 LifeKeeper GUI 之前。确保 HSR 在所有节点上都在线并且所有节点都已注册:
配置
启动 LifeKeeper GUI:lkGUIapp 并使用 root 用户和密码登录:
单击连接按钮登录集群中的其他节点:
登录到所有节点后,单击“创建通信路径”按钮:
当它要求本地服务器时点击下一步,然后按住 Shift 并选择所有节点:
点击“接受默认值”并在完成后点击“完成”。再次单击“创建通信路径”按钮,这次更改为第二个节点:
点击下一步并选择第三个节点:
单击“下一步”按钮,直到您可以单击“接受默认值”按钮。当完成击中完成。现在单击“创建资源层次结构”按钮:
选择 IP 套件并点击下一步:
点击下一步,直到到达 IP 资源页面。这里输入 0.0.0.0 并点击下一步:
点击下一步,直到到达“创建”按钮。点击创建按钮:
完成后点击下一步:点击接受默认值,目标服务器显示第二个节点:
完成后点击下一个服务器:
点击“接受默认值”,显示第三个节点,完成后点击“完成”:
命中完成:
现在我们有了一个 IP 资源,我们可以添加 Route53 资源,这将更改 dns 条目以将 FQDN 解析为活动节点 IP 地址。在这种情况下,saphana.sapdemo 将解析为 sapdemohana1 的 IP 地址 (172.31.0.25)。点击“创建资源层次结构”按钮开始该过程:
选择 Route53 并点击下一步:
继续点击下一步,直到到达域名。它应该预先填充活动托管区域名称。点击下一步。
输入所有内容将用于连接到 HANA 数据库的主机名,然后点击下一步:
点击下一步,直到到达创建按钮,然后单击创建按钮。完成后点击下一步:
在预扩展向导中点击接受默认值:
完成后点击下一个服务器:
目标服务器将显示第三个节点。点击接受默认值:
完成后点击“完成”。然后点击“完成”。然后您可以展开树。打开与第二个节点的终端会话并 ping HANA 数据库的 FQDN [即。ping -c3 saphana.sapdemo]
右键单击 sapdemohana3 下的顶部 Standby,然后选择 In Service:
在下一个屏幕上点击“服务中”,然后在完成后点击“完成”:
转到终端窗口并重复 ping 测试:
您可以看到主机名现在解析为 sapdemohana3。在继续下一步之前,将 sapdemohana1 重新投入使用。
步骤 4:将 SAP HANA 与 SIOS LifeKeeper 集成
资源层次结构创建
使用 LifeKeeper GUI,在每个节点上为 SAP HANA 创建资源层次结构。此设置对于管理故障转移和恢复过程至关重要。确保 HSR 在节点 1 上处于活动状态并且其他节点已注册:
单击创建资源按钮:
选择 SAP HANA 恢复工具包并点击下一步,直到到达 IP 地址屏幕:
选择无并点击下一步:
点击下一步,直到到达“创建”屏幕并点击“创建”:
创建后点击下一步,然后接受节点2的默认值:
当node2完成后,再次点击“Next Server”并接受默认值:
完成后点击“完成”,然后点击“完成”:
右键单击 Hana Hierarchy 并选择 Create Dependency:
对于子资源标签,从下拉列表中选择route53资源,然后点击下一步:
单击创建依赖项:
单击“完成”。然后选择查看展开树:
如果一切都是绿色的,我们就准备测试了。
第 5 步:测试和验证
故障转移/切换测试
进行彻底的故障切换测试,确保在主节点发生故障时系统能够正确切换到辅助或第三节点。此测试应包括网络故障、硬件问题和软件崩溃等场景。
我们将执行的第一个测试是切换,用于执行维护活动或计划停机。右键单击第二个节点并选择 In Service – Takeover with Handshake…
点击执行接管:
此测试将切换到第二个节点,以最大限度地减少用户的停机时间。当第二个节点启动并运行时点击完成:
一段时间后,节点 1 将恢复待机状态 – 同步。
现在我们可以执行故障转移测试。打开节点 2 的终端并输入 echo c > /proc/sysrq-trigger 以模拟系统崩溃。您将看到节点 1 接管,因为它具有最高优先级 1:
最终,一切都会恢复正常:
您可能希望测试许多其他类型的故障场景。只需在开始测试之前确保备用节点同步即可。
数据同步验证
验证数据是否在所有节点之间正确复制。节点间数据的一致性对于 HSR 设置的完整性至关重要。
性能监控
定期监控 SAP HANA 实例和 LifeKeeper 设置的性能。检查是否存在任何可能表明潜在问题的异常或问题。检查 /var/log/lifekeeper.log 文件以确保一切都按预期执行。您可能需要根据网络性能调整心跳定时器和心跳丢失次数。这些可以在 /etc/default/LifeKeeper 文件中配置。可调参数为 LCMHBEATTIME 和 LCMNUMHBEATS。您还可以使用命令 lcdstatus -q 从命令行检查 Lifekeeper 的状态。
结论
使用 SIOS LifeKeeper 在 AWS 中设置 3 节点 HANA HSR 集群涉及详细的规划和执行。通过仔细遵循这些步骤,您可以在云中建立强大、有弹性且高度可用的 SAP HANA 环境,确保您的关键数据保持可访问且安全。适用于 Linux 的 SIOS LifeKeeper 使 SAP HANA 的管理、监控和维护变得快速、轻松。
经许可转载安全操作系统