本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
操作系统要求
本节概述了适用于 SAP 的红帽企业 Linux(适用于 SAP 的 RHEL)集群节点所需的操作系统配置。请注意,这不是在上面运行 SAP HANA 的配置要求的完整列表 Amazon,而是专门介绍集群管理先决条件。
考虑使用配置管理工具或自动部署脚本,以确保在集群基础架构中进行准确且可重复的设置。
主题
重要
必须在所有群集节点上执行以下配置。确保节点间的一致性以防止出现群集问题。
根访问
验证两个群集节点上的 root 访问权限。本文档中的大多数设置命令都是由 root 用户执行的。假设命令应以 root 身份运行,除非有明确的呼叫可供选择。
安装缺失的操作系统软件包
这适用于所有群集节点。必须安装所有缺失的操作系统软件包。
pacemaker 设置需要以下软件包及其依赖项。根据您的基准映像(例如,适用于 SAP 的 RHEL),这些软件包可能已经安装完毕。
程序包 | 说明 | 类别 | 必需 | 配置模式 |
---|---|---|---|---|
chrony |
时间同步 |
系统 Support |
强制性 |
全部 |
起搏器 |
群集资源管理器 |
核心集群 |
强制性 |
全部 |
corosync |
集群通信引擎 |
核心集群 |
强制性 |
全部 |
个 |
集群管理 CLI |
核心集群 |
强制性 |
全部 |
资源代理 |
基础资源代理 |
核心集群 |
强制性 |
全部 |
resource-agents-cloud |
云资源代理包括 aws-vpc-move-ip |
核心集群 |
强制性 |
全部 |
fence-agents-aws |
击剑能力 |
核心集群 |
强制性 |
全部 |
sap-hana-ha |
新一代 HANA 系统复制代理 |
SAP HANA HA |
必填* |
SAPHANAScaleup-sapangi,out-sapangi SAPHANAScale |
resource-agents-sap-hana |
SAP HANA 资源代理 |
SAP HANA HA |
必填* |
SAPHANAScale向上经典 |
resource-agents-sap-hana-向外扩展 |
SAP HANA 资源代理 |
SAP HANA HA |
必填* |
SAPHANAScale超越经典 |
sos |
系统信息收集 |
Support 工具 |
强制性 |
全部 |
sysstat |
性能监控工具 |
Support 工具 |
强制性 |
全部 |
pcp-system-tools |
性能副驾驶工具 |
监控 |
推荐 |
全部 |
注意
有关配置模式的更多信息,请参阅 Vendor Support 对部署类型的支持。 Mandatory*
表示根据配置模式,此软件包是必需的。
#!/bin/bash # Mandatory core packages for SAP HANA HA on AWS mandatory_packages="pacemaker corosync pcs chrony resource-agents resource-agents-sap-hana resource-agents-cloud fence-agents-aws" # HANA SR packages - Previous Generation (still in common use) hanaSR_scaleup="resource-agents-sap-hana" # For scale-up deployments hanaSR_scaleout="resource-agents-sap-hana-scaleout" # For scale-out deployment # HANA SR packages - New Generation hanaSR_angi="sap-hana-ha" # New generation package for both scale-up and scale-out # Recommended monitoring and support packages support_packages="pcp-system-tools sos sysstat" # Note: Choose hanaSR_scaleup/hanaSR_scaleout or hanaSR_angi # Uncomment the appropriate line based on your deployment: packages="${mandatory_packages} ${hanaSR_scaleup} ${support_packages}" #packages="${mandatory_packages} ${hanaSR_scaleout} ${support_packages}" #packages="${mandatory_packages} ${hanaSR_angi} ${support_packages}" missingpackages="" for package in ${packages}; do echo "Checking if ${package} is installed..." if ! rpm -q ${package} &>/dev/null; then echo " ${package} is missing and needs to be installed" missingpackages="${missingpackages} ${package}" fi done if [ -z "$missingpackages" ]; then echo "All packages are installed." else echo "Missing mandatory packages: $(echo ${missingpackages} | tr ' ' '\n' | grep -E "^($(echo ${mandatory_packages} | tr ' ' '|'))$")" echo "Missing support packages: $(echo ${missingpackages} | tr ' ' '\n' | grep -E "^($(echo ${support_packages} | tr ' ' '|'))$")" echo -n "Do you want to install the missing packages (y/n)? " read response if [ "$response" = "y" ]; then dnf install -y $missingpackages fi fi
如果您在安装高可用性软件包时遇到问题,请验证存储库访问权限:
$ sudo dnf repolist
对于 BYOL(自带许可证)系统,还要使用订阅管理器验证订阅状态。
要在确认的情况下安装或更新一个或多个软件包,请使用以下命令:
$ sudo dnf install <package_name(s)>
更新和检查操作系统版本
您必须跨节点更新和确认版本。将所有最新补丁应用到您的操作系统版本。这样可以确保错误得到解决并提供新功能。
您可以使用dnf update
命令单独更新补丁或更新所有系统补丁。建议在设置群集之前彻底重启。
$ sudo dnf update $ sudo reboot
比较两个群集节点上的操作系统包版本,并确保两个节点上的版本都匹配。
系统日志
建议同时使用 systemd-journald 和 rsyslog 进行全面记录。Systemd-Journald(默认启用)提供结构化的索引日志记录,可以立即访问事件,而维护rsyslog是为了向后兼容和传统的基于文件的日志记录。这种双重方法可确保现代日志记录功能以及与现有日志管理工具和实践的兼容性。
1。启用并启动 rsyslog:
# systemctl enable --now rsyslog
2. (可选)为 systemd-journald 配置永久日志记录:
如果您不使用日志代理(例如 Uni Amazon CloudWatch fied Agent 或 Vector)将日志传送到集中位置,则可能需要配置永久日志以在系统重启后保留日志。
# mkdir -p /etc/systemd/journald.conf.d
使用以下/etc/systemd/journald.conf.d/99-logstorage.conf
方式创建:
[Journal] Storage=persistent
持续日志记录需要仔细的存储管理。在中配置适当的保留和轮换设置journald.conf
,以防止日志占用过多的磁盘空间。查看man journald.conf
可用选项 SystemMaxUse,例如 RuntimeMaxUse、和 MaxRetentionSec。
要应用更改,请重新启动 journald:
# systemctl restart systemd-journald
启用永久存储后,只会永久存储新的日志。当前启动会话中的现有日志将保留在易失性存储器中,直到下次重启。
3。验证服务是否正在运行:
# systemctl status systemd-journald # systemctl status rsyslog
禁用 NetworkManager 云服务
使用红帽企业 Linux 8.6 或更高版本时,必须禁用 NetworkManager 云设置服务才能保持集群稳定性。这些服务可能会通过自动从网络接口删除叠加 IP 地址来干扰集群操作。
在每个群集节点上运行以下命令:
# systemctl disable --now nm-cloud-setup.timer # systemctl disable --now nm-cloud-setup
验证服务是否已禁用和停止:
# systemctl status nm-cloud-setup.timer # systemctl status nm-cloud-setup
状态命令应将两个服务显示为 “已禁用” 和 “非活动(已停用)”。
时间同步服务
时间同步对于集群操作很重要。确保安装了 chrony rpm,并在配置文件中配置相应的时间服务器。
您可以使用 Amazon 时间同步服务,该服务在 VPC 中运行的任何实例上均可用。它不需要互联网接入。为确保闰秒处理的一致性,请勿将 Amazon 时间同步服务与任何其他 ntp 时间同步服务器或池混用。
创建或检查/etc/chrony.d/ec2.conf
文件以定义服务器:
# Amazon EC2 time source config server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
使用以下命令启动 chronyd.service:
# systemctl enable --now chronyd.service # systemctl status chronyd
有关更多信息,请参阅为您的 Linux 实例设置时间。
Amazon CLI 配置文件
Amazon 群集资源代理使用 Amazon 命令行界面 (Amazon CLI)。您需要为根账户创建 Amazon CLI 配置文件。
您可以/root/.aws
手动编辑配置文件,也可以使用 aws configure
Amazon CLI 命令编辑配置文件。
您应该跳过提供访问密钥和秘密访问密钥信息的步骤。这些权限是通过附加到 Amazon EC2 实例的 IAM 角色提供的。
# aws configure
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]: <region>
Default output format [None]:
除非已配置,default
否则配置文件名称为。如果您选择使用其他名称,则可以指定--profile
。在此示例中选择的名称是集群。它用于起搏器的 Amazon 资源代理定义中。该 Amazon 区域必须是实例的默认 Amazon 区域。
# aws configure --profile cluster
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]: <region>
Default output format [None]:
在主机上,您可以使用以下命令验证可用的配置文件:
# aws configure list-profiles
并通过查询来电者身份来查看代入的角色是否已关联:
# aws sts get-caller-identity --profile=<profile_name>
起搏器代理设置(可选)
如果您的 Amazon EC2 实例已配置为通过代理服务器访问互联网和/或 Amazon 云,则需要在 pacemaker 配置中复制设置。有关更多信息,请参阅使用 HTTP 代理。
将以下行添加到 /etc/sysconfig/pacemaker
:
http_proxy=http://<proxyhost>:<proxyport> https_proxy=http://<proxyhost>:<proxyport> no_proxy=127.0.0.1,localhost,169.254.169.254,fd00:ec2::254
-
修改 proxyhost 和 proxyport 以匹配您的设置。
-
确保免除用于访问实例元数据的地址。
-
将 no_proxy 配置为包含实例元数据服务的 IP 地址 — 169.254.169.254 () 和 fd00: ec2:: 254 ()。IPV4 IPV6该地址保持不变。
为初始数据库访问添加覆盖 IP
此步骤是可选的,只有在集群设置之前需要客户端连接到 SAP HANA 数据库时才需要。叠加 IP 稍后将由群集资源自动管理。
要启用初始数据库访问权限,请手动将叠加 IP 添加到主实例(当前运行 SAP HANA 数据库的地方):
# ip addr add <hana_overlayip>/32 dev eth0
-
此配置是临时的,将在实例重启后丢失
-
仅在当前的主实例上进行此配置
-
配置完成后,集群将接管对此 IP 的管理
主机名解析
您必须确保所有实例都能解析所有正在使用的主机名。将群集节点的主机名添加到所有群集节点上的/etc/hosts
文件中。这样可以确保即使出现 DNS 问题也能解析群集节点的主机名。有关双节点群集,请参阅以下示例:
# cat /etc/hosts 10.2.10.1 hanahost01.example.com hanahost01 10.2.20.1 hanahost02.example.com hanahost02 172.16.52.1 hanahdb.example.com hanahdb
在此示例中,未提及 IPs 用于第二个群集环的辅助环路。它们仅用于群集配置。您可以为管理和识别目的分配虚拟主机名。
重要
叠加 IP 超出 VPC 范围,无法从与路由表无关的地点(包括本地)到达。