SIOS SANless clusters

SIOS SANless clusters High-availability Machine Learning monitoring

  • Home
  • 产品
    • SIOS DataKeeper for Windows
    • SIOS Protection Suite for Linux
  • 新闻与活动
  • 服务器集群简单化
  • 成功案例
  • 联系我们
  • English
  • 中文 (中国)
  • 中文 (台灣)
  • 한국어
  • Bahasa Indonesia
  • ไทย

使用 SIOS LifeKeeper 在 AWS 中通过 HANA 3 节点 HSR 集群构建高可用性

Date: 1月 14, 2024

Build High Availability with a HANA 3-Node HSR Cluster in AWS Using SIOS LifeKeeper

使用 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 的管理、监控和维护变得快速、轻松。

SIOS提供资源和训练对于我们所有的产品。

经许可转载安全操作系统

 

Copyright © 2025 · Enterprise Pro Theme on Genesis Framework · WordPress · Log in