配置 HA 集群以使用 RHEL HA 附加组件管理 SAP NetWeaver 或 SAP S/4HANA Application 服务器实例


Red Hat Enterprise Linux for SAP Solutions 8

Red Hat Customer Content Services

摘要

本指南概述了配置 HA 集群以使用 RHEL HA 附加组件管理 SAP NetWeaver 或 SAP S/4HANA 应用程序服务器实例的过程。

使开源包含更多

红帽承诺替换我们的代码和文档中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于这一努力的精力,这些更改将在即将发布的版本中逐渐实施。有关让我们的语言更加包含的更多详情,请参阅我们的CTO Chris Wright 信息

对红帽文档提供反馈

我们感谢您对我们文档的反馈。让我们了解如何改进它。

通过 Jira 提交反馈(需要帐户)

  1. 确保您已登录到 JIRA 网站。
  2. 通过单击此链接 来提供反馈。https://issues.redhat.com/secure/CreateIssueDetails!init.jspa?pid=12330720&issuetype=3&components=12387093&priority=10200&summary=Doc&description=Please+include+the+Document+URL,+the+section+number+and%20+describe+the+issue&labels=SAP_DOCS&customfield_12311140=SAPOCP-775&assignee=rh-ee-pmohta
  3. Summary 字段中输入描述性标题。
  4. Description 字段中输入您对改进的建议。包括文档相关部分的链接。
  5. 如果要通知将来的更新,请确保已分配为 Reporter
  6. 点对话框底部的 Create

第 1 章 概述

1.1. 简介

基于 SAP NetWeaver 或 SAP S/4HANA 的系统在很多业务流程中扮演着重要角色;因此,确保这些系统的持续可靠可用性到业务至关重要。这可以通过使用 HA 集群来管理此类 SAP NetWeaver 或 SAP S/4HANA 系统的实例来实现。

HA 集群的底层概念比较简单:不是单个大型机器全部负载和风险,而是一个或多个计算机自动丢弃为服务或已出现故障的计算机的即时完全替换。在最佳情况下,这个替换过程不会给系统的用户造成中断。

1.2. 受众

设计高度可用的解决方案并根据 SAP NetWeaver 或 SAP S/4HANA 实施它们可能非常复杂,因此对于基础架构的每个层以及部署的每个方面都需要深入了解,以确保可靠、可重复、准确和快速自动化操作。

本文档适用于已经使用 RHEL HA 附加组件或其他集群解决方案设置 SAP NetWeaver 或 S/4HANA 应用程序服务器实例和 HA 集群的 SAP 和红帽认证管理员和顾问。需要 同时访问 SAP 支持 门户和红帽客户门户 才能下载软件和其他文档。

强烈建议您设置集群并自定义解决方案以满足客户的数据中心要求,这通常比本文档中介绍的解决方案更复杂。

1.3. 概念

1.3.1. SAP NetWeaver 或 S/4HANA High Availability

典型的 SAP NetWeaver 或 S/4HANA 环境由三个不同的组件组成:

  • SAP (A) SCS 实例
  • SAP 应用程序服务器实例(主要应用服务器(PAS)和额外的应用服务器(AAS)实例)
  • 数据库实例

(A) SCS 实例和数据库实例是单一故障点(SPOF);因此,确保 HA 解决方案受到保护,以避免数据丢失或损坏,以及 SAP 系统不必要的中断。有关 SPOF 的更多信息,请参阅 单一故障点

对于应用服务器,由 enqueue 服务器管理的 enqueue 锁定表是最重要的组件。为保护它,SAP 已开发了"Enqueue Replication Server" (ERS),后者维护 enqueue 锁定表的备份副本。虽然 (A) SCS 在一台服务器上运行,但 ERS 始终需要在另一个服务器上维护当前 enqueue 表的副本。 

本文档论述了如何设置双节点或三节点 HA 集群解决方案来管理 (A) SCSERS 实例,它们符合 SAP 和红帽建立的高可用性的准则。HA 解决方案可用于通常由 SAP NetWeaver 或 "Standalone Enqueue Server 2" (ENSA2)使用的"Standalone Enqueue Server" (ENSA2)。 

另外,它还提供了设置 HA 集群资源来管理其他 SAP 实例类型的指南,如主应用服务器(PAS)或附加应用服务器(AAS)实例,它们可以作为同一 HA 集群的一部分或单独的 HA 集群进行管理。

1.3.2. ENSA1 对比.ENSA2

1.3.2.1. 独立 Enqueue Server (ENSA1)

如果 (A) SCS 实例有问题,对于 Standalone Enqueue Server (ENSA1),则需要 (A) SCS 实例"跟随" ERS 实例。也就是说,HA 集群必须在当前运行 ERS 实例的主机上启动 (A) SCS 实例。在运行 (A) SCS 实例的主机被隔离前,可以注意到这两个实例都保持在同一节点上运行。当之前运行 (A) SCS 实例的 HA 集群节点恢复在线时,HA 集群应将 ERS 实例移到那个 HA 集群节点,以便 Enqueue 复制可以恢复。

下图显示了使用 Standalone Enqueue Server (ENSA1)管理 SAP NetWeaver 设置的典型 Pacemaker HA 集群架构。  text

虽然图显示,也可以选择在单独的服务器上管理主和附加应用服务器(PAS/AAS)实例,但也支持将这些实例作为 (A) SCSERS 实例在相同的 HA 集群节点上运行,并可由集群管理。

如需了解 Standalone Enqueue Server (ENSA1)如何工作: Standalone Enqueue Server,请参阅以下 SAP 文档。

1.3.2.2. 独立 Enqueue Server 2 (ENSA2)

如上所示,带有 ENSA1,如果存在故障转移,则需要 Standalone Enqueue Server to "follow" Enqueue Replication Server。也就是说,HA 软件必须在当前运行 ERS 实例的主机上启动 (A) SCS 实例。

与 Standalone Enqueue Server (ENSA1)不同,新的 Standalone Enqueue Server 2 (ENSA2)和 Enqueue Replicator 2 不再具有这些限制,这意味着当失败时可在同一集群节点上重新启动 ASCS 实例。或者也可以移到另一个 HA 集群节点,它不一定是运行 ERS 实例的 HA 集群节点。这样,当使用 Standalone Enqueue Server 2 (ENSA2)时,可以使用带有两个以上的 HA 集群节点的多节点 HA 集群设置。 

当使用多个 HA 集群节点时,ASCS 将切换到备用节点,如下图所示:

text

有关 ENSA2 的更多信息,请参阅 SAP Note 2630416 - Support for Standalone Enqueue Server 2

下图显示了一个三节点集群的架构,可用于使用 Standalone Enqueue Server 2 (ENSA2)管理 SAP S/4HANA 设置。

text

虽然图显示,也可以选择在单独的服务器上管理主和附加应用服务器(PAS/AAS)实例,但也支持将这些实例作为 ASCSERS 实例在相同的 HA 集群节点上运行,并可由集群管理。

对于 SAP S/4HANA,也可以使用"成本优化" HA 集群设置,其中用于管理 HANA 系统复制设置的集群节点也用于管理 ASCSERS 实例。如需更多信息 ,请参阅使用 RHEL HA 附加组件配置成本优化 SAP S/4HANA HA 集群(HANA System Replication + ENSA2)。

1.4. 资源代理

RHEL 8 提供了以下资源代理,用于通过 resource-agents-sap RPM 软件包 来管理不同类型的 SAP 环境。

1.4.1. SAPInstance 资源代理

SAPInstance 资源代理可用于使用 SAP Start Service (属于 SAP 内核)来管理 SAP 应用服务器实例。除了(A) SCS、ERS、PAS 和 AAS 实例外,它还可用于管理其他 SAP 实例类型,如独立的 SAP Web Dispatcher 或独立 SAP 网关实例(请参阅 如何使用 RHEL HA 辅助程序管理独立 SAP Web Dispatcher 实例,以了解有关如何配置 pacemaker 资源来管理此类实例的信息)。

SAPInstance 资源代理的所有操作都是使用 SAP 启动框架提供的命令来完成的,该命令与每个 SAP 实例的 sapstartsrv 进程通信。sapstartsrv 知道 4 个状态颜色:

Expand
Color含义

绿色

一切正常。

黄色

出现错误,但服务仍在工作。

RED HAT

该服务不起作用。

灰色

该服务尚未启动。

SAPInstance 资源代理将 GREEN 和 YELLOW 解释为 OK,而 RED 和 GRAY 则报告为 NOT_RUNNING 到集群。

RHEL 8 附带的 SAPInstance 资源代理版本还支持由支持 systemd 的 SAP 启动框架管理的 SAP 实例(请参阅 Systemd-Based SAP Startup Framework )。

1.4.1.1. 重要 SAPInstance 资源代理参数
Expand
属性名称必填默认值描述

InstanceName

null

完整的 SAP 实例配置集 名称(<SAPSID>_<INSTNAME+INSTNO>_<virt hostname>),例如 S4H_ASCS20_s4ascs

START_PROFILE

null

SAP Start Profile 的完整路径(通过 SAP NetWeaver 7.1 及更新版本,SAP Start 配置集与实例配置文件相同)。

IS_ERS

false

仅在没有实现可升级资源的情况下用于 ASCS/ERS SAP Netweaver 安装,以允许 ASCS 在资源失败后查找在另一个集群节点上运行的 ERS。对于在 SAP NetWeaver 7.50 HA 认证(NW-HA-CLU-750; ENSA1)后实施用于管理 ERS 实例的资源,此参数应设为 true。这还包括在使用 ENSA1 时 NetWeaver 低于 7.50 的系统。

DIR_EXECUTABLE

null

查找 sapstartsrvsapcontrol 二进制文件的完全限定路径(只在 SAP 内核二进制文件的默认位置改变时才需要)。

DIR_PROFILE

null

查找 SAP START 配置集的完全限定路径(仅在实例配置文件的默认位置已更改时才需要)。

AUTOMATIC_RECOVER

false

SAPInstance 资源代理会尝试自动恢复失败的开始尝试。这可以通过终止正在运行的实例进程、删除 kill.sap 文件并执行 cleanipc 来完成。有时崩溃的 SAP 实例会留下一些进程和/或共享内存片段。将此选项设置为 true 将尝试在启动操作期间删除剩余的操作。

MONITOR_SERVICES

disp+work|msg_server|enserver|enrepserver|jcontrol|jstart

需要监控 SAP 实例的服务列表,以确定实例的健康状况。要监控更多/无数或 sapstartsrv 支持的其他服务,可以使用此参数更改列表。名称必须与命令 sapcontrol -nr [Instance-Nr] -function GetProcessList 和多个服务中使用的字符串匹配,可以指定(pipe)符号分隔的多个服务(此参数的值必须始终是要监控的服务的完整列表)。

可以通过运行 pcs resource describe SAPInstance 来获取完整的参数列表。

1.4.2. SAPDatabase 资源代理

SAPDatabase 资源代理可用于管理单个 Oracle、IBM DB2、SAP ASE 或 MaxDB 数据库实例,作为基于 SAP NetWeaver 的 HA 集群设置的一部分。如需更多信息,请参阅 RHEL High Availability 集群的支持政策 - 在 RHEL 8 中管理 SAP NetWeaver

SAPDatabase 资源代理不会直接运行任何数据库命令。它使用 SAP 主机代理 来控制数据库。因此,必须在每个集群节点上安装 SAP 主机代理。

由于 SAPDatabase 资源代理仅提供管理数据库实例的基本功能,因此如果数据库实例需要更多 HA 功能,建议使用数据库的 HA 功能(例如,Oracle RAC 和 IBM DB2 HA/DR)。

对于 S/4HANA HA 设置,建议使用 HANA 系统复制功能,使 HANA 实例比故障更加稳定。HANA 系统复制 HA 设置可以使用单独的集群来完成,也可以使用"成本优化的"S/4HANA HA 设置,其中 ASCSERS 实例由用于管理 HANA 系统复制设置的同一个 HA 集群管理。

1.4.2.1. 重要的 SAPDatabase 资源代理参数
Expand
属性名称必填默认值描述

SID

null

唯一的数据库系统标识符(通常与 SAP SID 相同)。

DBTYPE

null

要管理的数据库类型。有效值为: ADA (SAP MaxDB)、DB6 (IBM DB2)、ORA (Oracle DB)和 SYB (SAP ASE)。

DBINSTANCE

null

当数据库实例名称不等于 SID (如 Oracle DataGuard)时,必须使用特殊的数据库实现。

DBOSUSER

ada=taken from /etc/opt/sdb, DB6=db2SID, ORA=oraSID and oracle, SYB=sybSID, HDB=SIDadm

如果操作系统级别上的数据库进程没有使用默认的使用数据库类型的用户执行,则可以设置该参数。

STRICT_MONITORING

false

这控制资源代理如何监控数据库。如果设置为 true,它将使用 saphostctrl -function GetDatabaseStatus 测试数据库状态。如果设置为 false,则只监控操作系统进程。

MONITOR_SERVICES

Instance|Database|Listener

如果 STRICT_MONITORING 设为 true,则定义由 SAPDatabase 资源代理监控哪些服务。服务名称必须与 saphostctrl -function GetDatabaseStatus 命令的输出对应。

AUTOMATIC_RECOVER

false

如果将其设置为 truesaphostctrl -function StartDatabase 将始终使用 -force 选项调用。

可以通过运行 pcs resource describe SAPDatabase 获取参数的完整列表。

1.5. 多SID 支持(可选)

本文档中描述的设置也可用于在同一 HA 集群中为多个 SAP 环境(Multi-SID)管理 (A) SCS/ERS 实例。例如,包含 ABAP 和 Java 应用程序服务器实例(如 SAP Solution Manager)的 SAP 产品可能是多SID 集群的候选者。

但是,为了进行此类设置,需要考虑一些额外的注意事项。

1.5.1. 唯一的 SID 和实例号

为避免冲突,每个对 (A) SCS/ERS 实例都必须使用不同的 SID,并且每个实例都必须使用唯一的实例编号,即使它们属于不同的 SID。

1.5.2. 大小

每个 HA 集群节点必须满足 SAP 要求才能支持多个实例。

1.5.3. 安装

对于每个 (A) SCS/ERS 对,请重复第 4.5、4.6 和 4.7 节中记录的所有步骤。每个 (A) SCS/ERS 对将独立进行故障转移,遵循配置规则。

注意

对于 RHEL 8 的默认 pacemaker 配置,某些资源操作失败(例如,资源停止失败)将导致集群节点被隔离。这意味着,如果 HA 集群节点上一个 (A) SCS 实例的资源停止失败,则会导致在同一 HA 集群节点上运行的所有其他资源中断。请参阅 配置和管理高可用性集群中的 on-fail 属性的描述 - 第 21 章。Resource monitoring operations 以了解有关如何修改此行为的选项。

1.6. 支持政策

第 2 章 要求

2.1. 订阅和软件仓库

务必要在所有集群节点上保持订阅、内核和补丁级别相同,并确保启用了正确的存储库。

请参阅以下文档,了解如何启用在 RHEL 8 上运行 SAP NetWeaver 或 SAP S/4HANA 应用服务器所需的订阅和软件仓库的指南,并让它们由 RHEL HA Add-On: RHEL for SAP 订阅和软件仓库 管理。

2.2. 存储要求

由集群管理的 SAP S/4HANA 安装使用的目录必须根据 SAP 提供的准则来设置。如需更多信息,请参阅 SAP 目录

2.2.1. 本地目录

根据 SAP 的指导,应在每个节点上本地创建 /usr/sap/ SYS/、/usr/sap /SYS/ 和 /usr/sap/<SAPSID >/ 目录。虽然安装特定于节点的 SAP 系统后,/usr/sap/ sap/ 将包含一些额外的文件和目录(例如: /usr/sap/sapservices/usr/sap/hostctrl),/usr/sap/SYS/ 仅包含指向其他文件和目录的符号链接,而 /usr/sap/<SAPSID >/ 主要用于实例特定目录的挂载点。

2.2.2. 特定实例目录

对于 (A) SCSERS 以及由集群管理的任何其他应用服务器实例,必须在实例运行的节点上创建特定于实例的目录。例如:

  • (a) SCS:/usr/sap/<SAPSID>/ASCS<Ins#>/
  • es:/usr/sap/<SAPSID>/ERS<Ins#>/
  • App Server: /usr/sap/<SAPSID>/D<Ins#>/

集群配置必须包含管理实例目录的文件系统的资源,作为用于管理实例的资源组和虚拟 IP 的一部分,以便集群可以在实例应该运行的节点上自动挂载文件系统。

当将 SAN LUN 用于特定于实例的目录时,客户必须使用 HA-LVM 来确保实例目录一次只能挂载到一个节点。

用于管理逻辑卷的资源(如果使用 SAN LUNS),且必须始终配置文件系统,然后才能管理 SAP 实例,以确保当集群尝试启动实例本身时挂载文件系统。

NFS 外,使用共享文件系统(例如 GFS2)托管所有特定于实例的目录,并同时在所有集群节点上提供它们。本文档中描述的解决方案不支持它们。

当为特定目录使用 NFS 导出时,如果在 NFS 文件服务器上的同一目录树上创建目录,如 Azure NetApp Files (ANF)或 Amazon EFS 时,在配置 Filesystem 资源时必须使用选项 force_unmount=safe。这个选项将确保集群只停止在特定 NFS 导出上运行的进程,而不是停止创建导出的目录树上运行的所有进程(请参阅 pacemaker 资源的故障转移期间,FileFile 资源终止进程不使用文件系统 来获得更多信息)。

2.2.3. 共享目录

运行 SAP 系统的所有服务器上都必须提供以下目录:

  • /sapmnt/
  • /usr/sap/trans/

还必须在运行作为 SAP 系统一部分的服务的其他服务器上访问 /sapmnt/ 目录(例如,托管 HANA DB 实例或托管不由集群管理的其他应用服务器的服务器)。

要在托管同一 SAP 系统服务的所有服务器之间共享 /sapmnt//usr/sap/trans/ 目录,可以使用以下方法之一:

共享目录可以通过 /etc/fstab 静态挂载,或者可由集群管理挂载(在这种情况下,必须确保集群在集群节点上挂载 /sapmnt/ 目录,然后才能通过设置适当的限制来启动任何 SAP 实例)。

2.3. 隔离/STONITH

RHEL High Availability 集群的支持政策 - 隔离/STONITH 的一般要求,每个集群节点上必须启用一个正常工作的隔离/STONITH 设备,以便完全支持使用 RHEL HA 附加组件的 HA 集群设置。

要使用的隔离/STONITH 设备取决于集群运行的平台。有关隔离代理的建议,请查看 RHEL 高可用性集群中的 fence /STONITH 部分,或咨询您的硬件或云供应商以查找要在其平台上使用的隔离设备

注意

使用 fence_scsi/fence_mpath 作为管理 SAP NetWeaver/S/4HANA 应用程序服务器实例的隔离设备不被支持,因为 RHEL 高可用性集群支持政策 - fence_scsi 和 fence_mpath 这些隔离设备只能用于管理共享存储的集群设置,该存储由多个客户端同时访问,以读取和写入。由于用于管理 SAP NetWeaver/S/4HANA 的 HA 集群的主要目的是管理 SAP 应用程序服务器实例,并且不是此类环境中需要的共享目录,因此使用 fence_scsi/fence_mpath 可能会导致 SAP 实例在需要被隔离时停止(因为 fence_scsi/fence_mpath 通常仅阻止对集群管理的存储设备的访问)。

2.4. 仲裁

pacemaker 提供了一些内置机制来确定集群是否合法,但在有些情况下,可能需要在集群设置中添加额外的"quorum devices",以帮助集群决定在出现"脑裂"的情况时,应保持和运行集群。

对于用于管理 SAP 应用程序服务器实例的 HA 集群设置,默认不需要仲裁设备,但可以根据需要将仲裁设备添加到此类设置中。

设置仲裁设备的选项因配置而异。如需更多信息,请参阅以下指南:

第 3 章 安装 SAP 应用程序服务器实例

3.1. 本文档中使用的配置选项

以下是本文档中用于实例的配置选项。请根据您的本地要求调整这些选项。

对于 HA 集群节点以及 (A) SCSERS 实例,使用以下值:

1st HA cluster node name:      node1
2nd HA cluster node name:      node2

SID:                    S4H

ASCS Instance number:   20
ASCS virtual hostname:  s4ascs
ASCS virtual IP address: 192.168.200.101

ERS Instance number:    29
ERS virtual hostname:   s4ers
ASCS virtual IP address: 192.168.200.102
Copy to Clipboard Toggle word wrap

对于可选的主应用服务器(PAS)和其他应用服务器(AAS)实例,会使用以下值:

PAS Instance number:    21
PAS virtual hostname:  s4pas
PAS virtual IP address: 192.168.200.103

AAS Instance number:    22
AAS virtual hostname:  s4aas
AAS virtual IP address: 192.168.200.104
Copy to Clipboard Toggle word wrap

3.2. 准备集群节点以安装 SAP 实例

在开始安装前,请确保:

  • RHEL 8 根据来自 SAP 和红帽的建议,在所有 HA 集群节点上安装并配置,以便在 RHEL 8 上运行 SAP 应用程序服务器实例。
  • RHEL for SAP Applications 或 RHEL for SAP Solutions 订阅已激活,所有 HA 集群节点上都启用了所需的存储库,如 RHEL for SAP Subscriptions 和 Repositories 所述。 
  • 共享存储和实例目录存在于正确的挂载点。
  • SAP 实例使用的虚拟主机名和 IP 地址都可以在方向解析,并且虚拟 IP 地址必须可以被访问。
  • 安装 SAP 实例的每个 HA 集群节点上都可以访问 SAP 安装介质。

可使用 Ansible 和 rhel-system-roles-sap 系统角色部分自动化这些设置步骤。有关此内容的更多信息,请参阅 SAP 的 Red Hat Enterprise Linux 系统角色

3.3. 安装 SAP 实例

使用软件置备管理器(SWPM),按照以下顺序安装实例:

  • (a) SCS 实例
  • ERS 实例
  • DB 实例
  • PAS 实例
  • AAS 实例

以下章节仅提供一些特定建议,安装由本文档中描述的 HA 集群设置管理的 SAP 实例时应遵循这些建议。如需了解如何安装 SAP NetWeaver 或 S/4HANA 应用程序服务器实例,请查看官方 SAP 安装指南。

3.3.1. 在 node1 上安装 (A) SCS

SAP 实例所需的本地目录和挂载点必须在安装 (A) SCS 实例的 HA 集群节点上创建:

/sapmnt/
/usr/sap/
/usr/sap/SYS/
/usr/sap/trans/
/usr/sap/S4H/ASCS20/
Copy to Clipboard Toggle word wrap

在开始安装前,必须手动挂载共享目录和实例目录。

另外,(A) SCS 实例的虚拟 IP 地址必须在节点 1 上启用,且必须验证 ERS 实例的虚拟主机是否解析为虚拟 IP 地址。

运行 SAP 安装程序时,请确保指定用于 (A) SCS 实例的虚拟主机名:

[root@node1]# ./sapinst SAPINST_USE_HOSTNAME=s4ascs
Copy to Clipboard Toggle word wrap

选择安装 (A) SCS 实例的 High-Availability System 选项:

text

3.3.2. 在 node2 上安装 ERS

SAP 实例所需的本地目录和挂载点必须在安装 ERS 实例的 HA 集群节点上创建:

/sapmnt/
/usr/sap/
/usr/sap/SYS/
/usr/sap/trans/
/usr/sap/S4H/ERS29
Copy to Clipboard Toggle word wrap

在开始安装前,必须手动挂载共享目录和实例目录。

另外,必须在节点 2 上启用 ERS 实例的虚拟 IP 地址,并且必须验证 ERS 实例的虚拟主机名是否解析为虚拟 IP 地址。

确保在开始安装时为 ERS 实例指定虚拟主机名:

[root@node2]# ./sapinst SAPINST_USE_HOSTNAME=s4ers
Copy to Clipboard Toggle word wrap

选择安装 ERS 实例的 High-Availability System 选项:

text

3.3.3. 安装主/额外应用程序服务器实例

SAP 实例所需的本地目录和挂载点必须在安装主或额外应用程序服务器实例的 HA 集群节点上创建:

/sapmnt/
/usr/sap/
/usr/sap/SYS/
/usr/sap/trans/
/usr/sap/S4H/
/usr/sap/S4H/D<Ins#>
Copy to Clipboard Toggle word wrap

在开始安装前,必须手动挂载共享目录和实例目录。

另外,必须在 HA 集群节点上启用应用服务器实例的虚拟 IP 地址,并且必须验证应用服务器实例的虚拟主机名是否解析为虚拟 IP 地址。

在启动安装程序时指定实例的虚拟主机名:

[root@node<X>]# ./sapinst SAPINST_USE_HOSTNAME=<virtual hostname of instance>
Copy to Clipboard Toggle word wrap

选择 High-Availability System 选项用于安装应用服务器实例。

3.4. 安装后

3.4.1. (a) SCS 配置文件修改

(A) SCS 实例配置集必须被修改,以防止由实例的 sapstartsrv 进程自动重启 enqueue 服务器进程,因为实例将由集群管理。 

要修改 (A) SCS 实例配置集,请运行以下命令:

[root@node1]# sed -i -e 's/Restart_Program_01/Start_Program_01/' /sapmnt/S4H/profile/S4H_ASCS20_s4ascs
Copy to Clipboard Toggle word wrap

3.4.2. ERS 配置文件修改

必须修改 ERS 实例配置文件,以防止由实例的 sapstartsrv 自动重启 enqueue 复制服务器进程,因为 ERS 实例将由集群管理。 

要修改 ERS 实例配置集,请运行以下命令:

[root@node2]# sed -i -e 's/Restart_Program_00/Start_Program_00/' /sapmnt/S4H/profile/S4H_ERS29_s4ers
Copy to Clipboard Toggle word wrap

3.4.3. 更新 /usr/sap/sapservices 文件

要防止由 HA 集群在控制 HA 集群外启动的 SAP 实例,请确保在所有集群节点上的 /usr/sap/sapservices 文件中注释掉了以下行:

#LD_LIBRARY_PATH=/usr/sap/S4H/ERS29/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/S4H/ERS29/exe/sapstartsrv pf=/usr/sap/S4H/SYS/profile/S4H_ERS29_s4ers -D -u s4hadm

#LD_LIBRARY_PATH=/usr/sap/S4H/ASCS20/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/S4H/ASCS20/exe/sapstartsrv pf=/usr/sap/S4H/SYS/profile/S4H_ASCS20_s4ascs -D -u s4hadm

#LD_LIBRARY_PATH=/usr/sap/S4H/D21/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/S4H/D21/exe/sapstartsrv pf=/usr/sap/S4H/SYS/profile/S4H_D21_s4hpas -D -u s4hadm

#LD_LIBRARY_PATH=/usr/sap/S4H/D22/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/S4H/D22/exe/sapstartsrv pf=/usr/sap/S4H/SYS/profile/S4H_D22_s4haas -D -u s4hadm
Copy to Clipboard Toggle word wrap

需要挂载实例特定目录的挂载点,且所有 HA 集群节点上的用户和组所有权必须设置为 root:root

[root@node1]# mkdir /usr/sap/S4H/ERS29/
[root@node1]# chown root:root /usr/sap/S4H/ERS29/

[root@node2]# mkdir /usr/sap/S4H/ASCS20
[root@node2]# chown root:root /usr/sap/S4H/ASCS20

[root@node<x>]# mkdir /usr/sap/S4H/D<Ins#>
[root@node<x>]# chown root:root /usr/sap/S4H/D<Ins#>
Copy to Clipboard Toggle word wrap

使用 sapcontrol' 停止 (A) SCSERS 实例,卸载实例特定目录,然后将它们挂载到另一个节点上:

/usr/sap/S4H/ASCS20/
/usr/sap/S4H/ERS29/
/usr/sap/S4H/D<Ins#>/
Copy to Clipboard Toggle word wrap

验证使用 sapcontrol 的手动启动和停止所有 SAP 实例是否在所有 HA 集群节点上正常工作,并且 SAP 实例使用 SAP 提供的工具正确运行。

在每个集群节点上运行以下命令,以验证 SAP 主机代理是否具有相同的版本,并满足最低版本要求:

[root@node<x>]# /usr/sap/hostctrl/exe/saphostexec -version
Copy to Clipboard Toggle word wrap

如果需要更新 SAP 主机代理,请检查 SAP Note 1031096-Installing Package SAPHOSTAGENT

3.4.7. 安装永久 SAP 许可证密钥

为确保 SAP 实例在故障转移后继续运行,可能需要根据每个集群节点的硬件密钥安装几个 SAP 许可证密钥。如需更多信息,请参阅 SAP Note 1178686 - Linux: 生成 SAP 硬件密钥 的替代方法。

如果由集群管理的 SAP 实例是 启用 systemd 的,则需要进行额外的配置更改,以确保 systemd 不会干扰 HA 集群管理 SAP 实例。请查看第 2 部分。Red Hat HA Solutions for SAP 中的 Systemd-Based SAP Startup Framework for information。

第 4 章 设置集群

4.1. 在每个节点上执行基本集群安装

请参阅 配置和管理高可用性集群,首先设置 pacemaker 集群。

请确定遵循 RHEL 高可用性集群支持政策中的指南 - 隔离/STONITH 设置的一般要求。有关不同平台支持的隔离/STONITH 代理的信息,请参阅 Cluster Platform 和 Architectures

本指南的其余部分将假设以下工作正常:

4.2. 配置常规集群属性

为了避免在一个集群节点上运行以下命令来为 resource-stickinessmigration-threshold 参数设置默认值,以避免不必要的资源故障切换: 

[root@node1]# pcs resource defaults update resource-stickiness=1
[root@node1]# pcs resource defaults update migration-threshold=3
Copy to Clipboard Toggle word wrap
注意

resource-stickiness=1 将鼓励资源保持运行,而 migration-threshold=3 将导致资源在 3 失败后移至新节点。3 通常足以防止资源被过早故障转移到另一节点。这也可确保资源故障切换时间保持在可控制的限制中。 

SAPInstanceSAPDatabase 资源代理通过单独的 resource-agents-sap 软件包提供。运行以下命令,以便在每个 HAcluster 节点上安装它: 

[root@node<x>]# dnf install resource-agents-sap
Copy to Clipboard Toggle word wrap

4.4. 配置对共享文件系统的访问

要使 SAP 实例正常工作,所有集群节点上都必须提供以下共享文件系统:

/sapmnt
/usr/sap/trans
Copy to Clipboard Toggle word wrap

共享文件系统可以由集群管理,或者可以通过将它们添加到每个群集节点上的 /etc/fstab 来静态挂载。

4.4.1. 配置由集群管理的共享文件系统

要从所有集群节点上的外部 NFS 服务器挂载共享文件系统,可以创建克隆的 Filesystem 集群资源,如下所示:

[root@node1]# pcs resource create s4h_fs_sapmnt Filesystem device='<NFS_Server>:<sapmnt_nfs_share>' directory='/sapmnt' fstype='nfs' clone interleave=true 
[root@node1]# pcs resource create s4h_fs_sap_trans Filesystem device='<NFS_Server>:<sap_trans_nfs_share>' directory='/usr/sap/trans' fstype='nfs' clone interleave=true
Copy to Clipboard Toggle word wrap

4.4.2. 配置在集群外管理的共享文件系统

如果共享文件系统不能由集群管理,则必须确保在 pacemaker 服务启动之前可用。

请参阅 Chapter 13。确定运行集群资源的顺序,有关如何确保在集群外管理共享文件系统时,会在集群尝试启动需要访问共享文件系统的任何资源前挂载。 

4.5. 配置 (A) SCS 资源组

要允许应用服务器和其他客户端连接到实例当前运行的 HA 集群节点上的 (A) SCS 实例,当(A) SCS 实例从一个 HA 集群节点移到另一个节点时,集群需要移动 (A) SCS 实例。

为此,需要创建管理 VIP 的资源,作为用于管理 (A) SCS 实例的资源组的一部分。

请使用适当的资源代理来管理虚拟 IP 地址,具体取决于运行 HA 集群的平台。 

在物理服务器或虚拟机上,可以使用 IPaddr2 资源代理来创建资源:

[root@node1]# pcs resource create s4h_vip_ascs20 IPaddr2 ip=192.168.200.101 --group s4h_ASCS20_group
Copy to Clipboard Toggle word wrap

4.5.2. 创建用于管理 (A) SCS 实例目录的资源

由于 SAP 要求实例目录仅在运行实例的 HA 集群节点上可用,因此需要设置 HA 集群资源来管理实例目录的文件系统。 

注意

即使实例目录存储在 NFS 上,仍然需要创建资源,以允许 HA 集群仅在运行 SAP 实例的 HA 集群节点上挂载 NFS 导出。

4.5.2.1. NFS

如果 (A) SCS 实例的实例目录位于 NFS 上,则要将其作为管理 (A) SCS 实例的资源组的一部分进行管理的资源可以使用以下命令来创建:

[root@node1]# pcs resource create s4h_fs_ascs20 Filesystem device='<NFS_Server>:<s4h_ascs20_nfs_share>' directory=/usr/sap/S4H/ASCS20 fstype=nfs force_unmount=safe --group s4h_ASCS20_group \
  op start interval=0 timeout=60 \
  op stop interval=0 timeout=120 \
  op monitor interval=200 timeout=40
Copy to Clipboard Toggle word wrap
4.5.2.2. HA-LVM

当使用 HA-LVM 管理 (A) SCS 实例的实例目录时,必须根据文档中的" 高可用性 LVM (HA-LVM)配置及其实施方式"的指南进行配置?

首先,必须添加 LVM 激活 集群资源,然后添加 Filesystem 集群资源: 

[root@node1]# pcs resource create s4h_fs_ascs20_lvm LVM-activate volgrpname='<ascs_volume_group>' vg_access_mode=system_id --group s4h_ASCS20_group

[root@node1]# pcs resource create s4h_fs_ascs20 Filesystem device='/dev/mapper/<ascs_logical_volume>' directory=/usr/sap/S4H/ASCS20 fstype=ext4 --group s4h_ASCS20_group
Copy to Clipboard Toggle word wrap

4.5.3. 创建用于管理 (A) SCS 实例的资源

[root@node1]# pcs resource create s4h_ascs20 SAPInstance InstanceName="S4H_ASCS20_rhascs" START_PROFILE=/sapmnt/S4H/profile/S4H_ASCS20_rhascs AUTOMATIC_RECOVER=false \
  meta resource-stickiness=5000 migration-threshold=1 \
  --group s4h_ASCS20_group \
  op monitor interval=20 on-fail=restart timeout=60 \
  op start interval=0 timeout=600 \
  op stop interval=0 timeout=600
Copy to Clipboard Toggle word wrap

resource-stickiness=5000 用于平衡故障转移约束与 ERS 资源,以便资源在其启动的节点上保留,且不会在群集 uncontrollably 迁移。

migration-threshold=1 确保 (A) SCS 实例在检测到问题时切换到另一个节点,而不是在同一 HA 集群节点上重启。对于 ENSA2 设置这个选项,因为允许 ENSA2 重启同一 HA 集群节点上的 (A) SCS 实例。 

创建资源组的所有资源后,在组中添加一个资源粘性,以确保 (A) SCS 实例在可能的情况下保留在 HA 集群节点上:

[root@node1]# pcs resource meta s4h_ASCS20_group resource-stickiness=3000
Copy to Clipboard Toggle word wrap

4.6. 配置 ERS 资源组

虽然应用服务器没有直接访问 ERS 实例,但它仍然需要一个虚拟 IP 来允许 SAP 管理工具连接到当前运行的 HA 集群节点上的 ERS 实例。因此,当 (A) SCS 实例从一个 HA 集群节点移到另一个时,集群需要移动分配给实例的虚拟 IP 地址(VIP)。

为此,需要创建管理 VIP 的资源,作为用于管理 ERS 实例的资源组的一部分。

请使用适当的资源代理来管理虚拟 IP 地址,具体取决于运行 HA 集群的平台。 

在物理服务器或虚拟机上,可以使用 IPaddr2 资源代理来创建资源:

[root@node1]# pcs resource create s4h_vip_ers29 IPaddr2 ip=192.168.200.102 --group s4h_ERS29_group
Copy to Clipboard Toggle word wrap

4.6.2. 创建用于管理 ERS 实例目录的资源

由于 SAP 要求实例目录仅在运行实例的 HA 集群节点上可用,因此需要设置 HA 集群资源来管理实例目录的文件系统。 

注意

即使实例目录存储在 NFS 上,仍然需要创建资源,以允许 HA 集群仅在运行 SAP 实例的 HA 集群节点上挂载 NFS 导出。

4.6.2.1. NFS

如果 ERS 实例的实例目录位于 NFS 上,则可以使用以下命令创建作为管理 ERS 实例的资源组的一部分来进行管理的资源:

[root@node1]# pcs resource create s4h_fs_ers29 Filesystem device='<NFS_Server>:<s4h_ers29_nfs_share>' directory=/usr/sap/S4H/ERS29 fstype=nfs force_unmount=safe --group s4h_ERS29_group \
  op start interval=0 timeout=60 \
  op stop interval=0 timeout=120 \
  op monitor interval=200 timeout=40
Copy to Clipboard Toggle word wrap
4.6.2.2. HA-LVM

当使用 HA-LVM 管理 ERS 实例的实例目录时,必须根据知识库文章 什么是高可用性 LVM (HA-LVM)配置以及如何实现它?

首先,必须添加 LVM 激活 集群资源,然后添加 Filesystem 集群资源:

[root@node1]# pcs resource create s4h_fs_ers29_lvm LVM-activate volgrpname='<ers_volume_group>' vg_access_mode=system_id --group s4h_ERS29_group

# pcs resource create s4h_fs_ers29 Filesystem device='/dev/mapper/<ers_logical_volume>' directory=/usr/sap/S4H/ERS29 fstype=ext4 --group s4h_ERS29_group
Copy to Clipboard Toggle word wrap

4.6.3. 创建用于管理 ERS 实例的资源

创建 ERS 实例集群资源:

[root@node1]# pcs resource create s4h_ers29 SAPInstance InstanceName="S4H_ERS29_rhers" START_PROFILE=/sapmnt/S4H/profile/S4H_ERS29_rhers AUTOMATIC_RECOVER=false IS_ERS=true --group s4h_ERS29_group \
  op monitor interval=20 on-fail=restart timeout=60 \
  op start interval=0 timeout=600 \
  op stop interval=0 timeout=600
Copy to Clipboard Toggle word wrap
注意

对于 ENSA1 部署,IS_ERS=true 属性是必须的。有关 IS_ERS 的更多信息,请参阅 IS_ERS 属性如何在具有 Standalone Enqueue Server (ENSA1 和 ENSA2)的 SAP NetWeaver 集群上工作?

4.7. 创建限制

资源组 s4h_ASCS20_groups4h_ERS29_group 应该尝试在同一节点上运行。组的顺序很重要。

[root@node1]# pcs constraint colocation add s4h_ERS29_group with s4h_ASCS20_group -5000
Copy to Clipboard Toggle word wrap

使用 ENSA1 时,必须确保 (A) SCS 实例在故障转移时移至运行 ERS 实例的节点。

[root@node1]# pcs constraint location s4h_ascs20 rule score=2000 runs_ers_S4H eq 1
Copy to Clipboard Toggle word wrap

4.7.3. 为 (A) SCS 和 ERS 资源组创建顺序约束

在启动用于管理 (A) SCS 实例的资源组后,停止用于管理 ERS 实例的资源组,如果 pacemaker 决定启动资源组来管理 (A) SCS 实例,同时停止用于管理 ERS 实例的资源组:

[root@node1]# pcs constraint order start s4h_ASCS20_group then stop s4h_ERS29_group symmetrical=false kind=Optional
Copy to Clipboard Toggle word wrap
注意

由于使用 symmetrical=falsekind=Optional,因此可能存在这个约束无效的情况。如需更多信息,请参阅 确定运行集群资源的顺序

4.7.4. 为集群管理的 /sapmnt 资源创建顺序限制

如果共享文件系统 /sapmnt 由集群管理,则以下限制可确保仅在 /sapmnt 文件系统可用后启动用于管理 (A) SCSERS 实例的资源组:

[root@node1]# pcs constraint order s4h_fs_sapmnt-clone then s4h_ASCS20_group
[root@node1]# pcs constraint order s4h_fs_sapmnt-clone then s4h_ERS29_group
Copy to Clipboard Toggle word wrap

当使用 HA 集群管理基于 SAP NetWeaver 的 SAP 产品时,仍使用传统的数据库,如 Oracle、IBM DB2、SAP ASE 或 SAP MaxDB,也可以让数据库实例由集群管理。 

本章介绍了如何设置资源组,以使用 SAPDatabase 资源代理和虚拟 IP 地址和它所需的文件系统管理单个数据库实例。

本章中描述的示例设置使用 SAPSID RH1 而不是 S4H,因为 SAPDatabase 资源代理不能与 S/4HANA 设置一起使用。

要创建用于管理用于访问数据库实例的虚拟 IP 地址的资源,该主机将作为 rh1_SAPDatabase_group 的一部分:

[root]# pcs resource create rh1_vip_db IPaddr2 ip=192.168.200.115 --group rh1_SAPDatabase_group
Copy to Clipboard Toggle word wrap

数据库实例使用的目录只能挂载到运行数据库实例的 HA 集群节点上,以避免数据库实例可能会意外在另一个系统上启动,这会导致数据崩溃。 

根据管理数据库实例使用的目录的存储方式,必须使用不同的方法来创建管理数据库目录的资源。 

注意

即使实例目录存储在 NFS 上,仍然需要创建资源,以允许 HA 集群仅在运行数据库实例的 HA 集群节点上挂载 NFS 导出。

4.8.2.1. NFS

如果数据库实例使用的目录位于 NFS 上,则必须使用以下命令为每个目录创建一个资源作为管理数据库实例的资源组的一部分:

[root@node1]# pcs resource create rh1_fs_db Filesystem device='<NFS_Server>:<rh1_db_nfs_share>' directory=/sapdb/RH1 fstype=nfs force_unmount=safe --group rh1_SAPDatabase_group \
  op start interval=0 timeout=60 \
  op stop interval=0 timeout=120 \
  op monitor interval=200 timeout=40
Copy to Clipboard Toggle word wrap
4.8.2.2. HA-LVM

当使用 HA-LVM 管理数据库实例使用的目录时,必须根据文档中的内容" 高可用性 LVM (HA-LVM)配置以及如何实现它?

首先,必须添加 LVM 激活 集群资源,然后添加 Filesystem 集群资源:

[root]# pcs resource create rh1_lvm_db LVM-activate  volgrpname=vg_db vg_access_mode=system_id --group rh1_SAPDatabase_group
[root]# pcs resource create rh1_fs_db Filesystem device=/dev/vg_db/lv_db directory=/sapdb/RH1 fstype=xfs --group rh1_SAPDatabase_group
Copy to Clipboard Toggle word wrap

如果将多个文件系统用于数据库目录,则必须为每个目录创建一个单独的 Filesystem 集群资源。

4.8.3. 配置 SAPDatabase 集群资源

在添加了虚拟 IP 地址和数据库实例所需的文件系统后,管理数据库实例的 SAPDatabase 集群资源可以添加到资源组中:

[root]# pcs resource create rh1_SAPDatabase SAPDatabase DBTYPE="ADA" SID="RH1" STRICT_MONITORING="TRUE" AUTOMATIC_RECOVER="TRUE" --group rh1_SAPDatabase_group
Copy to Clipboard Toggle word wrap

这部分论述了如何配置资源组以管理主应用服务器(PAS)实例以及实例目录的关联 VIP 和文件系统,以防 PAS 实例也应该由 HA 集群管理。同样的配置也可以用于应该由 HA 集群管理的其他应用服务器(AAS)实例。

要允许其他应用服务器和客户端通过 HA 集群管理 PAS/AAS 实例,当 PAS/AAS 实例从一个 HA 集群节点移到另一个 HA 集群节点时,集群需要移动给实例的虚拟 IP 地址(VIP)。

为此,需要创建管理 VIP 的资源,作为用于管理 PAS/AAS 实例的资源组的一部分。

请使用适当的资源代理来管理虚拟 IP 地址,具体取决于运行 HA 集群的平台。

在物理服务器或虚拟机上,可以使用 IPaddr2 资源代理来创建资源:

[root@node1]# pcs resource create s4h_vip_pas_d21 IPaddr2 ip=192.168.200.103 --group s4h_PAS_D21_group
Copy to Clipboard Toggle word wrap

由于 SAP 要求实例目录仅在运行实例的 HA 集群节点上可用,因此需要设置 HA 集群资源来管理实例目录的文件系统。 

注意

即使实例目录存储在 NFS 上,仍然需要创建资源,以允许 HA 集群仅在运行 SAP 实例的 HA 集群节点上挂载 NFS 导出。

4.9.2.1. NFS

如果 PAS/AAS 实例的实例目录位于 NFS 上,则可通过以下命令来创建该资源作为管理 PAS/AAS 实例的资源组的一部分:

[root@node1]# pcs resource create s4h_fs_pas_d21 Filesystem device='<NFS_Server>:<s4h_pas_d21_nfs_share>' directory=/usr/sap/S4H/D21 fstype=nfs force_unmount=safe --group s4h_PAS_D21_group \
  op start interval=0 timeout=60 \
  op stop interval=0 timeout=120 \
  op monitor interval=200 timeout=40
Copy to Clipboard Toggle word wrap
4.9.2.2. HA-LVM

当使用 HA-LVM 管理 PAS/AAS 实例的实例目录时,必须根据知识库文章 什么是高可用性 LVM (HA-LVM)配置以及如何实现它?

首先,必须添加 LVM 激活集群资源,然后添加 Filesystem 集群资源:

[root@node1]# pcs resource create s4h_lvm_pas_d21 LVM-activate volgrpname=vg_d21 vg_access_mode=system_id --group s4h_PAS_D21_group
[root@node1]# pcs resource create s4h_fs_pas_d21 Filesystem device=/dev/vg_d21/lv_d21 directory=/usr/sap/S4H/D21 fstype=xfs --group s4h_PAS_D21_group
Copy to Clipboard Toggle word wrap

4.9.3. 配置 PAS/AAS SAPInstance 集群资源

要让 pacemaker 管理 PAS 或 AAS 实例,可以使用与 (A) SCS/ERS 实例相同的 SAPInstance 资源代理。PAS/AAS 实例与 (A) SCS/ERS 实例设置相比,一个简单的实例,并且需要较少的属性才能配置。 

查看下面的命令,了解如何为 D21 实例创建 PAS 实例,并将其放在 s4h_PAS_D21_group 资源组的末尾。

[root@node1]# pcs resource create s4h_pas_d21 SAPInstance InstanceName="S4H_D21_s4h-pas" DIR_PROFILE=/sapmnt/S4H/profile START_PROFILE=/sapmnt/S4H/profile/S4H_D21_s4h-pas --group s4h_PAS_D21_group
Copy to Clipboard Toggle word wrap

4.9.4. 配置限制

4.9.4.1. 为 PAS/AAS 资源组配置顺序限制

PAS/AAS 实例需要 (A) SCS 和数据库实例才能运行,然后才能正确启动。以下小节演示了如何根据 SAP NetWeaver / S/4HANA 使用的不同类型的数据库实例设置所需的限制。

4.9.4.1.1. 使用 s4h_SAPDatabase_group的部署

对于具有一个集群资源组的配置,它将启动数据库所需的所有资源。例如,这里的 SAPDatabase 资源代理用于管理数据库,并且是数据库组 rh1_SAPDatabase_group 的一部分。以下命令将创建约束,该限制仅在 (A) SCS 实例被提升后以及数据库组 rh1_SAPDatabase_group 正在运行后启动整个 rh1_PAS_D21_group

[root@node1]# pcs constraint order rh1_SAPDatabase_group then rh1_PAS_D21_group kind=Optional symmetrical=false
[root@node1]# pcs constraint order start rh1_ASCS20_group then rh1_PAS_D21_group kind=Optional symmetrical=false
Copy to Clipboard Toggle word wrap
4.9.4.1.2. 使用 SAP HANA 作为数据库部署

当使用由集群管理的系统复制(SR)配置的 SAP HANA 数据库时,以下限制将确保整个 s4h_PAS_D21_D21_group 组 仅提升 (A) SCS 实例,当 SAP HANA SAPHana_S4H_02-master 被提升时。

[root@node1]# pcs constraint order promote SAPHana_S4H_02-master then s4h_PAS_D21_group Kind=Optional symmetrical=false
[root@node1]# pcs constraint order start s4h_ASCS20_group then s4h_PAS_D21_group Kind=Optional symmetrical=false
Copy to Clipboard Toggle word wrap

要确保 PAS 和 AAS 实例在两个节点运行时不会在同一节点上运行,您可以使用以下命令添加负 colocation 约束:

[root@node1]# pcs constraint colocation add s4h_AAS_D22_group with s4h_PAS_D21_group score=-1000
Copy to Clipboard Toggle word wrap

-1000 的分数是确保在只有 1 个节点可用时,PAS/AAS 实例将继续在剩余的 1 节点上运行。在这种情况下,如果您想要关闭 AAS 实例,您可以使用 score=-INFINITY 来强制执行此条件。

如果共享文件系统 /sapmnt 由集群管理,则以下约束可确保仅在 /sapmnt 文件系统可用后启动用于管理 PAS/AAS 实例的资源组:

[root@node1]# pcs constraint order s4h_fs_sapmnt-clone then s4h_PAS_D21_group
Copy to Clipboard Toggle word wrap

对于带有 ENSA2 的 SAP S/4HANA,可以使用超过两个 HA 集群节点来管理 ASCSERS 实例。如果应该添加额外的集群节点,以便在它们运行的节点存在问题时,请使用以下部分中的指南来允许额外的集群节点具有更大的灵活性。 

4.10.1. 操作系统配置

在资源、订阅、操作系统配置等方面,创建与前两个节点相同的节点。 

在示例中,节点的主机名是 node3。确保每个集群节点上的 /etc/hosts 文件包含所有集群节点的主机名和 IP 地址,以及由 HA 集群管理的所有 SAP 实例的虚拟主机名和虚拟 IP 地址。

确保将 /etc/services 中的 SAP 相关条目从前两个节点之一复制到第三个节点。

4.10.2. 创建用户和组

创建与其它节点上使用的 SAP 实例相同的用户和组。例如:

Groups in /etc/group:
sapsys:x:1010:
sapinst:x:1011:root,s4hadm

Users in /etc/passwd:
s4hadm:x:1020:1010:SAP System Administrator:/home/s4hadm:/bin/csh
sapadm:x:1001:1010:SAP System Administrator:/home/sapadm:/bin/false
Copy to Clipboard Toggle word wrap

4.10.3. 为共享文件系统创建本地目录和挂载点

创建所有能够在额外 HA 集群节点上运行的实例所需的所有挂载点:

/sapmnt
/usr/sap/
/usr/sap/SYS/
/usr/sap/trans/
/usr/sap/S4H/
/usr/sap/S4H/ASCS20/
/usr/sap/S4H/ERS29/
/usr/sap/S4H/D<Ins#>/
Copy to Clipboard Toggle word wrap

确保将所有目录的用户和组所有权设置为与其他集群节点上相同的用户和组,并将本地目录(如 g.、/usr/sap/SYS)的内容从其他集群节点中复制。

如果 /sapmnt/usr/sap/trans 被静态挂载到现有的 HA 集群节点上,则这些文件系统还必须添加到附加 HA 集群节点上的 /etc/fstab 中,之后必须挂载文件系统。

如果 /sapmnt/usr/sap/trans 由集群管理,则必须更新集群配置,以便该文件系统也会挂载到额外的 HA 集群节点上。

要让节点作为集群的一部分,并能够管理 SAP 实例,请安装所需的软件包:

[root@node3]# dnf install pcs pacemaker resource-agents-sap
Copy to Clipboard Toggle word wrap

4.10.5. 在集群中添加节点

在现有集群的一个节点上添加第三个节点:

[root@node1]# pcs cluster auth node3
Username: hacluster
Password:

[root@node1]# pcs cluster node add node3
Copy to Clipboard Toggle word wrap

4.10.6. 更新隔离/STONITH 配置使其包含第三节点

根据 STONITH 设置,您可能需要更新 STONITH 资源,使其包含第 3 个 HA 集群节点。

在将任何资源移动到新的 HA 集群节点前,请使用以下命令验证是否可以从其中一个现有 HA 集群节点隔离 HA 集群新节点:

[root@node1]# pcs stonith fence node3
Copy to Clipboard Toggle word wrap

4.10.7. 更新 ERS 资源配置

要确保 ERS 实例保留在它启动的节点上,且不会在集群中迁移,请为该资源设置 resource-stickiness

[root@node1]# pcs resource meta s4h_ers29 \ resource-stickiness=3000
Copy to Clipboard Toggle word wrap

要允许 SAP 管理员管理由 HA 集群设置控制的 SAP 应用程序服务器实例,如 SAP Landscape Management (LaMa) 的工具,必须为由 HA 集群管理的每个 SAP 应用程序服务器实例启用 SAP HA 接口 (例如,HA 集群),以确保 HA 集群了解由 SAP 管理工具执行的任何操作,这将影响管理 SAP 实例的集群资源(例如: 如果它管理的 SAP 应用程序服务器实例正在通过 SAP LaMa 启动或停止,则需要通知 HA 集群。

请参阅 如何为由 RHEL HA 附加组件管理的 SAP ABAP 应用程序服务器实例启用 SAP HA 接口? 以了解有关如何配置 SAP HA 接口的说明。

4.12. 启用集群在引导时自动启动(可选)

默认情况下,HA 集群不会在操作系统引导时自动启用,它需要在隔离并重启群集节点后手动启动。

可使用以下命令启用所有集群节点上的所有集群组件的自动启动:

[root@node1]# pcs cluster enable --all
Copy to Clipboard Toggle word wrap
注意

在某些情况下,在节点重启后,集群会自动启动会很有用。例如,如果集群资源需要的文件系统出现问题,则需要先修复文件系统,然后才能再次使用它。使用集群自动启动,但会失败,因为文件系统无法正常工作,可能会导致更多问题。

第 5 章 测试集群配置

在生产环境中放置 HA 集群设置前,建议执行以下测试,以确保 HA 集群设置按预期工作。

这些测试还应作为常规 HA/DR 深入的一部分重复,以确保集群仍按预期工作,并且管理员熟悉将设置恢复到正常操作过程中出现正常状态的流程,或者需要手动维护设置。

5.1. 使用 pcs 命令手动移动 ASCS 实例

验证 pacemaker 集群是否能够按需将实例移到其他 HA 集群节点。

  • 测试先决条件

    • 两个集群节点都在线,在不同 HA 集群节点上运行的 ASCSERS 的资源组:

        * Resource Group: S4H_ASCS20_group:
          * S4H_lvm_ascs20    (ocf:heartbeat:LVM-activate):    Started node1
          * S4H_fs_ascs20     (ocf:heartbeat:Filesystem): Started node1
          * S4H_vip_ascs20    (ocf:heartbeat:IPaddr2):         Started node1
          * S4H_ascs20        (ocf:heartbeat:SAPInstance):     Started node1
        * Resource Group: S4H_ERS29_group:
          * S4H_lvm_ers29     (ocf:heartbeat:LVM-activate):    Started node2
          * S4H_fs_ers29 (ocf:heartbeat:Filesystem): Started node2
          * S4H_vip_ers29     (ocf:heartbeat:IPaddr2):         Started node2
          * S4H_ers29 (ocf:heartbeat:SAPInstance):     Started node2
      Copy to Clipboard Toggle word wrap
    • 已清除资源和资源组的所有故障,并且已重置故障计数。
  • 测试步骤

    • 从任何节点运行以下命令,将 ASCS 实例移动到其他 HA 集群节点:

      [root@node1]# pcs resource move S4H_ascs20
      Copy to Clipboard Toggle word wrap
  • 监控

    • 在测试过程中在一个单独的终端中运行以下命令:

      [root@node2]# watch -n 1 pcs status
      Copy to Clipboard Toggle word wrap
  • 预期行为

    • ASCS 资源组移到其他节点。
    • ERS 资源组会在此后停止,并移到运行 ASCS 资源组的节点。
  • test Result

    • ASCS 资源组移动到其他节点,在这种情况下,节点 node2 和 ERS 资源组移到节点 node1 :

        * Resource Group: S4H_ASCS20_group:
          * S4H_lvm_ascs20 (ocf:heartbeat:LVM-activate): Started node2
          * S4H_fs_ascs20 (ocf:heartbeat:Filesystem): Started node2
          * S4H_vip_ascs20 (ocf:heartbeat:IPaddr2): Started node2
          * S4H_ascs20 (ocf:heartbeat:SAPInstance): Started node2
        * Resource Group: S4H_ERS29_group:
          * S4H_lvm_ers29 (ocf:heartbeat:LVM-activate): Started node1
          * S4H_fs_ers29 (ocf:heartbeat:Filesystem): Started node1
          * S4H_vip_ers29 (ocf:heartbeat:IPaddr2): Started node1
          * S4H_ers29 (ocf:heartbeat:SAPInstance): Started node1
      Copy to Clipboard Toggle word wrap
  • 恢复过程:

    • 删除位置限制(若有):

      [root@node1]# pcs resource clear S4H_ascs20
      Copy to Clipboard Toggle word wrap

在为实例启用 SAP HA 接口时,验证 sapcontrol 命令是否可以将实例移到其他 HA 集群节点。

  • 测试先决条件

    • SAP 实例启用 SAP HA 接口
    • 两个集群节点都有运行 ASCSERS 的资源组。

      [root@node2: ~]# pcs status | egrep -e "S4H_ascs20|S4H_ers29"
           * S4H_ascs20 (ocf:heartbeat:SAPInstance): Started node2
           * S4H_ers29 (ocf:heartbeat:SAPInstance): Started node1
      Copy to Clipboard Toggle word wrap
    • 已清除资源和资源组的所有故障,并且已重置故障计数。
  • 测试步骤

    • 以 & lt;sid>adm 用户身份,运行 sapcontrolHAFailoverToNode 功能,将 ASCS 实例移到其他节点。
  • 监控

    • 在测试过程中在一个单独的终端中运行以下命令:

      [root@node2]# watch -n 1 pcs status
      Copy to Clipboard Toggle word wrap
  • 预期行为

    • ASCS 实例应该移到其他 HA 集群节点,为移动创建一个临时位置约束。
  • 测试

    [root@node2]# su - s4hadm
    node2:s4hadm 52> sapcontrol -nr 20 -function HAFailoverToNode ""
    
    06.12.2023 12:57:04
    HAFailoverToNode
    OK
    Copy to Clipboard Toggle word wrap
  • 测试结果

    • ASCSERS 移动到其他节点:

      [root@node2]# pcs status | egrep -e "S4H_ascs20|S4H_ers29"
          * S4H_ascs20 (ocf:heartbeat:SAPInstance): Started node1
          * S4H_ers29 (ocf:heartbeat:SAPInstance): Started node2
      Copy to Clipboard Toggle word wrap
    • 约束创建,如下所示:

      [root@node1]# pcs constraint
      Location Constraints:
        Resource: S4H_ASCS20_group
          Constraint: cli-ban-S4H_ASCS20_group-on-node2
            Rule: boolean-op=and score=-INFINITY
              Expression: #uname eq string node1
              Expression: date lt xxxx-xx-xx xx:xx:xx +xx:xx
      Copy to Clipboard Toggle word wrap
  • 恢复过程

    • 当达到 Expression 中提到 的日期 时,上面显示的约束会被自动清除。
    • 另外,您可以使用以下命令删除约束:

      [root@node1]# pcs resource clear S4H_ascs20
      Copy to Clipboard Toggle word wrap

5.3. 测试 ASCS 实例失败

验证 pacemaker 集群在 ASCS 实例的 enqueue 服务器或整个 ASCS 实例失败时采取必要的操作。

  • 测试先决条件

    • 两个集群节点都有运行 ASCSERS 的资源组:

      [root@node2]# pcs status | egrep -e "S4H_ascs20|S4H_ers29"
          * S4H_ascs20 (ocf:heartbeat:SAPInstance): Started node1
          * S4H_ers29 (ocf:heartbeat:SAPInstance): Started node2
      Copy to Clipboard Toggle word wrap
    • 已清除资源和资源组的所有故障,并且已重置故障计数。
  • 测试步骤

    • 识别运行 ASCS 的节点上的 enqueue 服务器的 PID
    • 向确定的进程发送 SIGKILL 信号。
  • 监控

    • 在测试过程中在一个单独的终端中运行以下命令:

      [root@node2]# watch -n 1 pcs status
      Copy to Clipboard Toggle word wrap
  • 预期行为

    • 排队服务器进程被终止。
    • pacemaker 集群会根据配置采取必要的操作,在本例中将 ASCS 移到其他节点。
  • 测试

    • 在运行 ASCS 的节点上切换到 <sid>adm 用户

      [root@node1]# su - s4hadm
      Copy to Clipboard Toggle word wrap
    • 识别 en.sap (NetWeaver) enq.sap (S/4HANA)的 PID:

      node1:s4hadm 51> pgrep -af "(en|enq).sap"
      31464 enq.sapS4H_ASCS20 pf=/usr/sap/S4H/SYS/profile/S4H_ASCS20_s4ascs
      Copy to Clipboard Toggle word wrap
    • 终止识别的进程:

      node1:s4hadm 52> kill -9 31464
      Copy to Clipboard Toggle word wrap
    • 注意集群 失败的资源操作

      [root@node2]# pcs status | grep "Failed Resource Actions" -A1
      Failed Resource Actions:
        * S4H_ascs20 2m-interval monitor on node1 returned 'not running' at Wed Dec  6 15:37:24 2023
      Copy to Clipboard Toggle word wrap
    • ASCSERS 移到其他节点:

      [root@node2]# pcs status | egrep -e "S4H_ascs20|S4H_ers29"
          * S4H_ascs20 (ocf:heartbeat:SAPInstance): Started node2
          * S4H_ers29 (ocf:heartbeat:SAPInstance): Started node1
        * S4H_ascs20 2m-interval monitor on node1 returned 'not running' at Wed Dec  6 15:37:24 2023
      Copy to Clipboard Toggle word wrap
  • 恢复过程

    • 清除失败的操作:

      [root@node2]# pcs resource cleanup S4H_ascs20
      …
      Waiting for 1 reply from the controller
      ... got reply (done)
      Copy to Clipboard Toggle word wrap

5.4. 测试 ERS 实例失败

ASCS 实例的 enqueue 复制服务器(ERS)失败时,pacemaker 集群是否采取必要的操作。

  • 测试先决条件

    • 两个集群节点都有运行 ASCSERS 的资源组:

      [root@node1]# pcs status | egrep -e "S4H_ascs20|S4H_ers29"
          * S4H_ascs20	(ocf:heartbeat:SAPInstance):	 Started node2
          * S4H_ers29	(ocf:heartbeat:SAPInstance):	 Started node1
      Copy to Clipboard Toggle word wrap
    • 已清除资源和资源组的所有故障,并且已重置故障计数。
  • 测试步骤

    • 识别运行 ERS 实例的节点上 enqueue 复制服务器进程的 PID。
    • 向确定的进程发送 SIGKILL 信号。
  • 监控

    • 在测试过程中在一个单独的终端中运行以下命令:

      [root@node2]# watch -n 1 pcs status
      Copy to Clipboard Toggle word wrap
  • 预期行为

    • 排队复制服务器进程被终止。
    • Pacemaker 集群根据每个配置采取必要的操作,在这种情况下,重启同一节点上的 ERS 实例。
  • 测试

    • 切换到 < sid>adm 用户:

      [root@node1]# su - s4hadm
      Copy to Clipboard Toggle word wrap
    • 识别 enqr.sap 的 PID:

      node1:s4hadm 56> pgrep -af enqr.sap
      532273 enqr.sapS4H_ERS29 pf=/usr/sap/S4H/SYS/profile/S4H_ERS29_s4ers
      Copy to Clipboard Toggle word wrap
    • 终止识别的进程:

      node1:s4hadm 58> kill -9 532273
      Copy to Clipboard Toggle word wrap
    • 注意集群 "Failed Resource Actions":

      [root@node1]# pcs status | grep "Failed Resource Actions" -A1
      Failed Resource Actions:
        * S4H_ers29 2m-interval monitor on node1 returned 'not running' at Thu Dec  7 13:15:02 2023
      Copy to Clipboard Toggle word wrap
    • ERS 在同一节点上重启,而不干扰 ASCS 已在其他节点上运行:

      [root@node1]# pcs status | egrep -e "S4H_ascs20|S4H_ers29"
          * S4H_ascs20	(ocf:heartbeat:SAPInstance):	 Started node2
          * S4H_ers29	(ocf:heartbeat:SAPInstance):	 Started node1
        * S4H_ers29 2m-interval monitor on node1 returned 'not running' at Thu Dec  7 13:15:02 2023
      Copy to Clipboard Toggle word wrap
  • 恢复过程

    • 清除失败的操作:

      [root@node1]# pcs resource cleanup S4H_ers29
      …
      Waiting for 1 reply from the controller
      ... got reply (done)
      Copy to Clipboard Toggle word wrap

5.5. 因为节点崩溃而故障转移 ASCS 实例

验证 ASCS 实例在节点崩溃时正确移动。

  • 测试先决条件

    • 两个集群节点都有运行 ASCSERS 的资源组:

      [root@node1]# pcs status | egrep -e "S4H_ascs20|S4H_ers29"
          * S4H_ascs20	(ocf:heartbeat:SAPInstance):	 Started node2
          * S4H_ers29	(ocf:heartbeat:SAPInstance):	 Started node1
      Copy to Clipboard Toggle word wrap
    • 已清除资源和资源组的所有故障,并且已重置故障计数。
  • 测试步骤

    • 崩溃运行 ASCS 的节点。
  • 监控

    • 在测试过程中,在其它节点上的单独终端中运行以下命令:

      [root@node1]# watch -n 1 pcs status
      Copy to Clipboard Toggle word wrap
  • 预期行为

    • 运行 ASCS 的节点会崩溃,并根据配置关闭或重启。
    • 同时 ASCS 移动到其他节点。
    • ERS 在之前崩溃的节点上启动,之后恢复在线。
  • 测试

    • 在运行 ASCS 的节点中,以 root 用户身份运行以下命令:

      [root@node2]# echo c > /proc/sysrq-trigger
      Copy to Clipboard Toggle word wrap
    • ASCS 移到其他节点:

      [root@node1]# pcs status | egrep -e "S4H_ascs20|S4H_ers29"
          * S4H_ascs20	(ocf:heartbeat:SAPInstance):	 Started node1
          * S4H_ers29	(ocf:heartbeat:SAPInstance):	 Started node1
      Copy to Clipboard Toggle word wrap
    • ERS 在恢复在线后停止并移到之前崩溃的节点:

      [root@node1]# pcs status | egrep -e "S4H_ascs20|S4H_ers29"
          * S4H_ascs20	(ocf:heartbeat:SAPInstance):	 Started node1
          * S4H_ers29	(ocf:heartbeat:SAPInstance):	 Stopped
      
      
      [root@node1]# pcs status | egrep -e "S4H_ascs20|S4H_ers29"
          * S4H_ascs20	(ocf:heartbeat:SAPInstance):	 Started node1
          * S4H_ers29	(ocf:heartbeat:SAPInstance):	 Started node2
      Copy to Clipboard Toggle word wrap
  • 恢复过程

    • 清理失败的操作(若有):

      [root@node1]# pcs resource cleanup
      Copy to Clipboard Toggle word wrap

5.6. 由于节点崩溃而 ERS 实例失败

验证 ERS 实例在同一节点上重启。

  • 测试先决条件

    • 两个集群节点都有运行 ASCSERS 的资源组:

      [root@node1]# pcs status | egrep -e "S4H_ascs20|S4H_ers29"
          * S4H_ascs20	(ocf:heartbeat:SAPInstance):	 Started node1
          * S4H_ers29	(ocf:heartbeat:SAPInstance):	 Started node2
      Copy to Clipboard Toggle word wrap
    • 已清除资源和资源组的所有故障,并且已重置故障计数。
  • 测试步骤

    • 使运行 ERS 的节点崩溃。
  • 监控

    • 在测试过程中,在其它节点上的单独终端中运行以下命令:

      [root@nod1]# watch -n 1 pcs status
      Copy to Clipboard Toggle word wrap
  • 预期行为

    • 运行 ERS 的节点会崩溃,并根据配置关闭或重启。
    • 同时 ASCS 继续运行其他节点。ERS 在崩溃的节点上重新启动,之后恢复在线。
  • 测试

    • 在运行 ERS 的节点中,以 root 用户身份运行以下命令:

      [root@node2]# echo c > /proc/sysrq-trigger
      Copy to Clipboard Toggle word wrap
    • ERS 在崩溃的节点上重启,在恢复在线后,在测试过程中不会干扰 ASCS 实例:

      [root@node1]# pcs status | egrep -e "S4H_ascs20|S4H_ers29"
          * S4H_ascs20	(ocf:heartbeat:SAPInstance):	 Started node1
          * S4H_ers29	(ocf:heartbeat:SAPInstance):	 Started node2
      Copy to Clipboard Toggle word wrap
  • 恢复过程

    • 如果出现以下情况,清理失败的操作:

      [root@node2]# pcs resource cleanup
      Copy to Clipboard Toggle word wrap

5.7. 因为节点崩溃而导致 ASCS 实例失败(ENSA2)

对于 3 个节点 ENSA 2 集群环境,在任何实例的故障转移事件中考虑第三个节点。

  • 测试先决条件

    • 一个 3 个节点 SAP S/4HANA 集群,其中包含运行 ASCSERS 的资源组。
    • 第三节点可以访问所有文件系统,并可置备所需的实例特定 IP 地址,方式与前 2 个节点相同。
    • 在示例设置中,底层共享 NFS 文件系统如下:

      Node List:
        * Online: [ node1 node2 node3 ]
      
      Active Resources:
        * s4r9g2_fence        (stonith:fence_rhevm):   Started node1
        * Clone Set: s4h_fs_sapmnt-clone [fs_sapmnt]:
          * Started: [ node1 node2 node3 ]
        * Clone Set: s4h_fs_sap_trans-clone [fs_sap_trans]:
          * Started: [ node1 node2 node3 ]
        * Clone Set: s4h_fs_sap_SYS-clone [fs_sap_SYS]:
          * Started: [ node1 node2 node3 ]
        * Resource Group: S4H_ASCS20_group:
          * S4H_lvm_ascs20    (ocf:heartbeat:LVM-activate):    Started node1
          * S4H_fs_ascs20     (ocf:heartbeat:Filesystem):	 Started node1
          * S4H_vip_ascs20    (ocf:heartbeat:IPaddr2):         Started node1
          * S4H_ascs20        (ocf:heartbeat:SAPInstance):     Started node1
        * Resource Group: S4H_ERS29_group:
          * S4H_lvm_ers29     (ocf:heartbeat:LVM-activate):    Started node2
          * S4H_fs_ers29	(ocf:heartbeat:Filesystem):	 Started node2
          * S4H_vip_ers29     (ocf:heartbeat:IPaddr2):         Started node2
          * S4H_ers29 (ocf:heartbeat:SAPInstance):     Started node2
      Copy to Clipboard Toggle word wrap
    • 已清除资源和资源组的所有故障,并且已重置故障计数。
  • 测试步骤

    • 崩溃运行 ASCS 的节点。
  • 监控

    • 在当前在测试过程中没有运行 ASCS 组的节点中的一个单独的终端中运行以下命令:

      [root@node2]# watch -n 1 pcs status
      Copy to Clipboard Toggle word wrap
  • 预期行为

    • ASCS 移至第 3 个节点。
    • ERS 继续在运行它的同一节点上运行。
  • 测试

    • 崩溃当前运行 ASCS 组的节点:

      [root@node1]# echo c > /proc/sysrq-trigger
      Copy to Clipboard Toggle word wrap
    • ASCS 移至第 3 个节点,而不干扰已在第 2 个节点上运行的 ERS 实例:

      [root@node2]# pcs status | egrep -e "S4H_ascs20|S4H_ers29"
          * S4H_ascs20	(ocf:heartbeat:SAPInstance):	 Started node3
          * S4H_ers29	(ocf:heartbeat:SAPInstance):	 Started node2
      Copy to Clipboard Toggle word wrap
  • 恢复过程

    • 如果出现以下情况,清理失败的操作:

      [root@node2]# pcs resource cleanup
      Copy to Clipboard Toggle word wrap

第 6 章 维护步骤

6.1. 更新 RHEL 和 RHEL HA 附加组件

如需更多信息,请参阅 建议:在 RHEL 高可用性集群中应用软件包更新

注意

对于双节点集群设置,不需要手动将资源移动到其他 HA 集群节点,然后再将 HA 集群节点置于待机模式(以待机模式表示 HA 集群节点以待机模式)来移动或停止在 HA 集群节点上运行的资源。

此外,为了最大程度降低 SAP 系统的停机时间,建议首先更新运行"无关键"资源的 HA 集群节点,如 ERS 实例。当 HA 集群节点已更新,并且验证启动更新前在该节点上运行的资源已被验证,其他 HA 集群节点运行"关键"资源(如 (A) SCS 实例)也可以更新。 

第 7 章 参考

7.1. Red Hat

7.2. SAP

法律通告

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat