

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 规划
<a name="sap-hana-pacemaker-sles-planning"></a>

在启动高可用性集群的部署之前，请仔细查看以下先决条件，确保满足对基础设施、操作系统和访问权限的所有要求。熟悉链接的参考资料、支持的配置和本解决方案中使用的核心概念。

**Topics**
+ [设置概述](sap-hana-pacemaker-sles-setup-overview.md)
+ [供应商支持](sap-hana-pacemaker-sles-references.md)
+ [概念](sap-hana-pacemaker-sles-concepts.md)
+ [自动部署](sap-hana-pacemaker-sles-automation.md)
+ [参数参考](sap-hana-pacemaker-sles-parameters.md)
+ [架构图](sap-hana-pacemaker-sles-arch-diagrams.md)

# 设置概述
<a name="sap-hana-pacemaker-sles-setup-overview"></a>

## 已部署集群基础设施
<a name="_deployed_cluster_infrastructure"></a>

确保您的AWS联网要求和安装了 SAP 工作负载的 Amazon EC2 实例已正确配置为 SAP。

以下特定与 SAP HANA 集群的要求必须满足：
+ 在同一 Amazon VPC 和AWS区域内不同可用区的私有子网中创建的两个集群节点。
+ 与所选子网关联的路由表的访问权限。有关更多信息，请参阅[重叠 IP](sap-hana-pacemaker-sles-concepts.md#overlay-ip-sles)。
+ 目标亚马逊 EC2 实例必须通过互联网或亚马逊 VPC EC2 终端节点连接到亚马逊终端节点。

## 支持的操作系统
<a name="_supported_operating_system"></a>

使用 pacemaker 集群保护 SAP HANA 数据库需要来自 SUSE 的软件包，包括适用于 SAP 的集群资源代理AWS，这些软件包在标准存储库中不可用。

要在 SUSE 上部署 SAP HANA，SAP 和 SUSE 建议使用 SUSE Linux Enterprise Server for SAP Applications（SLES for SAP）。SLES for SAP 提供了额外的优势，包括：
+ 扩展服务包叠加支持（ESPOS）
+ 适用于 SAP 应用程序的配置和调整软件包
+ 高可用性扩展（HAE）

要了解更多信息，请参阅 [SUSE Linux Enterprise Server for SAP Applications](https://www.suse.com/products/sles-for-sap/)。

适用于 SAP 的 SLES 在AWS Marketplace 上线，有：
+ 每小时订阅
+ 年度订阅
+ 自带订阅（BYOS）模式

## 进行设置所需的访问权限
<a name="_required_access_for_setup"></a>

设置集群需要以下访问权限：

具有以下权限的 IAM 用户：
+ 修改 Amazon VPC 路由表
+ 修改 Amazon EC2 实例属性
+ 创建 IAM 策略和角色
+ 创建 Amazon EFS 文件系统

其他必需的访问权限：
+ 对两个集群节点的操作系统的根访问权限
+ SAP HANA 管理用户访问权限：<sid>adm
+ SAP HANA SystemDB 管理访问权限，用于更改配置和备份管理。

**Example**  
这些访问要求特定于集群设置流程，可以进行限制，不能用于正在执行的集群操作和维护。

## 已定义可靠性要求
<a name="_reliability_requirements_defined"></a>

您可以利用 Well-Architected Framework 的 SAP Lens，尤其是可靠性支柱，来了解 SAP 工作负载的可靠性要求。

在高可用性架构中，SAP HANA 应用程序是单点故障。您必须根据恢复点目标（RPO）、恢复时间目标（RTO）、成本和操作复杂性等因素来评估此组件中断会造成的影响。有关更多信息，请参阅 [SAP Lens 中的可靠性——Well-Architect AWS ed Framework。](https://docs.aws.amazon.com/wellarchitected/latest/sap-lens/reliability.html)

# 供应商支持
<a name="sap-hana-pacemaker-sles-references"></a>

## SAP 和 SUSE 参考资料
<a name="_sap_and_suse_references"></a>

除本指南外，还可以参考以下参考资料来获取更多详细信息：
+ SUSE 文档：适用于 [SAP 的 SLES-适用于云的 SAP HANA 高可用性集群AWS](https://documentation.suse.com/en-us/sbp/sap-15/html/SLES4SAP-hana-sr-guide-perfopt-15-aws/index.html) 
+ SUSE 文档：[An overview of supported High Availability Solutions by SLES for SAP applications](https://documentation.suse.com/en-us/sles-sap/sap-ha-support/html/sap-ha-support/index.html) 
+ SAP 注意：[1656099-SAP 应用程序开启AWS：支持的产品和 DB/OS 亚马逊](https://me.sap.com/notes/1656099)产品 EC2 
+ SAP Note：[1984787 - SUSE Linux Enterprise Server 12: Installation Notes](https://me.sap.com/notes/1984787) 
+ SAP Note：[2205917 - SAP HANA DB: Recommended OS settings for SLES 12 / SLES for SAP Applications 12](https://me.sap.com/notes/2205917) 
+ SAP Note：[2578899 - SUSE Linux Enterprise Server 15: Installation Notes](https://me.sap.com/notes/2578899) 
+ SAP Note：[2684254 - SAP HANA DB: Recommended OS settings for SLES 15 / SLES for SAP Applications 15](https://me.sap.com/notes/2684254) 
+ SAP Note：[1275776 - Linux: Preparing SLES for SAP environments](https://me.sap.com/notes/1275776) 

**注意**  
访问 SAP Notes 需要 SAP 门户访问权限。

## 部署指南
<a name="deployments-sles"></a>

AWS与 SUSE 合作，支持在上AWS部署 SAP HANA。AWS提供了有关配置 EC2 实例和AWS特定资源以满足 SAP HANA 要求的详细指导。虽然我们努力整合文档以简化用户体验，但 Pacemaker 拥有的底层软件组件和资源仍由软件供应商负责开发和支持。


| SAP HANA 部署类型 | 支持状态 | 注意 | AWS配置模式 | 
| --- | --- | --- | --- | 
|  SAP HANA 纵向扩展标准版  |  AWS记录在案并受支持  |  包含在AWS SAP HANA 指南中  |  SAPHANAScaleUp-Classic，up-angi SAPHANAScale  | 
|  SAP HANA 纵向扩展辅助系统只读已启用  |  供应商提供文档和支持  |  遵循 SAP 文档  |  | 
|  SAP HANA 纵向扩展多层复制  |  供应商提供文档和支持  |  遵循 SAP 文档  |  | 
|  SAP HANA 纵向扩展多目标复制  |  供应商提供文档和支持  |  遵循 SAP 文档  |  | 
|  SAP HANA 横向扩展标准版  |  AWS记录在案并受支持  |  包含在AWS SAP HANA 指南中  |  SAPHANAScaleOut-Classic，Out-angi SAPHANAScale  | 
|  SAP HANA 横向扩展辅助系统只读已启用  |  供应商提供文档和支持  |  遵循 SAP 文档  |  | 
|  SAP HANA 横向扩展多层复制  |  供应商提供文档和支持  |  遵循 SAP 文档  |  | 
|  SAP HANA 横向扩展多目标复制  |  供应商提供文档和支持  |  遵循 SAP 文档  |  | 

**注意**  
AWS配置模式表示已针对特定用例进行验证的标准化部署模板。在文档中，我们将重点介绍相比配置模式的指令变化。

**什么是 Angi？**  
SAPHanaSR-angi（SAP HANA SR-高级下一代接口）是最新的统一高可用性解决方案，用于在Pacemaker集群中管理 SAP HANA 系统复制，在 15 及更高版本上支持。 SLES-for-SAP SP4 该解决方案将纵向扩展和横向扩展部署的管理整合到一个软件包中，并引入了技术改进，例如针对文件系统故障、HANA 实例无响应以及横向扩展配置中的节点故障，缩短了接管时间。

本文档介绍了使用 SAPHana SR-angi 的新实现。有关从现有 SAPHana SR 或 SR ScaleOut 安装到 SAPHana S SAPHana R-angi 的迁移，请参阅 SUSE 文档以了解详细的升级过程。

# 概念
<a name="sap-hana-pacemaker-sles-concepts"></a>

## SAP – SAP HANA 和 Hana 系统复制
<a name="_sap_sap_hana_and_hana_system_replication"></a>

SAP HANA 是内存中面向列的关系数据库管理系统，由 SAP 开发。它使用 HANA 系统复制（HSR），将数据和更改从主系统复制到一个或多个辅助系统。在横向扩展部署中，这种复制发生在主系统和辅助系统的对应节点之间，每项服务在辅助系统中都有对应的服务。HSR 确保持续复制更改，从而最大限度地减少恢复点目标（RPO）。虽然您可以使用 HANA 工具手动触发接管，但添加 Pacemaker 集群后，可通过监控、编排以及与用于硬件连接和管理的资源代理集成，来实现失效转移过程的自动化。

## AWS— 可用区
<a name="shared_aws_availability_zones"></a>

可用区是一个或多个独立的数据中心，在一个AWS区域内具有冗余电源、网络和连接。有关更多信息，请参阅区域和可用区。

对于以最大限度地缩短恢复时间目标 (RTO) 为目标的 SAP 关键任务部署，我们建议将单点故障分散到各个可用区。AWS与单实例或单可用区部署相比，这可以增强韧性，实现更好的隔离，可以防范包括自然灾害在内的各种故障场景和问题。

各个可用区之间相隔合理的距离（数千米）。一个AWS区域中的所有可用区域通过完全冗余的专用城域光纤与高带宽、低延迟的网络重新互连。这样可以实现同步复制。可用区之间的所有流量都是加密的。

## AWS— 覆盖 IP
<a name="overlay-ip-sles"></a>

重叠 IP 用于实现与应用程序的连接，无论活动主节点包含在哪个可用区（和子网）中。

在中部署 Amazon EC2 实例时AWS，IP 地址是从所分配子网的 CIDR 范围中分配的。子网不能跨越多个可用区，因此在出现故障后（包括网络连接或硬件问题），子网 IP 地址可能不可用，需要失效转移到不同可用区中的复制目标。

为了解决这个问题，我们建议您配置重叠 IP，并在应用程序的连接参数中使用它。此 IP 地址是来自 VPC CIDR 块之外的非重叠 RFC1918 私有 IP 地址，被配置为一个或多个路由表中的一个条目。该路由将连接定向到活动的节点，并在失效转移期间由集群软件更新。

您可以为叠加 IP 地址选择以下任意一个 RFC1918 私有 IP 地址：
+ 10.0.0.0 - 10.255.255.255（10/8 前缀）
+ 172.16.0.0 - 172.31.255.255（172.16/12 前缀）
+ 192.168.0.0 - 192.168.255.255（192.168/16 前缀）

例如，如果您在 SAP VPC 中使用 10/8 前缀，则可以选择 172 或 192 IP 地址来区分重叠 IP。考虑使用诸如 Amazon VPC IP 地址管理器之类的 IP 地址管理 (IPAM) 工具来规划、跟踪和监控工作负载的 IP 地址。AWS有关更多信息，请参阅[什么是 IPAM？](https://docs.aws.amazon.com/vpc/latest/ipam/what-it-is-ipam.html) 

在子网关联或连接有需要时，您也可以对集群中的重叠 IP 代理进行配置，来更新包含重叠 IP 条目的多个路由表。

### 访问重叠 IP
<a name="_access_to_the_overlay_ip"></a>

叠加 IP 不在 VPC 的范围内，因此无法从与路由表无关的地点（包括本地和其他位置）到达 VPCs。

使用 T AWS ransit Gateway 作为中心枢纽，使用 Di AWS rect Connect 或 C AWS lient VPN，便于从多个位置（包括亚马逊 VPCs、其他AWS地区和本地）连接到叠加 IP 地址。

如果您未将 T AWS ransit Gateway 设置为网络交通枢纽，或者在您的首选AWS区域不可用，则可以使用网络负载均衡器启用对叠加 IP 的网络访问。

有关更多信息，请参阅 [SAP 关于 AWS 高可用性设置](sap-oip-sap-on-aws-high-availability-setup.md)。

## AWS— 共享 VPC
<a name="shared_aws_shared_vpc"></a>

企业登录区设置或安全要求可能需要使用单独的集群账户，将对重叠 IP 所需的路由表访问权限限制为隔离账户。有关更多信息，请参阅[与其他账户共享 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html)。

在设置共享 VPC 之前，请评估该操作对安全态势的影响。

## Pacemaker – STONITH 隔离代理
<a name="fencing-sles"></a>

在 SAP HANA 部署中，无论是在纵向扩展配置（双节点）还是横向扩展配置（每个站点两个或更多节点）中，通过确保在任何给定时间只有指定的一个或多个主节点才能处理写入操作来保持数据一致性，这一点至关重要。当节点变成无响应或无法通信时，为了保持数据一致性，可能需要在集群开始其他操作（例如提升新的主节点）之前关闭故障节点的电源，将其隔离。此仲裁是隔离代理的职责。

在双节点纵向扩展场景中，需要考虑隔离竞赛问题。当通信故障导致两个节点均认为另一个节点已经出现故障并同时尝试隔离（断电）对方时，就会发生这种情况。隔离代理通过提供外部见证方来应对这种风险。在横向扩展部署中，虽然由于有多个节点可以参与仲裁决策，因此出现隔离竞赛的可能性较小，但在大型节点集中，妥善的隔离机制对于保持数据一致性仍然至关重要。

SUSE 支持多种屏蔽代理，包括推荐用于 Amazon EC2 实例（外部/ec2）的屏蔽代理。

# 自动部署
<a name="sap-hana-pacemaker-sles-automation"></a>

您可以按照此处提供的说明手动设置集群。您还可以自动化此流程的某些部分，以确保部署的一致性和可重复性。

使用AWS Launch Wizard for SAP 自动部署 SAP Hana 平台、SAP NetWeaver、SAP S/4 HANA、SAP BW/4HANA 和解决方案管理器。Launch Wizard 使用AWS CloudFormation 模板和高级脚本来快速配置所需的资源。自动化流程可处理 SAP HANA 安装、HANA 系统复制和 Pacemaker 设置，只需要在部署后进行验证和测试。有关更多信息，请参阅 [AWS Launch Wizard for SAP](https://docs.aws.amazon.com/launchwizard/latest/userguide/launch-wizard-sap.html)。

**重要**  
无论采用何种设置方法，为了实现可靠的集群操作，都要对系统进行全面的测试。测试有助于发现系统异常，验证不断变化的需求，并建立对操作的了解。有关更多详细信息，请参阅[测试](sap-hana-pacemaker-sles-testing.md)。

# 参数参考
<a name="sap-hana-pacemaker-sles-parameters"></a>

集群设置使用您的环境所独有的参数，包括 SID 和系统编号。按照以下示例和指导来预先确定值会很有用。

**Topics**
+ [全局AWS参数](#global_shared_aws_parameters)
+ [Amazon EC2 实例参数](#_amazon_ec2_instance_parameters)
+ [SAP 和 Pacemaker 资源参数](#_sap_and_pacemaker_resource_parameters)
+ [SLES 集群参数](#_sles_cluster_parameters)

## 全局AWS参数
<a name="global_shared_aws_parameters"></a>


| Name | 参数 | 示例 | 
| --- | --- | --- | 
|  AWS账号  |   `<account_id>`   |   `123456789100`   | 
|  AWS区域  |   `<region>`   |   `us-east-1`   | 
+ AWS账户 — 有关更多详情，请参阅[您的AWS账户 ID 及其别名](https://docs.aws.amazon.com/IAM/latest/UserGuide/console-account-alias.html)。
+ AWS区域-有关更多详细信息，请参阅[描述您的区域](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-availability-zones)。

## Amazon EC2 实例参数
<a name="_amazon_ec2_instance_parameters"></a>


| Name | 参数 | 主系统示例 | 辅助系统示例 | 
| --- | --- | --- | --- | 
|  亚马逊 EC2 实例 ID  |   `<instance_id_x>`   |   `i-xxxxinstidforhost1`   |   `i-xxxxinstidforhost2`   | 
|  主机名  |   `<hostname_x>`   |   `hanahost01`   |   `hanahost02`   | 
|  主机 IP  |   `<host_ip_x>`   |   `10.1.20.1`   |   `10.2.20.1`   | 
|  主机其他 IP  |   `<host_additional_ip_x>`   |   `10.1.20.2`   |   `10.2.20.2`   | 
|  配置的子网  |   `<subnet_id>`   |   `subnet-xxxxxxxxxxsubnet1`   |   `subnet-xxxxxxxxxxsubnet2`   | 
+ 主机名必须符合 [SAP Note 611361 - Hostnames of SAP ABAP Platform servers](https://me.sap.com/notes/611361)（需要 SAP 门户访问权限）中概述的 SAP 要求。
+ 在实例上运行以下命令以检索主机名：

  ```
  $ hostname
  ```
+ Amazon EC2 实例 ID — 在您的实例上运行以下命令（IMDSv2 兼容）以检索实例元数据：

  ```
  $ /usr/bin/curl --noproxy '*' -w "\n" -s -H "X-aws-ec2-metadata-token: $(curl --noproxy '*' -s -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")" http://169.254.169.254/latest/meta-data/instance-id
  ```

  有关更多详细信息，请参阅[检索实例元数据](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html)和[实例身份文档](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-identity-documents.html)。

 **对于横向扩展部署** 


|  角色 | 主协调程序 | 主 Worker | 主 Worker | 辅助协调程序 | 辅助 Worker | 辅助 Worker | 仲裁生成器 | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
|  主机名  |   `hanahost01`   |   `hanahostworker01a`   |   `hanahostworker01b`   |   `hanahost02`   |   `hanahostworker02a`   |   `hanahostworker02b`   |   `hanamm`   | 
|  子网  |   `subnet-xxxxxxxxxxsubnet1`   |   `subnet-xxxxxxxxxxsubnet1`   |   `subnet-xxxxxxxxxxsubnet1`   |   `subnet-xxxxxxxxxxsubnet2`   |   `subnet-xxxxxxxxxxsubnet2`   |   `subnet-xxxxxxxxxxsubnet2`   |   `subnet-xxxxxxxxxxsubnet3`   | 
+ 具有仲裁生成器的 6 节点集群的示例
+ 仲裁生成器可以使用最少的资源，因为它只提供集群仲裁功能

## SAP 和 Pacemaker 资源参数
<a name="_sap_and_pacemaker_resource_parameters"></a>


| Name | 参数 | 示例 | 
| --- | --- | --- | 
|  SAP HANA SID  |   `<SID>` 或 `<sid>`   |   `HDB`   | 
|  SAP HANA 系统编号  |   `<hana_sys_nr>`   |   `00`   | 
|  SAP HANA 虚拟主机名  |   `<hana_virt_hostname>`   |   `hanahdb`   | 
|  SAP HANA 重叠 IP  |   `<hana_overlayip>`   |   `172.16.52.1`   | 
|  SAP HANA 只读已启用重叠 IP（可选）  |   `<readenabled_overlayip>`   |   `172.16.52.2`   | 
|  VPC 路由表  |   `<routetable_id>`   |   `rtb-xxxxxroutetable1`   | 
+ SAP 详细信息 – 包括 SID 和实例编号在内的 SAP 参数必须遵守 SAP 和软件预调配管理器的指导和限制。有关更多详细信息，请参阅 [SAP Note 1979280 - Reserved SAP System Identifiers (SAPSID) with Software Provisioning Manager](https://me.sap.com/notes/1979280)。
+ 安装后，使用以下命令查找主机上运行的实例的详细信息：

  ```
  $ sudo /usr/sap/hostctrl/exe/saphostctrl -function ListInstances
  ```
+ 重叠 IP：此值由您定义。有关更多信息，请参阅[重叠 IP](sap-hana-pacemaker-sles-concepts.md#overlay-ip-sles)。

## SLES 集群参数
<a name="_sles_cluster_parameters"></a>


| Name | 参数 | 示例 | 
| --- | --- | --- | 
|  集群用户  |   `<cluster_user>`   |   `hacluster`   | 
|  集群密码  |   `<cluster_password>`   |  | 
|  集群名称  |   `<cluster_name>`   |   `myCluster`   | 
|  集群标签  |   `<cluster_tag>`   |   `pacemaker`   | 
|  AWS CLI 集群配置文件  |   `<cli_cluster_profile>`   |   `cluster`   | 
+ 集群用户 – 安装集群软件包将创建用户 hacluster，为该账户设置密码以确保集群可以执行不需要根访问权限的任务。
+ 集群标签 —AWS Stonith 代理使用此标签来确保它能够识别要屏蔽的正确亚马逊 EC2 实例。标签的名称是可自定义的，并且对于此集群对，在您的AWS账户中应该是唯一的。
+ AWS CLI 集群配置文件 — 可以定义一个命名配置文件，用于集群 API 调用，这与 CLI 的其他用途不同。每个配置文件可以指定不同的凭证，也可以指定不同的AWS区域和输出格式。

# 架构图
<a name="sap-hana-pacemaker-sles-arch-diagrams"></a>

## Pacemaker – 纵向扩展架构
<a name="_pacemaker_scale_up_architecture"></a>

![\[SAP Hana Pacemaker SUSE Enterprise Linux 纵向扩展\]](http://docs.aws.amazon.com/zh_cn/sap/latest/sap-hana/images/sap-hana-pacemaker-sles-scaleup.png)
