

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

# SAP HANA 环境设置已开启 AWS
<a name="std-sap-hana-environment-setup"></a>

 *上次更新时间：2022 年 12 月* 

本指南是内容系列的一部分，该系列提供了有关在 AWS 云中托管、配置和使用 SAP 技术的详细信息。有关该系列的其他指南，从概述到高级主题，请参阅 [SAP on Technical Documation AWS s 主页](https://aws.amazon.com/sap/docs/)。

本文档提供了有关如何设置 AWS 资源和配置 SUSE Linux 企业服务器 (SLES) 和红帽企业 Linux (RHEL) 操作系统以在现有虚拟私有云 (VPC) 中的亚马逊弹性计算云 (Amazon EC2) 实例上部署 SAP HANA 的指导。它包括使用亚马逊弹性区块存储 (Amazon EBS) Block Store、Amazon Elastic File System (Amazon EFS) 和亚马逊版 ONTAP（适用于 ONTAP）为纵向扩展 FSx 和 NetApp 横向扩展工作负载配置存储的说明。FSx 

本文档遵循 AWS 最佳实践，以确保您的系统符合基于定制数据中心集成 (TDIKPIs) 的 SAP HANA 实施所需的所有关键性能指标 ()。 AWS此外，本文档还遵循 SAP、SUSE 和 Red Hat 在以下 SAP OSS Notes 中为 SAP HANA 提供的建议（需要 SAP 门户访问权限）。
+  [1944799 – SAP HANA Guidelines for SLES Operating System Installation](https://me.sap.com/notes/1944799) 
+  [2205917 – SAP HANA DB: Recommended OS settings for SLES 12 / SLES for SAP Applications 12](https://me.sap.com/notes/2205917) 
+  [2684254 – SAP HANA DB: Recommended OS settings for SLES 15 / SLES for SAP Applications 15](https://me.sap.com/notes/2684254) 
+  [2009879 - SAP HANA Guidelines for Red Hat Enterprise Linux (RHEL) Operating System](https://me.sap.com/notes/2009879) 
+  [2292690 – SAP HANA DB: Recommended OS settings for RHEL 7](https://me.sap.com/notes/2292690) 
+  [2777782 – SAP HANA DB: Recommended OS Settings for RHEL 8](https://me.sap.com/notes/2777782) 

**注意**  
SAP、SUSE 和 Red Hat 会定期更新这些 OSS 注释。在继续操作之前，请查看最新版本的 OSS 说明以获取 up-to-date信息。

本指南适用于对 AWS 服务、网络概念、Linux 操作系统和 SAP HANA 管理有深入了解的用户，以成功启动和配置 SAP HANA 所需的资源。

 AWS Launch Wizard for SAP 是一项服务，可指导您在 SAP 和操作系统供应商（包括 SUSE 和 Red Hat）上 AWS完成基于 SAP HANA 的应用程序的大小、配置和部署，并遵循其最佳实践。 AWS AWS Launch Wizard for SAP 支持多种部署模式，包括具有跨可用区高可用性的纵向扩展和横向扩展模式的 SAP HANA 数据库。 AWS Launch Wizard for SAP 使您能够在几个小时内设置基于 SAP HANA 的系统，只需最少的人工干预。有关更多信息，请参阅 [AWS Launch Wizard for SAP](https://docs.aws.amazon.com/launchwizard/latest/userguide/launch-wizard-sap.html)。

如果您的组织无法使用适用于 SAP 的 La AWS unch Wizard 进行部署，并且您需要进行其他自定义以满足内部政策，则可以按照本文档中的步骤使用 AWS 命令行界面 (CL AWS I) 或 AWS 管理控制台手动设置 Amazon EC2、Amazon EBS、Amazon EFS 和 FSx ONTAP 等 AWS 资源。

本文档不提供有关如何设置网络和安全结构的指导，例如 Amazon VPC、子网、路由表、访问控制列表 (ACLs)、NAT 网关、 AWS 身份和访问管理 (IAM) Access Management 角色、安全组等。相反，本文档侧重于为 AWS上的 SAP HANA 部署配置计算、存储和操作系统资源。

# 先决条件
<a name="prerequisites"></a>

## 专业知识
<a name="specialized-knowledge"></a>

如果您是初次使用 AWS，请参阅 [AWS 入门](https://aws.amazon.com/getting-started/)。

## 技术要求
<a name="technical-requirements"></a>

1. 如有必要，[请求提高计划用于 SAP HANA 系统的实例类型的服务限制](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase)。如果您已有使用此实例类型的现有部署，且您认为自己可能超过此部署的默认限制，则需要请求提高限制。有关详细信息，请参阅 AWS 文档中的 [Amazon EC2 服务限制](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html)。

1. 确保您有一个可用于启动 Amazon EC2 实例的密钥对。如果您需要创建或导入密钥对，请参阅 AWS 文档中的 [Amazon EC2 密钥对](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html)。

1. 对于您打算在其中启动 Amazon EC2 实例（将用于托管 SAP HANA）的 VPC，确保您拥有它的网络详细信息，如 VPC ID 和子网 ID。

1. 确保您有一个安全组，可连接到用于托管 SAP HANA 的 Amazon EC2 实例，并且所需的端口已打开。如果需要，请创建一个允许 SAP HANA 端口流量通过的新安全组。有关端口列表的更多详细信息，请参阅 [AWS Launch Wizard for SAP 中的安全组](https://docs.aws.amazon.com/launchwizard/latest/userguide/launch-wizard-sap-security-groups.html)。

1. 如果您打算使用 AWS CLI 启动实例，请确保已使用必要的凭证安装和配置 AWS CLI。有关详细信息，请参阅 AWS 文档中的[安装 AWS 命令行界面](https://docs.aws.amazon.com/cli/latest/userguide/installing.html)。

1. 如果您打算使用控制台启动实例，请确保您具有启动和配置 Amazon EC2、Amazon EBS 和其他服务的凭证和权限。有关详细信息，请参阅 AWS 文档中的[访问管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)。

# 规划部署
<a name="planning-the-deployment"></a>

在规划 SAP HANA 部署时，请考虑以下几点。

**Topics**
+ [计算](#compute)
+ [操作系统](#operating-system)
+ [亚马逊机器映像（AMI）](#amazon-machine-image-ami)
+ [仓储服务](#storage)
+ [Network](#network)

## 计算
<a name="compute"></a>

 AWS 提供多个不同大小的实例系列来运行 SAP HANA 工作负载。请参阅 SAP [Certified and Supported SAP HANA Hardware Directory](https://www.sap.com/dmc/exp/2014-09-02-hana-hardware/enEN/#/solutions?filters=v:deCertified;ve:23) 和[适用于 SAP 的 Amazon EC2 实例类型](https://aws.amazon.com/sap/instance-types/)页面，以查找认证 Amazon EC2 实例的列表。对于您的生产工作负载，请确保您选择已由 SAP 认证的实例类型。您可以在任何大小的特定认证实例上运行非生产工作负载，以节省成本。

## 操作系统
<a name="operating-system"></a>

您可以在 SLES、带有高可用性和更新服务的 SLES for SAP 和 RHEL for SAP 或者 RHEL for SAP 解决方案上部署 SAP HANA 工作负载。

适用于SAP的SLES和具有高可用性和美国产品的RHEL在Marketplace上以按小时或按年订阅 AWS 模式在Marketplace上市。

**SLES for SAP**  
SLES for SAP 提供了额外的好处，包括扩展服务包叠加支持（ESPOS）、适用于 SAP 应用程序的配置和调整软件包以及高可用性扩展（HAE）。有关详细信息，请参阅 SUSE 的 [SLES for SAP 产品页面](https://www.suse.com/products/sles-for-sap/)，了解有关使用 SLES for SAP 所获得的好处的更多信息。我们强烈建议您为所有 SAP 工作负载使用 SLES for SAP，而不使用 SLES。

如果您打算使用 SUSE 提供的自带订阅 (BYOS) 映像，请确保您拥有向 SUSE 注册实例所需的注册代码以访问软件更新存储库。

**RHEL for SAP**  
带有高可用性和更新服务的 RHEL for SAP 提供了对 Red Hat Pacemaker 集群软件的访问权限，以实现高可用性、扩展更新支持以及运行 SAP HANA 所需的库。有关详细信息，请参阅红帽知识库中的 [RHEL for SAP 产品 AWS 常见问题解答](https://access.redhat.com/articles/3671571)。

如果您打算通过 [Red Hat Cloud Access](https://access.redhat.com/articles/3490141) 程序或其他方式将 BYOS 模型与 RHEL 结合使用，请确保您有权访问 RHEL for SAP 解决方案订阅。有关详细信息，请参阅[红帽文档中的适用于 SAP 解决方案的红帽企业 Linux 简介](https://docs.redhat.com/en/documentation/red_hat_enterprise_linux_for_sap_solutions)。

## 亚马逊机器映像（AMI）
<a name="amazon-machine-image-ami"></a>

启动 Amazon EC2 实例需要基本 AMI。根据您选择的操作系统，确保您有权访问部署目标区域中的相应 AMI。

如果您计划使用 Marketplace 中提供的适用于 SAP 的 SLES 或 RHEL for SAP Amazon M AWS achine Images (AMIs)，请确保您已完成订阅流程。你可以在 Marketpl AWS ace 中搜索 *SAP 版 SLES* 或 *SAP 版 RHEL*，然后按照说明完成订阅。

如果您使用的是 AWS CLI，则需要在启动实例时提供 AMI ID。

## 仓储服务
<a name="storage"></a>

在上部署 SAP HANA AWS 需要特定的存储大小和性能，以确保 SAP HANA 数据和日志卷都符合 SAP KPIs 和大小调整建议。请参阅 [SAP HANA AWS 操作指南](https://docs.aws.amazon.com/sap/latest/sap-hana/hana-ops-storage-config.html)，了解不同实例类型的存储配置详细信息。您需要在实例启动期间根据这些建议配置存储。如果您计划用 FSx 于 ONTAP 存储，请参阅适用于 ONTA [P 的 SAP HANA AWS FSx 以](https://docs.aws.amazon.com/sap/latest/sap-hana/sap-hana-amazon-fsx.html)了解更多详细信息。

## Network
<a name="network"></a>

确保您的网络结构设置为部署与 SAP HANA 相关的资源。如果您尚未设置 Amazon VPC、子网、路由表等网络组件，则可以使用 AWS 模块化和可扩展 VPC 参考部署，在几分钟内轻松部署可扩展的 VPC 架构。有关详细信息，请参阅[参考部署指南](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html)。

# 配置操作系统
<a name="operating-system-configuration"></a>

此部分提供为 SAP HANA 配置操作系统的说明。

**Topics**
+ [SLES 12/15](configure-operating-system-sles-for-sap-12.x.md)
+ [RHEL 7/8/9](configure-operating-system-rhel-for-sap-7.x.md)

**注意**  
对于横向扩展工作负载，您必须为集群中的每个节点重复这些步骤。

# 配置 SLES 12/15 for SAP
<a name="configure-operating-system-sles-for-sap-12.x"></a>

**重要**  
在以下步骤中，您需要更新几个配置文件。我们建议您在修改文件之前先备份文件。如果需要，这将帮助您恢复到以前的配置。

1. 实例启动并运行后，使用安全外壳 (SSH) 和用于启动实例的密钥对连接到实例。
**注意**  
根据您的网络和安全设置，在访问 SAP HANA 实例之前，您可能必须先使用 SSH 连接到堡垒主机，或者您可能需要向安全组添加 IP 地址或端口以允许 SSH 访问。

1. 切换到根用户。

   或者，您可以使用 `sudo` 以 ec2-user 的身份执行以下命令。

1. 通过执行 `hostnamectl` 命令和更新 `/etc/hostname` 文件，为您的实例设置主机名和完全限定域名 (FQDN)。

   ```
      hostnamectl set-hostname --static <your_hostname>
      echo <your_hostname.example.com> > /etc/hostname
   ```

   打开一个新会话以验证主机名更改。

1. 确保 `DHCLIENT_SET_HOSTNAME` 参数设置为 **no**，以防止 DHCP 在重新启动期间更改主机名。

   ```
      grep DHCLIENT_SET_HOSTNAME /etc/sysconfig/network/dhcp
   ```

1. 将 `preserve_hostname` 参数设置为 true 以确保在重新启动期间保留主机名。

   ```
      sed -i '/preserve_hostname/ c\preserve_hostname: true' /etc/cloud/cloud.cfg
   ```

1. 在 `/etc/hosts` 文件中添加一个包含新主机名和 IP 地址的条目。

   ```
     <ip_address> <hostname.example.com> <hostname>
   ```

1. 如果您使用的是 BYOS SLES for SAP 映像，请向 SUSE 注册您的实例。确保您的订阅是针对 SLES for SAP。

   ```
      SUSEConnect -r <Your_Registration_Code>
      SUSEConnect -s
   ```

1. 确保安装了以下软件包：

    `systemd`, `tuned`, `saptune`, `libgcc_s1`, `libstdc++6`, `cpupower`, `autofs`, `nvme-cli`, `libssh2-1`, `libopenssl1_0_0` 

   您可以使用 `rpm` 命令检查是否已安装软件包。

   ```
      rpm -qi <package_name>
   ```

   然后，您可以使用 zypper install 命令来安装丢失的软件包。

   ```
      zypper install <package_name>
   ```
**注意**  
如果您要导入自己的 SLES 映像，则可能需要额外的软件包来确保您的实例以最佳方式设置。有关最新信息，请参阅适用于 SAP HANA 的 SLES for SAP 应用程序配置指南中的“软件包列表”部分，该指南附于 SAP OSS Note [1944799](https://me.sap.com/notes/1944799) 

1. 根据您的版本，确保您的实例运行于 SAP OSS Note [2205917](https://me.sap.com/notes/2205917) 或 [2684254](https://me.sap.com/notes/2684254) 中建议的内核版本上。如果需要，请更新系统以满足最低内核版本要求。您可以使用以下命令检查内核和其他软件包的版本：

   ```
      rpm -qi kernel*
   ```

1. 启动 `saptune daemon` 并使用以下命令将其设置为在系统重新启动时自动启动。

   ```
      saptune daemon start
   ```

1. 检查是否在 `saptune` 配置文件中设置了 `force_latency` 参数。

   ```
      grep force_latency /usr/lib/tuned/saptune/tuned.conf
   ```

   如果设置了参数，请跳过下一步，然后继续使用 `saptune` 激活 HANA 配置文件。

1. 根据 SAP OSS Note [2205917](https://me.sap.com/notes/2205917) 更新 `saptune HANA` 配置文件，然后运行以下命令为 SAP HANA 创建自定义配置文件。如果已设置 `force_latency` 参数，则不需要执行此步骤。

   ```
      mkdir /etc/tuned/saptune
      cp /usr/lib/tuned/saptune/tuned.conf /etc/tuned/saptune/tuned.conf
      sed -i "/\[cpu\]/ a force_latency=70" /etc/tuned/saptune/tuned.conf
      sed -i "s/script.sh/\/usr\/lib\/tuned\/saptune\/script.sh/"
   ```

1. 将 `tuned` 配置文件切换到 HANA，并验证所有设置均已正确配置。

   ```
      saptune solution apply HANA
      saptune solution verify HANA
   ```

1. 配置并启动网络时间协议 (NTP) 服务。您可以根据您的要求调整 NTP 服务器池；例如：
**注意**  
从 `/etc/ntp.conf` 中删除任何现有的无效 NTP 服务器池，然后添加以下内容。

   ```
      echo "server 0.pool.ntp.org" >> /etc/ntp.conf
      echo "server 1.pool.ntp.org" >> /etc/ntp.conf
      echo "server 2.pool.ntp.org" >> /etc/ntp.conf
      echo "server 3.pool.ntp.org" >> /etc/ntp.conf
      systemctl enable ntpd.service
      systemctl start ntpd.service
   ```
**提示**  
如果需要，您可以连接到内部 NTP 服务器，而不是连接到全局 NTP 服务器池。或者，您可以使用 [Amazon Time Sync Service](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html) 使系统时间保持同步。

1. `tsc`通过更新`current_clocksource`文件和 GRUB2 启动加载程序将时钟源设置为。

   ```
      echo "tsc" > /sys/devices/system/clocksource/*/current_clocksource
      cp /etc/default/grub /etc/default/grub.backup
      sed -i '/GRUB_CMDLINE_LINUX/ s|"| clocksource=tsc"|2' /etc/default/grub
      grub2-mkconfig -o /boot/grub2/grub.cfg
   ```

1. 重新启动系统以使更改生效。

1. 继续执行 [SAP HANA 的存储配置](configure-storage-for-sap-hana.md)。

# 配置 RHEL 7/8/9 for SAP
<a name="configure-operating-system-rhel-for-sap-7.x"></a>

**重要**  
在以下步骤中，您需要更新几个配置文件。我们建议您在修改文件之前先备份文件。如果需要，这将帮助您恢复到以前的配置。

1. 实例启动并运行后，使用安全外壳 (SSH) 和用于启动实例的密钥对连接到实例。
**注意**  
根据您的网络和安全设置，在访问 SAP HANA 实例之前，您可能必须先使用 SSH 连接到堡垒主机，或者您可能需要向安全组添加 IP 地址或端口以允许 SSH 访问。

1. 切换到根用户。

   或者，您可以使用 sudo 以 ec2-user 的身份执行以下命令。

1. 通过执行 `hostnamectl` 命令并更新 `/etc/cloud/cloud.cfg` 文件来为您的实例设置主机名，以确保在系统重新引导期间保留主机名。

   ```
      hostnamectl set-hostname --static <your_hostname>
      echo "preserve_hostname: true" >> /etc/cloud/cloud.cfg
   ```

   打开一个新会话以验证主机名更改。

1. 在 `/etc/hosts` 文件中添加一个包含新主机名和 IP 地址的条目。

   ```
     <ip address> <hostname.example.com> <hostname>
   ```

   确保安装了以下 SAP Notes 中列出的软件包（需要 SAP 门户访问权限）：
   +  [SAP Note 2002167 – Red Hat Enterprise Linux 7.x: Installation and Upgrade](https://me.sap.com/notes/2002167) 
   +  [SAP Note 2772999 – Red Hat Enterprise Linux 8.x: Installation and Configuration](https://me.sap.com/notes/2772999) 
   +  [SAP Note 3108316 – Red Hat Enterprise Linux 9.x: Installation and Configuration](https://me.sap.com/notes/3108316) 

     请注意，您的实例应该有权访问 SAP HANA 通道以安装 SAP HANA 所需的库。

     您可以使用 `rpm` 命令检查是否已安装软件包：

     ```
       rpm -qi <package_name>
     ```

     然后，您可以使用 `yum –y install` 命令安装任何丢失的软件包。

     ```
       yum -y install <package name>
     ```
**注意**  
根据您的基本 RHEL 映像，可能需要额外的软件包来确保您的实例以最佳方式设置。（如果您正在使用带有 HA 和 US 映像的 RHEL for SAP，则可以跳过此步骤。） 有关最新信息，请参阅附于 SAP OSS Note [2009879](https://me.sap.com/notes/2009879) 的 RHEL 配置指南。查看“安装其他必需软件包”部分和“附录 - RHEL 7 上的 SAP HANA 的必需软件包”部分中的软件包。

1. 确保您的实例运行于 SAP OSS Note [2292690](https://me.sap.com/notes/2292690)、[2777782](https://me.sap.com/notes/2777782) 和 [3108302](https://me.sap.com/notes/3108302) 中建议的内核版本上。如果需要，请更新系统以满足最低内核版本要求。您可以使用以下命令检查内核和其他软件包的版本。

   ```
   rpm -qi kernel*
   ```

1. 启动 `tuned daemon` 并使用以下命令将其设置为在系统重新启动时自动启动。

   ```
   systemctl start tuned
   
   systemctl enable tuned
   ```

1. 配置 `tuned HANA` 配置文件以针对 SAP HANA 工作负载优化您的实例。

   检查是否已在 `/usr/lib/tuned/sap-hana/tuned.conf` 文件中设置 `force_latency` 参数。如果设置了参数，请执行以下命令来应用和激活 `sap-hana` 配置文件。

   ```
   tuned-adm profile sap-hana
   tuned-adm active
   ```

   如果未设置 `force_latency` 参数，请执行以下步骤来修改和激活 `sap-hana` 配置文件。

   ```
   mkdir /etc/tuned/sap-hana
   cp /usr/lib/tuned/sap-hana/tuned.conf /etc/tuned/sap-hana/tuned.conf
   sed -i '/force_latency/ c\force_latency=70' /etc/tuned/sap-hana/tuned.conf
   tuned-adm profile sap-hana
   tuned-adm active
   ```

1. 运行以下命令禁用安全增强型 Linux (SELinux)。（如果您正在使用带有 HA 和 US 映像的 RHEL for SAP，则跳过此步骤。）

   ```
      sed -i 's/\(SELINUX=enforcing\|SELINUX=permissive\)/SELINUX=disabled/g' \/etc/selinux/config
   ```

1. 通过在 `/etc/default/grub` 文件中以 GRUB\$1CMDLINE\$1LINUX 开头的行中添加以下内容，在启动时禁用透明大页 (THP)。执行以下命令以添加所需的参数并重新配置 grub（如果您正在使用带有 HA 和 US 映像的 RHEL for SAP，则跳过此步骤）。

   ```
      sed -i '/GRUB_CMDLINE_LINUX/ s|"| transparent_hugepage=never"|2' /etc/default/grub
      cat /etc/default/grub
      grub2-mkconfig -o /boot/grub2/grub.cfg
   ```

1. 通过执行以下命令添加符号链接。（如果您正在使用带有 HA 和 US 映像的 RHEL for SAP，则跳过此步骤。）

   ```
      ln -s /usr/lib64/libssl.so.10 /usr/lib64/libssl.so.1.0.1
      ln -s /usr/lib64/libcrypto.so.10 /usr/lib64/libcrypto.so.1.0.1
   ```

1. 配置并启动网络时间协议 (NTP) 服务。您可以根据您的要求调整 NTP 服务器池。以下只是一个例子。
**注意**  
从 `/etc/ntp.conf` 中删除任何现有的无效 NTP 服务器池，然后添加以下内容。

   ```
      echo "server 0.pool.ntp.org" >> /etc/ntp.conf
      echo "server 1.pool.ntp.org" >> /etc/ntp.conf
      echo "server 2.pool.ntp.org" >> /etc/ntp.conf
      echo "server 3.pool.ntp.org" >> /etc/ntp.conf
      systemctl enable ntpd.service
      systemctl start ntpd.service
      systemctl restart systemd-timedated.service
   ```
**提示**  
如果需要，您可以连接到内部 NTP 服务器，而不是连接到全局 NTP 服务器池。或者，您也可以使用 [Amazon Time Sync Service](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html) 使系统时间保持同步。

1. `tsc`通过更新`current_clocksource`文件和 GRUB2 启动加载程序将 clocksource 设置为。

   ```
      echo "tsc" > /sys/devices/system/clocksource/*/current_clocksource
      cp /etc/default/grub /etc/default/grub.backup
      sed -i '/GRUB_CMDLINE_LINUX/ s|"| clocksource=tsc"|2' /etc/default/grub
      grub2-mkconfig -o /boot/grub2/grub.cfg
   ```

1.  RHEL9 仅限使用以下命令禁用 LVM 设备持久性。

   ```
   sed -i'.bkp' -e 's/ use_devicesfile = 0/use_devicesfile = 1/g' /etc/lvm/lvm.conf
   mv /etc/lvm/devices/system.devices /etc/lvm/devices/system.devices.bkp
   ```

1. 重新启动系统以使更改生效。

1. 重新启动后，以 root 用户身份登录并执行 `tuned-adm` 命令，验证所有 SAP 建议设置是否都已到位。

   ```
      tuned-adm verify
   
     “tuned-adm verify” creates a log file under /var/log/tuned/tuned.log Review this log file and ensure that  all checks have passed.
   ```

1. 继续进行存储配置。

# 配置存储
<a name="configure-storage"></a>

此部分提供针对 SAP HANA 配置存储的说明。

**Topics**
+ [存储架构](architecture.md)
+ [配置存储（EBS）](storage-configuration-ebs.md)
+ [配置存储（FSx 适用于 ONTAP）](sap-hana-amazon-fsx.md)
+ [配置存储（EFS）](configure-nfs-for-scale-out-workloads.md)

# 存储架构
<a name="architecture"></a>

本节包含 SAP HANA 的纵向扩展和横向扩展环境的架构图。

**Topics**
+ [Amazon FSx for NetApp ONTAP](architecture-fsx.md)

# Amazon FSx for NetApp ONTAP
<a name="architecture-fsx"></a>

以下架构图显示使用适用于 NetApp ONTAP 的 Amazon FSx 的 SAP HANA 工作负载的不同选项。

**Topics**
+ [纵向扩展环境](#fsx-scale-up)
+ [横向扩展环境](#fsx-scale-out)
+ [单可用区部署](#fsx-single)
+ [多可用区部署](#fsx-multi)

## 纵向扩展环境
<a name="fsx-scale-up"></a>

以下架构图显示使用 FSx for ONTAP 的 SAP HANA 工作负载的纵向扩展环境。

![\[使用 FSx for ONTAP 的 SAP HANA 工作负载的纵向扩展环境示意图。\]](http://docs.aws.amazon.com/zh_cn/sap/latest/sap-hana/images/scaleup.png)


## 横向扩展环境
<a name="fsx-scale-out"></a>

以下架构图显示使用 FSx for ONTAP 的 SAP HANA 工作负载的横向扩展环境。

![\[使用 FSx for ONTAP 的 SAP HANA 工作负载的横向扩展环境示意图。\]](http://docs.aws.amazon.com/zh_cn/sap/latest/sap-hana/images/scaleout.png)


## 单可用区部署
<a name="fsx-single"></a>

以下架构图显示使用 FSx for ONTAP 的 SAP HANA 工作负载的单可用区部署。

![\[使用 FSx for ONTAP 的 SAP HANA 工作负载的单可用区部署示意图。\]](http://docs.aws.amazon.com/zh_cn/sap/latest/sap-hana/images/fsx-single-az.png)


## 多可用区部署
<a name="fsx-multi"></a>

以下架构图显示使用 FSx for ONTAP 的 SAP HANA 工作负载的多可用区部署。

![\[使用 FSx for ONTAP 的 SAP HANA 工作负载的多可用区部署示意图。\]](http://docs.aws.amazon.com/zh_cn/sap/latest/sap-hana/images/fsx-multi-az.png)


# 配置存储（Amazon EBS）
<a name="storage-configuration-ebs"></a>

此部分介绍如何使用 Amazon EBS 部署和配置 SAP HANA 纵向扩展和横向扩展工作负载。

**Topics**
+ [计算需求](hana-storage-config-ebs.md)
+ [存储参考](hana-storage-config-reference-layout.md)
+ [部署工作负载](deployment-steps-using-the-aws-management-console.md)
+ [配置文件系统](configure-storage-for-sap-hana.md)
+ [架构](architecture-ebs.md)

# 计算 SAP HANA 的 EBS 存储需求
<a name="hana-storage-config-ebs"></a>

## 概述
<a name="_overview"></a>

本指南为在亚马逊上运行的 SAP HANA 工作负载提供了存储配置建议 EC2。了解如何配置 Amazon EBS 卷以满足 SAP 的存储关键性能指标 (KPIs)。

SAP HANA 主要在内存中存储和处理其数据，并通过将数据保存到持久性存储位置来防止数据丢失。为了实现最佳性能，用于 SAP HANA 数据和日志卷的存储解决方案应满足 SAP 的存储 KPI 要求。 AWS 已与 SAP 合作认证了适用于 SAP HANA 工作负载的亚马逊 EBS 通用固态硬盘（gp2 和 gp3）和预配置 IOPS 固态硬盘（io1、io2 Block Express）存储解决方案。

## 适用于 SAP HANA 的新 Amazon EBS 存储指南
<a name="_new_amazon_ebs_storage_guidelines_for_sap_hana"></a>

本文档介绍了一种基于内存的存储大小调整公式方法，取代了之前特定于实例的建议。通过此变更，客户能够更好地了解存储配置逻辑，并更好地掌控性能优化决策。

新指南重点讲解 gp3 和 io2 Block Express 卷，推荐将其作为所有新部署的最新标准。虽然现有部署仍然支持 gp2 和 io1 卷，但建议将 gp3 用于新的实施，因为其性能和成本效益是可预测的；对于需要更高性能的系统，可选择 io2 Block Express 作为升级路径。

**注意**  
如果您的 SAP HANA 系统是按照之前的指南（包括使用 Launch Wizard）部署的，则无需更改配置。基于先前建议的现有配置仍可满足必要需求。

## 使用 SAP HANA 硬件和云测量工具进行测试
<a name="_testing_with_sap_hana_hardware_and_cloud_measurement_tools"></a>

 AWS 已确保存储配置指南符合运行 SAP HANA 的关键性能指标 (KPIs)。但是，对于性能要求较高或偏离了标准推荐的工作负载，强烈建议您使用 SAP HANA 硬件和云测量工具验证存储配置的性能。

请参阅：
+ SAP Note：[2493172 - SAP HANA Hardware and Cloud Measurement Tools](https://me.sap.com/notes/2493172) 
+ SAP 文档：[SAP HANA Hardware and Cloud Measurement Tools](https://help.sap.com/viewer/product/HANA_HW_CLOUD_TOOLS/latest/en-US) 

## EBS 存储卷配置
<a name="_ebs_storage_volume_configurations"></a>

此部分提供计算 SAP HANA 存储需求的公式和方法。相关计算会将内存大小和工作负载特征纳入考量，以确定合适的卷大小和性能配置。请根据自己的具体工作负载要求和增长预测调整这些基准建议。

有关根据可用内存计算得出需求的信息，请参阅 [SAP HANA EBS 存储参考](hana-storage-config-reference-layout.md)。

**Topics**
+ [根和 SAP 二进制文件卷](#root_and_sap)
+ [HANA 数据卷](#hana_data)
+ [HANA 日志卷](#hana_log)
+ [HANA 共享卷](#hana_shared)
+ [HANA 备份卷（可选）](#hana_backup)
+ [何时对卷进行条带化](#_when_to_stripe_volumes)

**重要**  
某些 EC2 实例类型可能包括[实例存储](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html)，这种存储是临时性的，不得用于 SAP HANA 文件。请为所有 SAP HANA 存储需求配置 Amazon EBS 卷。

### 根和 SAP 二进制文件卷
<a name="root_and_sap"></a>

根卷包含操作系统文件、配置和日志。大小调整建议适用于大多数 SAP HANA 部署和大小，但可能因您的 AMI 策略和非 SAP 软件需求而异。在高使用率环境下，建议为 `/tmp` 文件系统单独配置一个卷。

SAP 二进制文件卷（`default /usr/sap/<SID>/`）包含常见的 SAP 可执行文件和二进制文件。

**存储类型**  
为根存储使用 gp3 卷。基准性能特征符合操作系统的要求。

 **大小计算** 

```
root_and_sap_volume_size = 50 GiB
```

 **IOPS 公式** 

```
root_and_sap_iops_target = 3000 (fixed)
```

 **吞吐量公式** 

```
root_and_sap_throughput_target = 125 MB/s (fixed)
```

**示例**  
 *任意内存系统根卷：*

**Example**  
+ 大小 = 50 GiB
+ IOPS = 3000
+ 吞吐量 = 125 MB/s

### HANA 数据卷
<a name="hana_data"></a>

存储\$1DATA 文件系统（默认 `/hana/data`）用于存储 SAP HANA 内存数据库的持久副本。虽然 SAP HANA 在运行时会将数据置于内存中，但该卷会通过定期保存点来保证数据持久性。存储必须处理混合工作负载模式（包括正常运行期间的随机读写以及保存点期间的顺序模式），同时保持持续的低延迟以保持数据库性能。

**大小计算**  
数据卷大小需求源自系统内存大小。虽然实际存储需求取决于您的具体工作负载、压缩比和增长预测，不过可以使用以下计算作为基准。要进行精确计算，请查阅 SAP 大小调整工具。
+ SAP 文档：[SAP Benchmark Sizing](https://www.sap.com/about/benchmark/sizing.html) 

```
data_volume_size = MROUND(memory_size * 1.2, 100)

Where:
- Size factor = 1.2
- Rounding factor = 100
```

**注意**  
虽然SAP已将其规模系数建议从1.2更新为1.5以适应业务需求，但 AWS 仍将1.2系数作为初始部署的基准。这是一种经济高效的方法，利用了 EBS 卷的动态扩展功能，使您可以随着需求的增长在线扩展存储容量。需要更多空间时，您可以轻松增加卷大小而无需中断服务。

**存储类型选择**
+ 使用带有自定义 IOPS/throughput 音量限制的 gp3
+ 需要稳定的亚毫秒延迟时，建议使用 io2 Block Express
+ 对于基于 Xen 的实例，请使用 gp2（条带化）或 io2 Block Express，因为 gp3 可能无法满足日志写入的 SAP HANA 存储延迟 KPI 要求。

 **IOPS 公式** 

```
data_iops_target = MROUND(7200 + (0.45 * memory_size), 100)

Where:
- Base IOPS = 7200
- IOPS factor = 0.45 per GiB of memory
- Rounding factor = 100
```
+ 大型实例可能需要多个卷才能实现指定的 data\$1iops\$1target。请参阅下面的条带化指南。
+ 满足 SAP HANA KPIs 数据要求的最低 IOPS 为 7000。

 **吞吐量公式** 

```
data_throughput_target = MIN(MROUND(450 + (0.2 * memory_size), 125), 2000)

Where:
- Base throughput = 450 MB/s
- Throughput factor = 0.2 MB/s per GiB of memory
- Maximum throughput = 2000 MB/s (see exception)
- Rounding factor = 125
```
+ 对于使用 gp3 卷的大型实例，单个卷可能无法实现所需的 `data_throughput_target`。有使用多个卷的更多信息，请参阅[何时对卷进行条带化](#_when_to_stripe_volumes)。
+ 在我们的公式MB/s. The base throughput value of 450 MB/s中，SAP 对 HANA 数据量的最低吞吐量要求为 400，这可确保这个 SAP KPI 得到额外的预留空间以实现最佳性能。
+ 每个实例类型都有自己的 Amazon EBS 吞吐量最大值。有关详细信息，请参阅文档中的 [Amazon EBS 优化实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html)。 AWS 
+ 例外：对于 32 TB 及更大的实例（当前实例类型 u7inh-32tb.480xlarge），我们建议预置 4000 或更高的吞吐量。 MB/s 对于所有其他实例大小，如果您需要超过 2000 MB/s 的吞吐量，则可以相应地调整公式中的最大吞吐量值。

**卷条带化**  
当您需要满足特定的技术限制、性能要求或运营要求时，请实施卷条带化。有关何时适合实施条带化的详细指导，请参阅[何时对卷进行条带化](#_when_to_stripe_volumes)。

对于 gp3 卷，吞吐量通常是您会遇到的第一个限制。对于 io2 Block Express 卷，吞吐量按照 IOPS × I/O 大小计算。SAP HANA 工作负载通常使用 256 KiB 的 I/O 操作——在这个规模下，一个 io2 Block Express 卷可以在 16,000 IOPS 下实现 4,000 个 MB/s 吞吐量。考虑到此容量，io2 Block Express 上的大多数 HANA 部署都不需要进行卷条带化。如果需要更高的吞吐量，则可以相应地调整预调配 IOPS。

如果要对数据卷实施条带化，请使用 256 KB 的条带大小来优化数据操作。

**示例**  
 *512 GiB 内存系统 HANA 数据卷：*

**Example**  
+ 存储类型选择 = GP3
+ 大小 = MROUND((512 GiB \$1 1.2),100) = 600 GiB
+ IOPS = MROUND(7200 \$1 (0.45 \$1 512), 100) = 7460 IOPS
+ 吞吐量 = MIN(MROUND(450 \$1 (0.2 \$1 512), 125), 2000) = 500 MB/s
+ 条带化 = 非必需。

 *4 TiB 内存系统 HANA 数据卷：*

**Example**  
+ 存储类型选择 = GP3
+ 大小 = MROUND((4096 GiB \$1 1.2),100) = 4900 GiB
+ IOPS = MROUND(7200 \$1 (0.45 \$1 4096), 100) = 9000 IOPS
+ 吞吐量 = MIN(MROUND(450 \$1 (0.2 \$1 4096), 125), 2000) = 1250 MB/s
+ 条带化 = 视吞吐量而定。考虑一下 2 x 2,450 GiB 文件系统、4500 IOPS、625 吞吐量 MB/s 

### HANA 日志卷
<a name="hana_log"></a>

存储\$1LOG 文件系统（默认为 `/hana/log`）用于存储重做日志文件以确保数据的持久性和一致性。该文件系统处理高频率、小型顺序写入的写入密集型工作负载。由于日志写入会直接影响数据库的响应时间和事务性能，因此存储卷需要稳定的亚毫秒延迟。

**大小计算**  
日志卷大小需求源自系统内存大小。您可以根据事务量和日志备份频率进行修改。

```
log_volume_size = MROUND((memory_size * 0.5),100)

Where:
- Minimum Size = 50 GiB
- Maximum Size = 500 GiB
- Rounding factor = 100
```

**存储类型选择**
+ 使用带有自定义 IOPS/throughput 音量限制的 gp3
+ 需要稳定的亚毫秒延迟时，建议使用 io2 Block Express
+ 对于基于 Xen 的实例，请使用 gp2（条带化）或 io2 Block Express，因为 gp3 可能无法满足日志写入的 SAP HANA 存储延迟 KPI 要求。

 **IOPS 公式** 

```
log_iops_target = 3000

Where:
- Base IOPS = 3000
```
+ 满足 SAP HANA KPIs 数据要求的最低 IOPS 为 3000。

 **吞吐量公式** 

```
log_throughput_target = MIN(MROUND(300 + (0.015 * memory_size), 300), 500)

Where:
- Base throughput = 300 MB/s
- Throughput factor = 0.015 MB/s per GiB of memory
- Maximum throughput = 500 MB/s
- Rounding factor = 300
```
+ SAP 对 HANA 日志卷的最低吞吐量要求为 250MB/s. The base throughput value of 300 MB/s，我们公式中的四舍五入系数可确保该值随着大小的变化而保持不变，并确保在满足 SAP KPI 时有额外的余量以实现最佳性能。

**卷条带化**  
对于日志卷，使用 gp3 或 io2 Block Express 卷时，通常不需要进行条带化即可实现 `log_throughput_target`。单个卷通常足以为日志操作提供足够的性能。

如果要对日志卷实施条带化，请使用 64 KB 条带大小，以针对日志操作典型的顺序写入模式进行优化。请参阅[何时对卷进行条带化](#_when_to_stripe_volumes)部分，了解在哪些情况下需要使用条带化才能实现吞吐量、IOPS 或性能目标。

**示例**  
 *512 GiB 内存系统 HANA 日志卷：*

**Example**  
+ 存储类型选择 = GP3
+ 大小 = MROUND512 GiB \$1 0.5) ,100 = 300 GiB（最大 500 GiB 以内）
+ IOPS = 3000
+ 吞吐量 = MIN(MROUND(300 \$1 (0.015 \$1 512), 300), 500) = 300 MB/s
+ 条带化 = 非必需。

### HANA 共享卷
<a name="hana_shared"></a>

HANA 共享文件系统（默认为 `/hana/shared`）包含 SAP HANA 安装文件、跟踪文件和共享配置文件。

**注意**  
在横向扩展部署中，所有节点都必须能够访问此文件系统。

**大小计算**  
对于单节点部署：

```
shared_volume_size = MIN(memory_size, 1024)

Where:
- memory_size is system memory in GiB
- 1024 represents 1 TiB maximum
```

对于横向扩展部署：

对于横向扩展 SAP HANA 系统，每部署 4 个 worker 节点，/hana/shared 文件系统就需要与一个 worker 节点内存大小相等的磁盘空间。

```
shared_volume_size = worker_node_memory * CEILING(number_of_worker_nodes/4)

Where:
- worker_node_memory is the memory size of a single worker node in GiB
- number_of_worker_nodes is the total number of worker nodes
- CEILING rounds up to the nearest whole number
```

 **横向扩展部署示例** 


|  |  |  |  | 
| --- |--- |--- |--- |
|  Worker 节点内存  |  节点数量  |  计算  |  所需大小  | 
|  2 TiB  |  1-4 个节点  |  2048 \$1 1  |  2 TiB  | 
|  2 TiB  |  5-8 个节点  |  2048 \$1 2  |  4 TiB  | 
|  2 TiB  |  9-11 个节点  |  2048 \$1 3  |  6 TiB  | 
|  2 TiB  |  12-15 个节点  |  2048 \$1 4  |  8 TiB  | 

**存储类型选择**
+ GP3 为纵向扩展部署提供了所需的性能特征
+ Amazon EFS 是针对纵向扩展和横向扩展部署的可行方案，可实现跨所有节点的共享访问并具备所需的性能特性。有关横向扩展配置，请参阅[配置存储（EFS）](configure-nfs-for-scale-out-workloads.md) 

 **IOPS 公式** 

```
shared_iops_target = 3000

Where:
- Base IOPS = 3000 (fixed)
```

 **吞吐量公式** 

```
shared_throughput_target = 125

Where:
- Base throughput = 125 MB/s (fixed)
```

**示例**  
 *512 GiB 内存系统 HANA 共享卷：*

**Example**  
+ 大小 = 512 GiB
+ IOPS = 3000
+ 吞吐量 = 125 MB/s

### HANA 备份卷（可选）
<a name="hana_backup"></a>

`/backup` 文件系统为基于 SAP HANA 文件的备份（包括数据和日志备份）提供了本地存储。虽然本地文件系统备份可能对非关键系统有用，也可以作为辅助备份方案，但它们却在生产环境中带来了几个挑战：
+ 需要执行额外的同步步骤才能将备份移动到 Amazon S3 等持久存储
+ 如果磁盘或硬件出现故障，恢复点目标可能会受到影响
+ 需要通过事务管理和监控来仔细管理本地存储容量
+ 在横向扩展中，卷需要能够可供所有节点访问

**重要**  
 AWS 建议使用 [AWS Backup for SAP HANA](https://docs.aws.amazon.com/sap/latest/sap-hana/aws-backint-agent-backup.html) 或 [AWS Backint Agent](https://docs.aws.amazon.com/sap/latest/sap-hana/aws-backint-agent-backup.html) 来代替基于文件的备份。这些解决方案提供了到持久存储的直接备份，并简化了备份管理。

**大小计算**  
备份卷的大小在很大程度上取决于系统的使用情况。以下内容应作为初始基准，但在部署后需根据备份大小、变更量、本地副本保留策略和应急需求进行调整。

```
backup_volume_size = memory_size * 3

Where:
- memory_size is system memory in GiB
```

**存储类型选择**
+ 对于单节点部署，我们建议使用适用于 SAP HANA 的 Amazon EBS 吞吐量优化型 HDD（st1）卷来执行基于文件的备份。此卷类型提供专门用于大型顺序工作负载的低成本磁性存储。SAP HANA 使用 I/O 带有大块的顺序备份数据库，因此 st1 卷为这种情况提供了低成本、高性能的选项。要了解有关 st1 卷的更多信息，请参阅 [Amazon EBS 卷类型](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html)。
+ 对于多节点部署，我们建议使用 Amazon EFS for SAP HANA 执行基于文件的备份。它可以支持超过 10 个 IOPS GB/sec 和超过 500,000 个 IOPS 的性能。

 **IOPS 公式** 

```
backup_iops_target = n/a
```

**注意**  
ST1 基准为 500 IOPs ，但这是不可配置的。备份操作通常更多地依赖吞吐量，而不是 IOPS 性能。

**吞吐量公式**  
对于 ST1 卷，使用此公式作为起点来确定备份吞吐量所需的卷数。根据您的实际备份时段需求和性能监控数据调整最终卷数。

```
backup_volumes_for_throughput = CEILING(memory_size/6000) * 500

Where:
- memory_size is system memory in GiB
- 6000 represents the GiB threshold for striping
- 500 is maximum throughput MB/s per st1 volume
- Result indicates number of volumes needed for throughput
```

 **横向扩展部署示例** 


|  |  |  | 
| --- |--- |--- |
|  Worker 节点内存  |  卷  |  吞吐量  | 
|  4 TiB  |  1  |  500 MB/s  | 
|  12 TiB  |  2  |  1000 MB/s  | 
|  24TiB  |  4  |  2000 MB/s  | 

### 何时对卷进行条带化
<a name="_when_to_stripe_volumes"></a>

Linux 逻辑卷管理 (LVM) 条带化可将数据分发到多个 EBS 卷以提高性能。 I/O 条带化卷将充当单个逻辑卷，读取和写入分布在条带集中的所有卷上。

在以下场景中实施存储卷条带化：

技术限制  
+ 吞吐量要求超过单个卷的最大值（gp3 为 1,000 MB/s ，io2 Block Express MB/s 为 4,000）。
  + 对于 io2 Block Express 卷，吞吐量按照 IOPS × I/O 大小计算。SAP HANA 工作负载通常使用 256 KiB 的 I/O 操作——在这个规模下，一个 io2 Block Express 卷可以在 16,000 IOPS 下实现 4,000 个 MB/s 吞吐量。考虑到此容量，io2 Block Express 上的大多数 HANA 部署都不需要进行卷条带化。如果需要更高的吞吐量，则可以相应地调整预调配 IOPS。
+ IOPS 需求超出了单个卷的最大值（对 gp3 为 16000，对 io2 Block Express 为 256000）。
+ 卷大小需求超出了单个卷的最大值（对 gp3 为 16 TiB，对 io2 Block Express 为 64 TiB）。

操作需求  
+ 需要在特定时段内完成的大型数据加载或备份
+ 内存大小大于 4 TiB 且数据操作持续时间超出了可接受值的系统
+ 需要持续并行 I/O 的高吞吐量分析工作负载
+ 预计增长将超出单卷限制

**重要**  
在实施条带化之前，请首先考虑使用性能较高的 EBS 卷类型，或者在单卷限制内调整 IOPS 和吞吐量设置。分条需要相同类型和大小的体积以及平衡的 I/O 图案才能有效。

# SAP HANA EBS 存储参考
<a name="hana-storage-config-reference-layout"></a>

**重要**  
这些值可作为一个起点。有关如何针对特定工作负载来调整存储大小和配置存储的指导（包括计算和条带化考虑事项），请参阅[计算需求](hana-storage-config-ebs.md)。

**Topics**
+ [认证实例 – 常规](#general)
+ [认证实例 – 内存增强型](#_certified_instances_high_memory)
+ [适合非生产用途](#_suitable_for_non_production_use)

## 认证实例 – 常规
<a name="general"></a>

对于内存存储小于 2 TiB 的系统，通常可以使用标准 Amazon EBS 卷进行配置。gp3 卷通常用于为各种工作负载平衡价格和性能，而当您需要较高的耐久性或希望缩短启动和 EBS 快照还原时间时，则应考虑使用 io2 卷。

我们为以下内存配置提供了示例布局：

内存大小：[256 GiB](#mem-256)、[384 GiB](#mem-384)、[488 GiB](#mem-512)、[512 GiB](#mem-512)、[768 GiB](#mem-768)、[976 GiB](#mem-1024)、[1024 GiB](#mem-1024)、[1536 GiB](#mem-1536)、[2 TiB](#mem-2tb) 

### 256 GiB 内存系统
<a name="mem-256"></a>

适用的实例类型：**r8i.8xlarge**、**r7i.8xlarge**、**r6i.8xlarge**、**r5.8xlarge**、**r5b.8xlarge**、**x2iedn.2xlarge**、**r4.8xlarge**、**r3.8xlarge1**、**x1e.2xlarge1** 

建议的存储配置：


| 系统配置 | 目标大小（GiB） | 目标 IOPS | 目标吞吐量（MB/s） | 目标卷类型 | 条带配置 | 评论 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  根/操作系统  |  50  |  3000  |  125  |  gp3  |  |  | 
|  SAP 二进制文件  |  50  |  3000  |  125  |  gp3  |  |  | 
|  HANA 数据  |  300  |  7,300  |  500  |  gp3/io2  |  非必需  |  | 
|  HANA 日志  |  100  |  3000  |  300  |  gp3/io2  |  非必需  |  | 
|  HANA 共享  |  256  |  3000  |  125  |  gp3  |  |  对于横向扩展，请查看公式或使用 EFS  | 
|  HANA 备份  |  -  |  -  |  -  |  st1/efs  |  |  可选且视工作负载而定。查看 [HANA 备份](hana-storage-config-ebs.md#hana_backup)   | 

 1 Xen 实例类型。我们建议迁移到 Nitro 实例类型。

### 384 GiB 内存系统
<a name="mem-384"></a>

适用的实例类型：**r8i.12xlarge**、**r7i.12xlarge**、**r6i.12xlarge**、**r5.12xlarge**、**r5b.12xlarge** 

建议的存储配置：


| 系统配置 | 目标大小（GiB） | 目标 IOPS | 目标吞吐量（MB/s） | 目标卷类型 | 条带配置 | 评论 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  根/操作系统  |  50  |  3000  |  125  |  gp3  |  |  | 
|  SAP 二进制文件  |  50  |  3000  |  125  |  gp3  |  |  | 
|  HANA 数据  |  500  |  7,400  |  500  |  gp3/io2  |  非必需  |  | 
|  HANA 日志  |  200  |  3000  |  300  |  gp3/io2  |  非必需  |  | 
|  HANA 共享  |  384  |  3000  |  125  |  gp3  |  |  对于横向扩展，请查看公式或使用 EFS  | 
|  HANA 备份  |  -  |  -  |  -  |  st1/efs  |  |  可选且视工作负载而定。查看 [HANA 备份](hana-storage-config-ebs.md#hana_backup)   | 

### 488 GiB/512 GiB 内存系统
<a name="mem-512"></a>

适用的实例类型：**r8i.16xlarge**、**r7i.16xlarge**、**r6i.16xlarge**、**r5.16xlarge**、**r5b.16xlarge**、**x2iedn.4xlarge**、**r4.16xlarge**、**x1e.4xlarge** 

建议的存储配置：


| 系统配置 | 目标大小（GiB） | 目标 IOPS | 目标吞吐量（MB/s） | 目标卷类型 | 条带配置 | 评论 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  根/操作系统  |  50  |  3000  |  125  |  gp3  |  |  | 
|  SAP 二进制文件  |  50  |  3000  |  125  |  gp3  |  |  | 
|  HANA 数据  |  600  |  7,400  |  500  |  gp3/io2  |  非必需  |  | 
|  HANA 日志  |  300  |  3000  |  300  |  gp3/io2  |  非必需  |  | 
|  HANA 共享  |  512  |  3000  |  125  |  gp3  |  |  对于横向扩展，请查看公式或使用 EFS  | 
|  HANA 备份  |  -  |  -  |  -  |  st1/efs  |  |  可选且视工作负载而定。查看 [HANA 备份](hana-storage-config-ebs.md#hana_backup)   | 

### 768 GiB 内存系统
<a name="mem-768"></a>

**********适用的实例类型：**r8i.24xlarge、r7i.24xlarge、r6i.24xlarge、r5.24xlarge、r5.met** **al、r5b.24xlarge、r5b.24xlarge、**r** 5b.metal、x** 8i.12xlarge********** 

建议的存储配置：


| 系统配置 | 目标大小（GiB） | 目标 IOPS | 目标吞吐量（MB/s） | 目标卷类型 | 条带配置 | 评论 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  根/操作系统  |  50  |  3000  |  125  |  gp3  |  |  | 
|  SAP 二进制文件  |  50  |  3000  |  125  |  gp3  |  |  | 
|  HANA 数据  |  900  |  7500  |  625  |  gp3/io2  |  非必需  |  | 
|  HANA 日志  |  400  |  3000  |  300  |  gp3/io2  |  非必需  |  | 
|  HANA 共享  |  768  |  3000  |  125  |  gp3  |  |  对于横向扩展，请查看公式或使用 EFS  | 
|  HANA 备份  |  -  |  -  |  -  |  st1/efs  |  |  可选且视工作负载而定。查看 [HANA 备份](hana-storage-config-ebs.md#hana_backup)   | 

### 976 GiB/1024 GiB 内存系统
<a name="mem-1024"></a>

******适用的实例类型：**x2idn.16xlarge、r6i.32xlarge、x1.16xlarge 1、x8i.16xlarge 1、x8i** .16xlarge****** 

建议的存储配置：


| 系统配置 | 目标大小（GiB） | 目标 IOPS | 目标吞吐量（MB/s） | 目标卷类型 | 条带配置 | 评论 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  根/操作系统  |  50  |  3000  |  125  |  gp3  |  |  | 
|  SAP 二进制文件  |  50  |  3000  |  125  |  gp3  |  |  | 
|  HANA 数据  |  1,200  |  7,700  |  625  |  gp3/io2  |  非必需  |  | 
|  HANA 日志  |  500  |  3000  |  300  |  gp3/io2  |  非必需  |  | 
|  HANA 共享  |  1024  |  3000  |  125  |  gp3  |  |  对于横向扩展，请查看公式或使用 EFS  | 
|  HANA 备份  |  -  |  -  |  -  |  st1/efs  |  |  可选且视工作负载而定。查看 [HANA 备份](hana-storage-config-ebs.md#hana_backup)   | 

 1 Xen 实例类型。我们建议迁移到 Nitro 实例类型。

### 1536 GiB 内存系统
<a name="mem-1536"></a>

******适用的实例类型：**r8i.48xlarge、x2idn.24xlarge、r7i.48xlarge、x8i.24xlarge、x8i.24** xlarge****** 

建议的存储配置：


| 系统配置 | 目标大小（GiB） | 目标 IOPS | 目标吞吐量（MB/s） | 目标卷类型 | 条带配置 | 评论 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  根/操作系统  |  50  |  3000  |  125  |  gp3  |  |  | 
|  SAP 二进制文件  |  50  |  3000  |  125  |  gp3  |  |  | 
|  HANA 数据  |  1800  |  7,900  |  750  |  gp3/io2  |  非必需  |  | 
|  HANA 日志  |  500  |  3000  |  300  |  gp3/io2  |  非必需  |  | 
|  HANA 共享  |  1024  |  3000  |  125  |  gp3  |  |  对于横向扩展，请查看公式或使用 EFS  | 
|  HANA 备份  |  -  |  -  |  -  |  st1/efs  |  |  可选且视工作负载而定。查看 [HANA 备份](hana-storage-config-ebs.md#hana_backup)   | 

### 2 TiB 内存系统
<a name="mem-2tb"></a>

****适用的实例类型：**x2idn.32xlarge、x1.32xlarge、x8i.32** xlarge**** 

建议的存储配置：


| 系统配置 | 目标大小（GiB） | 目标 IOPS | 目标吞吐量（MB/s） | 目标卷类型 | 条带配置 | 评论 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  根/操作系统  |  50  |  3000  |  125  |  gp3  |  |  | 
|  SAP 二进制文件  |  50  |  3000  |  125  |  gp3  |  |  | 
|  HANA 数据  |  2,500  |  8,100  |  875  |  gp3/io2  |  非必需  |  | 
|  HANA 日志  |  500  |  3000  |  300  |  gp3/io2  |  非必需  |  | 
|  HANA 共享  |  1024  |  3000  |  125  |  gp3  |  |  对于横向扩展，请查看公式或使用 EFS  | 
|  HANA 备份  |  -  |  -  |  -  |  st1/efs  |  |  可选且视工作负载而定。查看 [HANA 备份](hana-storage-config-ebs.md#hana_backup)   | 

## 认证实例 – 内存增强型
<a name="_certified_instances_high_memory"></a>

高内存系统的存储配置需要仔细规划，以满足 I/O 不断增长的需求。可能需要使用条带化配置 and/or io2 中的多个 EBS 卷来满足更高的 IOPs 吞吐量需求，尤其是对数据卷的需求。与小型系统一样，还应考虑持久性、启动和快照还原时间。

我们为以下内存配置提供了示例布局：

内存大小：[3 TiB](#mem-3tb)、[4 TiB](#mem-4tb)、[6 TiB](#mem-6tb)、[8 TiB](#mem-8tb)、[9 TiB](#mem-9tb)、[12 TiB](#mem-12tb)、[16 TiB](#mem-16tb)、[18 TiB](#mem-18tb)、[24 TiB](#mem-24tb)、[32 TiB](#mem-32tb) 

### 3 TiB 内存系统
<a name="mem-3tb"></a>

****适用的实例类型：**r8i.96xlarge、x2iedn.24xlarge、、x8i.48xlarge、u-3tb1.56xlarge**、u-3tb1.56 **xlarge****** 

建议的存储配置：


| 系统配置 | 目标大小（GiB） | 目标 IOPS | 目标吞吐量（MB/s） | 目标卷类型 | 条带配置 | 评论 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  根/操作系统  |  50  |  3000  |  125  |  gp3  |  |  | 
|  SAP 二进制文件  |  50  |  3000  |  125  |  gp3  |  |  | 
|  HANA 数据  |  3,700  |  8,600  |  1,125  |  gp3/io2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sap/latest/sap-hana/hana-storage-config-reference-layout.html)  |  | 
|  HANA 日志  |  500  |  3000  |  300  |  gp3/io2  |  非必需  |  | 
|  HANA 共享  |  1024  |  3000  |  125  |  gp3  |  |  对于横向扩展，请查看公式或使用 EFS  | 
|  HANA 备份  |  -  |  -  |  -  |  st1/efs  |  |  可选且视工作负载而定。查看 [HANA 备份](hana-storage-config-ebs.md#hana_backup)   | 

### 4 TiB 内存系统
<a name="mem-4tb"></a>

****适用的实例类型：**x2iedn.32xlarge、x1e.32xlarge、x8i.64xlarge****** 

建议的存储配置：


| 系统配置 | 目标大小（GiB） | 目标 IOPS | 目标吞吐量（MB/s） | 目标卷类型 | 条带配置 | 评论 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  根/操作系统  |  50  |  3000  |  125  |  gp3  |  |  | 
|  SAP 二进制文件  |  50  |  3000  |  125  |  gp3  |  |  | 
|  HANA 数据  |  4,900  |  9,000  |  1250  |  gp3/io2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sap/latest/sap-hana/hana-storage-config-reference-layout.html)  |  | 
|  HANA 日志  |  500  |  3000  |  300  |  gp3/io2  |  非必需  |  | 
|  HANA 共享  |  1024  |  3000  |  125  |  gp3  |  |  对于横向扩展，请查看公式或使用 EFS  | 
|  HANA 备份  |  -  |  -  |  -  |  st1/efs  |  |  可选且视工作负载而定。查看 [HANA 备份](hana-storage-config-ebs.md#hana_backup)   | 

### 6 TiB 内存系统
<a name="mem-6tb"></a>

******适用的实例类型：、**x8i.96xlarge、u-6tb1.112xlarge、u-6tb1.56xlarge、u-6tb1.metal、**u7i-6** tb.** 112xlarge****** 

建议的存储配置：


| 系统配置 | 目标大小（GiB） | 目标 IOPS | 目标吞吐量（MB/s） | 目标卷类型 | 条带配置 | 评论 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  根/操作系统  |  50  |  3000  |  125  |  gp3  |  |  | 
|  SAP 二进制文件  |  50  |  3000  |  125  |  gp3  |  |  | 
|  HANA 数据  |  7,300  |  10000  |  1,625  |  gp3/io2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sap/latest/sap-hana/hana-storage-config-reference-layout.html)  |  | 
|  HANA 日志  |  500  |  3000  |  300  |  gp3/io2  |  非必需  |  | 
|  HANA 共享  |  1024  |  3000  |  125  |  gp3  |  |  对于横向扩展，请查看公式或使用 EFS  | 
|  HANA 备份  |  -  |  -  |  -  |  st1/efs  |  |  可选且视工作负载而定。查看 [HANA 备份](hana-storage-config-ebs.md#hana_backup)   | 

### 8 TiB 内存系统
<a name="mem-8tb"></a>

适用的实例类型：**u7i-8tb.112xlarge** 

建议的存储配置：


| 系统配置 | 目标大小（GiB） | 目标 IOPS | 目标吞吐量（MB/s） | 目标卷类型 | 条带配置 | 评论 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  根/操作系统  |  50  |  3000  |  125  |  gp3  |  |  | 
|  SAP 二进制文件  |  50  |  3000  |  125  |  gp3  |  |  | 
|  HANA 数据  |  9,800  |  10,900  |  2000  |  gp3/io2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sap/latest/sap-hana/hana-storage-config-reference-layout.html)  |  | 
|  HANA 日志  |  500  |  3000  |  300  |  gp3/io2  |  非必需  |  | 
|  HANA 共享  |  1024  |  3000  |  125  |  gp3  |  |  对于横向扩展，请查看公式或使用 EFS  | 
|  HANA 备份  |  -  |  -  |  -  |  st1/efs  |  |  可选且视工作负载而定。查看 [HANA 备份](hana-storage-config-ebs.md#hana_backup)   | 

### 9 TiB 内存系统
<a name="mem-9tb"></a>

适用的实例类型：**u-9tb1.112xlarge**、**u-9tb1.metal** 

建议的存储配置：


| 系统配置 | 目标大小（GiB） | 目标 IOPS | 目标吞吐量（MB/s） | 目标卷类型 | 条带配置 | 评论 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  根/操作系统  |  50  |  3000  |  125  |  gp3  |  |  | 
|  SAP 二进制文件  |  50  |  3000  |  125  |  gp3  |  |  | 
|  HANA 数据  |  11,100  |  11,300  |  2000  |  gp3/io2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sap/latest/sap-hana/hana-storage-config-reference-layout.html)  |  | 
|  HANA 日志  |  500  |  3000  |  300  |  gp3/io2  |  非必需  |  | 
|  HANA 共享  |  1024  |  3000  |  125  |  gp3  |  |  对于横向扩展，请查看公式或使用 EFS  | 
|  HANA 备份  |  -  |  -  |  -  |  st1/efs  |  |  可选且视工作负载而定。查看 [HANA 备份](hana-storage-config-ebs.md#hana_backup)   | 

### 12 TiB 内存系统
<a name="mem-12tb"></a>

适用的实例类型：**u-12tb1.112xlarge**、**u-12tb1.metal**、**u7i-12tb.224xlarge** 

建议的存储配置：


| 系统配置 | 目标大小（GiB） | 目标 IOPS | 目标吞吐量（MB/s） | 目标卷类型 | 条带配置 | 评论 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  根/操作系统  |  50  |  3000  |  125  |  gp3  |  |  | 
|  SAP 二进制文件  |  50  |  3000  |  125  |  gp3  |  |  | 
|  HANA 数据  |  14,700  |  12,700  |  2000  |  gp3/io2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sap/latest/sap-hana/hana-storage-config-reference-layout.html)  |  | 
|  HANA 日志  |  500  |  3000  |  500  |  gp3/io2  |  非必需  |  | 
|  HANA 共享  |  1024  |  3000  |  125  |  gp3  |  |  对于横向扩展，请查看公式或使用 EFS  | 
|  HANA 备份  |  -  |  -  |  -  |  st1/efs  |  |  可选且视工作负载而定。查看 [HANA 备份](hana-storage-config-ebs.md#hana_backup)   | 

### 16 TiB 内存系统
<a name="mem-16tb"></a>

适用的实例类型：**u7in-16tb.112xlarge**、**u7in-16tb.224xlarge** 

建议的存储配置：


| 系统配置 | 目标大小（GiB） | 目标 IOPS | 目标吞吐量（MB/s） | 目标卷类型 | 条带配置 | 评论 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  根/操作系统  |  50  |  3000  |  125  |  gp3  |  |  | 
|  SAP 二进制文件  |  50  |  3000  |  125  |  gp3  |  |  | 
|  HANA 数据  |  19,700  |  14,600  |  2000  |  gp3/io2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sap/latest/sap-hana/hana-storage-config-reference-layout.html)  |  | 
|  HANA 日志  |  500  |  3000  |  500  |  gp3/io2  |  非必需  |  | 
|  HANA 共享  |  1024  |  3000  |  125  |  gp3  |  |  对于横向扩展，请查看公式或使用 EFS  | 
|  HANA 备份  |  -  |  -  |  -  |  st1/efs  |  |  可选且视工作负载而定。查看 [HANA 备份](hana-storage-config-ebs.md#hana_backup)   | 

### 18 TiB 内存系统
<a name="mem-18tb"></a>

适用的实例类型：**u-18tb1.112xlarge**、**u-18tb1.metal** 

建议的存储配置：


| 系统配置 | 目标大小（GiB） | 目标 IOPS | 目标吞吐量（MB/s） | 目标卷类型 | 条带配置 | 评论 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  根/操作系统  |  50  |  3000  |  125  |  gp3  |  |  | 
|  SAP 二进制文件  |  50  |  3000  |  125  |  gp3  |  |  | 
|  HANA 数据  |  22,100  |  15,500  |  2000  |  gp3/io2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sap/latest/sap-hana/hana-storage-config-reference-layout.html)  |  | 
|  HANA 日志  |  500  |  3000  |  500  |  gp3/io2  |  非必需  |  | 
|  HANA 共享  |  1024  |  3000  |  125  |  gp3  |  |  对于横向扩展，请查看公式或使用 EFS  | 
|  HANA 备份  |  -  |  -  |  -  |  st1/efs  |  |  可选且视工作负载而定。查看 [HANA 备份](hana-storage-config-ebs.md#hana_backup)   | 

### 24 TiB 内存系统
<a name="mem-24tb"></a>

适用的实例类型：**u7in-24tb.224xlarge**、**u-24tb1.metal** 

建议的存储配置：


| 系统配置 | 目标大小（GiB） | 目标 IOPS | 目标吞吐量（MB/s） | 目标卷类型 | 条带配置 | 评论 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  根/操作系统  |  50  |  3000  |  125  |  gp3  |  |  | 
|  SAP 二进制文件  |  50  |  3000  |  125  |  gp3  |  |  | 
|  HANA 数据  |  29,500  |  18,300  |  2000  |  gp3/io2（推荐 io2）  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sap/latest/sap-hana/hana-storage-config-reference-layout.html)  |  对于 gp3，使用 2 个条带即可达到吞吐量目标；为了减小卷容量，建议使用 3 个条带。  | 
|  HANA 日志  |  500  |  3000  |  500  |  gp3/io2  |  非必需  |  | 
|  HANA 共享  |  1024  |  3000  |  125  |  gp3  |  |  对于横向扩展，请查看公式或使用 EFS  | 
|  HANA 备份  |  -  |  -  |  -  |  st1/efs  |  |  可选且视工作负载而定。查看 [HANA 备份](hana-storage-config-ebs.md#hana_backup)   | 

### 32 TiB 内存系统
<a name="mem-32tb"></a>

适用的实例类型：**u7inh-32tb.480xlarge** 

建议的存储配置：


| 系统配置 | 目标大小（GiB） | 目标 IOPS | 目标吞吐量（MB/s） | 目标卷类型 | 条带配置 | 评论 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  根/操作系统  |  50  |  3000  |  125  |  gp3  |  |  | 
|  SAP 二进制文件  |  50  |  3000  |  125  |  gp3  |  |  | 
|  HANA 数据  |  39,300  |  21,900  |  4,000  |  gp3/io2（推荐 io2）  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sap/latest/sap-hana/hana-storage-config-reference-layout.html)  |  | 
|  HANA 日志  |  500  |  3000  |  500  |  gp3/io2  |  非必需  |  | 
|  HANA 共享  |  1024  |  3000  |  125  |  gp3  |  |  对于横向扩展，请查看公式或使用 EFS  | 
|  HANA 备份  |  -  |  -  |  -  |  st1/efs  |  |  可选且视工作负载而定。查看 [HANA 备份](hana-storage-config-ebs.md#hana_backup)   | 

## 适合非生产用途
<a name="_suitable_for_non_production_use"></a>

虽然这些配置未获得 SAP 认证，但它们适用于以成本优化为首要目标的小型非生产环境。列出的存储目标代表最低要求，可以增加存储目标以提高性能或满足 SAP 存储需求 KPIs。

我们为以下内存配置提供了示例布局：

内存大小：[64 GiB](#mem-64)、[128 GiB](#mem-128) 

### 64 GiB 内存系统
<a name="mem-64"></a>

适用的实例类型：**r8i.2xlarge**、**r7i.2xlarge**、**r6i.2xlarge**、**r5.2xlarge**、**r5b.2xlarge**、**r4.2xlarge1**、**r3.2xlarge1** 

建议的存储配置：


| 系统配置 | 目标大小（GiB） | 目标 IOPS | 目标吞吐量（MB/s） | 目标卷类型 | 条带配置 | 评论 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  根/操作系统  |  50  |  3000  |  125  |  gp3  |  |  | 
|  SAP 二进制文件  |  50  |  3000  |  125  |  gp3  |  |  | 
|  HANA 数据  |  100  |  3000  |  125  |  gp3  |  非必需  |  | 
|  HANA 日志  |  50  |  3000  |  125  |  gp3  |  非必需  |  | 
|  HANA 共享  |  64  |  3000  |  125  |  gp3  |  |  对于横向扩展，请查看公式或使用 EFS  | 
|  HANA 备份  |  -  |  -  |  -  |  st1/efs  |  |  可选且视工作负载而定。查看 [HANA 备份](hana-storage-config-ebs.md#hana_backup)   | 

 1 Xen 实例类型。我们建议迁移到 Nitro 实例类型。

### 128 GiB 内存系统
<a name="mem-128"></a>

适用的实例类型：**r8i.4xlarge**、**x2iedn.xlarge**、**r7i.4xlarge**、**r6i.4xlarge**、**r5.4xlarge**、**r5b.4xlarge**、**x1e.xlarge**、**r4.4xlarge1**、**r3.4xlarge1** 

建议的存储配置：


| 系统配置 | 目标大小（GiB） | 目标 IOPS | 目标吞吐量（MB/s） | 目标卷类型 | 条带配置 | 评论 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  根/操作系统  |  50  |  3000  |  125  |  gp3  |  |  | 
|  SAP 二进制文件  |  50  |  3000  |  125  |  gp3  |  |  | 
|  HANA 数据  |  200  |  7,300  |  500  |  gp3/io2  |  非必需  |  | 
|  HANA 日志  |  100  |  3000  |  300  |  gp3/io2  |  非必需  |  | 
|  HANA 共享  |  128  |  3000  |  125  |  gp3  |  |  对于横向扩展，请查看公式或使用 EFS  | 
|  HANA 备份  |  -  |  -  |  -  |  st1/efs  |  |  可选且视工作负载而定。查看 [HANA 备份](hana-storage-config-ebs.md#hana_backup)   | 

 1 Xen 实例类型。我们建议迁移到 Nitro 实例类型。

# 使用 Amazon EBS 卷部署 SAP HANA 工作负载
<a name="deployment-steps-using-the-aws-management-console"></a>

本主题介绍如何在启动 Amazon EC2 实例时分配 EBS 卷。选择以下方法之一。

**Example**  

1. 使用适当的权限登录到控制台，并确保选择了正确的区域。

1. 选择**服务**，然后选择 **EC2**（在**计算**下面）。

1. 选择**启动实例**。

1. 在**应用程序和操作系统映像（亚马逊机器映像）**部分：
   + 选择最近使用的 AMI 或**我的 AMI**，以搜索您的 BYOS 或自定义 AMI ID。
   + 选择**浏览更多 AMI**，从 AWS、Marketplace 和社区中搜索更多 AMI。

1. 在**选择实例类型**页面中，选择您在[规划部署](planning-the-deployment.md#compute)时确定的实例类型。

1. 在**密钥对（登录）**部分，如果您已有密钥对，请选择它。否则，请创建新的密钥对。

1. 在**网络设置**部分 
   + 选择网络的 VPC ID 和子网。
   + 关闭**自动分配公有 IP** 选项。
   + 选择**安全组** 
     + 选择**选择现有安全组**，然后选择要连接到您的实例的安全组（如果有）。否则，请选择**创建新安全组**，并配置**类型**、**协议**、**端口范围**和**源 IP 地址**，以便允许流向 SAP HANA 实例的流量。有关我们推荐的端口列表，请参阅 [AWS Launch Wizard for SAP 中的安全组](https://docs.aws.amazon.com/launchwizard/latest/userguide/launch-wizard-sap-security-groups.html)。您可以根据需要更改端口以满足您的安全要求。

1. 在**配置存储**部分 
   + 选择**高级**可查看扩展详细信息，选择**添加新卷**可为 SAP 二进制文件和 SAP HANA 数据、日志、共享和可选备份预置卷。请务必遵循[计算需求](hana-storage-config-ebs.md)或[存储参考](hana-storage-config-reference-layout.md)中的大小、IOPS 和吞吐量指南。
   + 如果您计划部署横向扩展工作负载，则可以选择包括适用于 SAP HANA 共享卷和备份卷的 EFS 或 FSX **文件系统**。  
![\[显示存储配置的 EC2 控制台图片\]](http://docs.aws.amazon.com/zh_cn/sap/latest/sap-hana/images/std-sap-hana-storage-configuration.png)

      **图 1：使用控制台进行 SAP HANA 存储配置** 

1. 在**高级详细信息**部分中，查看并修改选项以适应您的工作负载。

1. 选择**启动实例**。

1. 您的实例现在应该会使用所选配置启动。实例启动后，您可以继续执行操作系统和存储配置步骤。

1.  **准备 SAP HANA 的存储配置** 

   使用您选择的编辑器创建一个 .json 文件，其中包含类似于以下示例的块储存设备映射详细信息，并将文件保存到临时目录。该示例显示了包含 gp3 卷（用于 HANA 数据和日志）的 x2iedn.24xlarge 实例的块设备映射详细信息。根据要用于部署的实例和存储类型更改详细信息。

   ```
   [
   {"DeviceName":"/dev/sda1","Ebs":{"VolumeSize":50,"VolumeType":"gp3","Iops":3000,"Throughput":125,"Encrypted":true,"DeleteOnTermination":true}},
   {"DeviceName":"/dev/sdb","Ebs":{"VolumeSize":50,"VolumeType":"gp3","Iops":3000,"Throughput":125,"Encrypted":true,"DeleteOnTermination":true}},
   {"DeviceName":"/dev/sdc","Ebs":{"VolumeSize":2300,"VolumeType":"gp3","Iops":3600,"Throughput":625,"Encrypted":true,"DeleteOnTermination":true}},
   {"DeviceName":"/dev/sdd","Ebs":{"VolumeSize":2300,"VolumeType":"gp3","Iops":3600,"Throughput":625,"Encrypted":true,"DeleteOnTermination":true}},
   {"DeviceName":"/dev/sde","Ebs":{"VolumeSize":500,"VolumeType":"gp3","Iops":3000,"Throughput":300,"Encrypted":true,"DeleteOnTermination":true}},
   {"DeviceName":"/dev/sdf","Ebs":{"VolumeSize":1024,"VolumeType":"gp3","Iops":3000,"Throughput":125,"Encrypted":true,"DeleteOnTermination":true}}
   ]
   ```

    **备注** 
   + 根的初始设备名称应与您尝试将其分配给的 AMI 相匹配。查询方法如下

     ```
     $ aws ec2 describe-images --image-ids ami-0123456789abcdef0 --query 'Images[].RootDeviceName' --output text
     ```
   + 您可以选择将 `DeleteOnTermination` 标志设置为 false，这样在您终止 Amazon EC2 实例时就不会删除 Amazon EBS 卷。这有助于保护您的数据，防止您的 Amazon EC2 实例意外终止。终止实例时，您需要手动删除与已终止实例关联的 Amazon EBS 卷，以免产生存储成本。
   + 如果您计划部署横向扩展工作负载，则可以在部署后，使用 Amazon EFS 和网络文件系统（NFS），将 SAP HANA 共享卷和备份卷挂载到您的协调器和从属节点。

1.  **启动 Amazon EC2 实例** 

   使用您在准备步骤中收集的信息，通过 AWS CLI 在目标 AWS 区域的 VPC 中，启动 SAP HANA 的 Amazon EC2 实例（包括 Amazon EBS 存储），例如：

   ```
   aws ec2 run-instances \
     --image-id ami-0123456789abcdef0 \
     --instance-type x2iedn.24xlarge \
     --count 1 \
     --region us-west-2 \
     --key-name my_key \
     --security-group-ids sg-0123456789abcdef0 \
     --subnet-id subnet-0123456789abcdef0 \
     --block-device-mappings file:///tmp/ebs_hana.json \
     --tag-specifications \
         'ResourceType=instance,Tags=[{Key=Name,Value=PRD-HANA01},{Key=Environment,Value=Production},{Key=SID,Value=PRD},{Key=ApplicationComponent,Value=HANA}]' \
         'ResourceType=volume,Tags=[{Key=Environment,Value=Production},{Key=SID,Value=PRD}]' \
     --ebs-optimized \
     --metadata-options "HttpTokens=required,HttpEndpoint=enabled"
   ```

    **备注** 
   + 这只是一个示例命令，重点是 block-device-mappings。请分别查看实例要求。浏览控制台中的选项，然后生成和调整代码以复制设置以供将来的部署使用，这可能会很有帮助。
   +  `iam-instance-profile` 和 `user-data` 标志可用于确保通过 Systems Manager 实现连接。

# 配置 SAP HANA 文件系统
<a name="configure-storage-for-sap-hana"></a>

## 概览
<a name="_overview"></a>

本指南介绍如何在 Amazon EC2 上为 SAP HANA 配置 Amazon EBS 存储。其中涵盖了卷标识、文件系统创建和 LVM 配置（如有必要）等信息。

**注意**  
本指南使用 NVMe 设备名称（例如 /dev/nvme1n1），这些名称是基于 Nitro 的实例的标准名称。在非 Nitro 实例上，设备将使用其他命名方式（例如 /dev/sdb）。请根据您的设备名称调整命令。

在开始配置之前，请确认您满足以下要求：
+ 附有相应 EBS 卷的 EC2 实例
+ 对实例的根或管理访问权限

## 标识卷
<a name="_identify_volumes"></a>

标识块设备、其大小和相关的卷 ID，以便将其分配给相应的文件系统。

1.  **运行 lsblk 查看关联** 

   以根用户身份在主机上运行以下命令：

   ```
   # lsblk -o NAME,SIZE,TYPE,FSTYPE,LABEL,PATH,SERIAL | sed 's/vol0/vol-0/g'
   ```

    *示例*：

   ```
   NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS FSTYPE LABEL PATH           SERIAL
   nvme1n1     259:0    0  2.2T  0 disk                          /dev/nvme1n1   vol-0abc123def456789a
   nvme0n1     259:1    0   50G  0 disk                          /dev/nvme0n1   vol-0xyz987uvw654321b
   ├─nvme0n1p1 259:5    0    2M  0 part                          /dev/nvme0n1p1
   ├─nvme0n1p2 259:6    0   20M  0 part /boot/efi   vfat   EFI   /dev/nvme0n1p2
   └─nvme0n1p3 259:7    0   50G  0 part /           xfs    ROOT  /dev/nvme0n1p3
   nvme4n1     259:2    0    1T  0 disk                          /dev/nvme4n1   vol-0pqr456mno789123c
   nvme2n1     259:3    0  2.2T  0 disk                          /dev/nvme2n1   vol-0jkl789ghi123456d
   nvme3n1     259:4    0  500G  0 disk                          /dev/nvme3n1   vol-0def456abc789123e
   ```

1.  **记录卷关联** 

   以结构化格式记录卷要求和分配。此表将有助于确保设置卷的命令正确。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sap/latest/sap-hana/configure-storage-for-sap-hana.html)

1.  **查看或分配标签（可选）** 

   标签有助于标识 AWS 控制台和 API 命令中的卷，这在维护、卷扩展或备份/恢复操作期间特别有用。使用以下命令或 AWS 控制台查看现有标签或添加新标签。

    *示例*：

   ```
   $ aws ec2 create-tags --resources vol-0abc123def456789a --tags Key=Name,Value="PRD - Hana Data Volume 1 of 2"
   ```

   对所有卷重复此操作。

## 创建文件系统
<a name="_create_filesystems"></a>

根据是否已将条带化确定为一项要求来创建文件系统

1.  **配置单个卷** 

   当使用单个卷（包括用于增长的容量）可以满足性能要求时，可直接在设备上创建 XFS 文件系统。

    *示例*：

   ```
   # Create XFS filesystem with label for HANA Shared
   mkfs.xfs -f /dev/nvme4n1 -L HANA_SHARED
   
   # Create XFS filesystem with label for HANA Log
   mkfs.xfs -f /dev/nvme3n1 -L HANA_LOG
   ```
**提示**  
标签可在实例重启期间提供一致的设备标识。您可以使用 `xfs_admin -L LABEL_NAME /dev/device_name` 在现有 XFS 文件系统上添加或更改标签。始终通过引用 `/dev/disk/by-label/LABEL_NAME` 在 /etc/fstab 中使用标签。

1.  **配置条带化卷** 

   逻辑卷管理（LVM）分三层管理存储：物理卷（使用 pvcreate 创建）是实际磁盘，卷组（使用 vgcreate 创建）将这些磁盘组合成存储池，逻辑卷（使用 lvcreate 创建）是虚拟分区，可以跨多个磁盘以实现条带化等功能。

    *示例*：

   ```
   # Create physical volumes
   pvcreate /dev/nvme1n1 /dev/nvme2n1
   
   # Create volume group
   vgcreate vg_hana_data /dev/nvme1n1 /dev/nvme2n1
   
   # Create striped logical volume
   lvcreate -i 2 -I 256 -l 100%VG -n lv_hana_data vg_hana_data
   
   # Create XFS filesystem with label for HANA data
   mkfs.xfs -L HANA_DATA /dev/vg_hana_data/lv_hana_data
   ```
**重要**  
对数据卷使用 256 KB 的条带大小（`-I 256`）
对日志卷使用 64 KB 的条带大小（`-I 64`）
`-i` 参数应与物理卷的数量相匹配。在示例中，我们有 2 个卷。

## 创建挂载点
<a name="_create_mount_points"></a>

1.  **创建文件系统并修改权限** 

   ```
   # mkdir -p /hana/data /hana/log /hana/shared
   # chown <sid>adm:sapsys /hana/data /hana/log /hana/shared
   # chmod 750 /hana/data /hana/log /hana/shared
   ```

1.  **配置 fstab** 

   fstab 文件控制 Linux 文件系统分区、远程文件系统以及块设备如何挂载到文件系统中。

   将以下条目添加到 `/etc/fstab`：

    *示例*：

   ```
   # SAP HANA Storage Configuration
   /dev/disk/by-label/HANA_DATA       /hana/data       xfs    noatime,nodiratime,logbsize=256k       0  0
   /dev/disk/by-label/HANA_LOG        /hana/log        xfs    noatime,nodiratime,logbsize=256k       0  0
   /dev/disk/by-label/HANA_SHARED     /hana/shared     xfs    noatime,nodiratime,logbsize=256k       0  0
   ```

## 挂载并验证
<a name="_mount_and_verify"></a>

1.  **挂载所有文件系统** 

   ```
   # mount -a
   ```

1.  **验证最终配置** 

   ```
   # lsblk -o NAME,SIZE,TYPE,FSTYPE,LABEL,PATH,SERIAL | sed 's/vol0/vol-0/g'
   ```

    *示例*：

   ```
   NAME                         SIZE TYPE FSTYPE      LABEL       PATH                                  SERIAL
   nvme0n1                       50G disk                         /dev/nvme0n1                          vol-0xyz987uvw654321b
   ├─nvme0n1p1                    2M part                         /dev/nvme0n1p1
   ├─nvme0n1p2                   20M part vfat        EFI         /dev/nvme0n1p2
   └─nvme0n1p3                   50G part xfs         ROOT        /dev/nvme0n1p3
   nvme1n1                      2.2T disk LVM2_member             /dev/nvme1n1                          vol-0abc123def456789a
   └─vg_hana_data-lv_hana_data  4.5T lvm  xfs         HANA_DATA   /dev/mapper/vg_hana_data-lv_hana_data
   nvme2n1                      2.2T disk LVM2_member             /dev/nvme2n1                          vol-0jkl789ghi123456d
   └─vg_hana_data-lv_hana_data  4.5T lvm  xfs         HANA_DATA   /dev/mapper/vg_hana_data-lv_hana_data
   nvme3n1                      500G disk xfs         HANA_LOG    /dev/nvme3n1                          vol-0def456abc789123e
   nvme4n1                        1T disk xfs         HANA_SHARED /dev/nvme4n1                          vol-0pqr456mno789123c
   ```

1.  **重启系统** 

   重启之前，请使用 `mount` 和 `df -h` 验证所有挂载点是否正确，因为 /etc/fstab 条目不正确可能导致系统无法成功启动。确认后，在安装 HANA 之前重启操作系统，以确保文件系统的持久性。

# 架构
<a name="architecture-ebs"></a>

以下架构图显示使用 Amazon EBS 卷的 SAP HANA 工作负载的纵向扩展和横向扩展环境。

**Topics**
+ [纵向扩展环境](#ebs-scale-up)
+ [横向扩展环境](#ebs-scale-out)

## 纵向扩展环境
<a name="ebs-scale-up"></a>

以下架构图显示使用 Amazon EBS 卷的 SAP HANA 工作负载的纵向扩展环境。

![\[纵向扩展 SAP HANA 工作负载的配置。\]](http://docs.aws.amazon.com/zh_cn/sap/latest/sap-hana/images/std-sap-hana-scale-up-diagram.png)


## 横向扩展环境
<a name="ebs-scale-out"></a>

以下架构图显示使用 Amazon EBS 卷的 SAP HANA 工作负载的横向扩展环境。

![\[横向扩展 SAP HANA 工作负载的配置。\]](http://docs.aws.amazon.com/zh_cn/sap/latest/sap-hana/images/std-sap-hana-scale-out-diagram.png)


# 配置存储（FSx 适用于 ONTAP）
<a name="sap-hana-amazon-fsx"></a>

Amazon FSx f NetApp or ONTAP 是一项完全托管的服务，它基于广受欢迎的 ONTAP 文件系统提供高度可靠、可扩展、高性能和功能丰富的文件存储。 NetApp现在，你可以使用 Amazon FSx for NetApp ONTAP 部署和运行 SAP HANA。 AWS 有关更多信息，请参阅适用于 [ NetApp ONTAP FSx 的 Amazon](https://aws.amazon.com/fsx/netapp-ontap/)。

SAP HANA 可存储并处理内存中的所有数据，并通过将数据保存在持久性存储位置来防止数据丢失。要获得最佳性能，用于 SAP HANA 数据和日志卷的存储解决方案必须满足 SAP 的存储 KPI。作为一项完全托管的服务，Amazon FSx for NetApp ONTAP 可以更轻松地在云中启动和扩展可靠、高性能和安全的共享文件存储。

如果您是首次使用的用户，请参阅 [Amazon for NetApp ONTAP FSx 的工作](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/how-it-works-fsx-ontap.html)原理。

本指南涵盖以下主题：
+  [支持的配置](instances-sizing-sap-hana-amazon-fsx.md) 
+  [为 ONTAP 文件系统 SVMs 和卷进行设置 FSx ](amazon-fsx-sap-hana.md) 
+  [设置主机](host-setup-fsx-sap-hana.md) 

有关 SAP 规格，请参阅 [SAP Note 2039883-常见问题解答：SAP HANA 数据库和数据快照以及](https://me.sap.com/notes/2039883) SA [P Note 3024346-](https://me.sap.com/notes/3024346) NFS 的 Linux 内核设置。 NetApp 

# 支持的配置
<a name="instances-sizing-sap-hana-amazon-fsx"></a>

以下规则和限制适用于使用适用于 NetApp ONTAP 的 Amazon FSx 部署 SAP HANA on AWS。
+ 只有单可用区部署支持将 FSx for ONTAP 文件系统用于 SAP HANA 数据和日志卷。
+ 您计划部署 SAP HANA 工作负载和 FSx for ONTAP 文件系统的 Amazon EC2 实例必须位于同一子网中。
+ 使用单独的存储虚拟机（SVM）存储 SAP HANA 数据和日志卷，无需额外付费。这样可以确保您的 I/O 流量流经不同的 IP 地址和 TCP 会话。
+ 对于使用备用节点的 SAP HANA 横向扩展，必须将 `basepath_shared` 设置为*是*。您可以在 `global.ini` 文件的*持久性*部分找到它。
+ 只有 NFSv4.1 协议支持 SAP HANA on FSx for ONTAP。SAP HANA 卷必须使用 NFSv4.1 协议创建和挂载。
+ 只有以下操作系统支持 SAP HANA on FSx for ONTAP：
  + Red Hat Enterprise Linux 8.4 及更高版本
  + SUSE Linux Enterprise Server 15 SP2 及更高版本
+  `/hana/data` 和 `/hana/log` 必须有自己的 FSx for ONTAP 卷。`/hana/shared` 和 `/usr/sap` 可以共享卷。

## 支持的 Amazon EC2 实例类型
<a name="instance-types-sap-hana-amazon-fsx"></a>

适用于 NetApp ONTAP 的 Amazon FSx 已获得 SAP 认证，可以在单可用区设置中用于纵向扩展和横向扩展（OLTP/OLAP）SAP HANA 工作负载。您可以使用适用于 NetApp ONTAP 的 Amazon FSx 作为主存储，用于存储 SAP HANA 数据、日志、二进制文件和共享卷。有关适用于 SAP HANA 的受支持 Amazon EC2 实例的完整列表，请参阅 [SAP HANA 认证实例](https://docs.aws.amazon.com/sap/latest/general/sap-hana-aws-ec2.html)。

## 调整大小
<a name="sizing-sap-hana-amazon-fsx"></a>

创建新文件系统时，您可以在单个可用区部署中将读取吞吐量扩展到 4 GB/s 并将写入吞吐量扩展到 1000 MB/s，从而配置 FSx for ONTAP 的吞吐能力。有关更多信息，请参阅[适用于 NetApp ONTAP 的 Amazon FSx 的性能](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/performance.html)。

**Topics**
+ [SAP KPI](#sizing-sap-kpi)
+ [最低要求](#sizing-min-req)
+ [提高吞吐量](#sizing-high-throughput)

### SAP KPI
<a name="sizing-sap-kpi"></a>

 **SAP 对 SAP HANA 卷有以下 KPI 要求。**


|  | 读取 | 写入 | 
| --- | --- | --- | 
|  数据  |  400 MB/s  |  250 MB/s  | 
|  Log  |  250 MB/s  |  250 MB/s  | 
|  日志延迟  |  在 4k 和 16k 数据块大小的 I/O 下，写入延迟小于 1 毫秒  | 

### 最低要求
<a name="sizing-min-req"></a>

根据 SAP HANA 工作负载的要求，您必须为 FSx for ONTAP 卷预调配足够的容量和性能。要满足 SAP HANA 的存储 KPI 要求，您需要至少 **1024 MB/s** 的吞吐能力。非生产系统可能可以接受较低的吞吐量。

文件系统在满足了所有 SAP HANA 节点的要求时，就可以在多个 SAP HANA 节点之间共享该文件系统。共享文件系统时，您可以使用服务质量功能来实现稳定的性能和减少相互竞争的工作负载之间的干扰。有关更多信息，请参阅 [Using Quality of Service in Amazon FSx for NetApp ONTAP](https://aws.amazon.com/blogs/storage/using-quality-of-service-in-amazon-fsx-for-netapp-ontap/)。

### 提高吞吐量
<a name="sizing-high-throughput"></a>

如果需要更高的吞吐量，则可以执行以下操作之一：
+ 在不同的 FSx for ONTAP 文件系统中创建单独的数据卷和日志卷。
+ 在多个 FSx for ONTAP 文件系统中创建额外的数据卷分区。

要了解有关 FSx for ONTAP 的性能的更多信息，请参阅[性能详细信息](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/performance.html#performance-details-fsxw)。

## SAP HANA 参数
<a name="sap-hana-amazon-fsx"></a>

在 `global.ini` 文件中设置以下 SAP HANA 数据库参数。

```
[fileio]
max_parallel_io_requests=128
async_read_submit=on
async_write_submit_active=on
async_write_submit_blocks=all
```

使用以下 SQL 命令在 `SYSTEM` 级别设置这些参数。

```
ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('fileio', 'max_parallel_io_requests') = '128' WITH RECONFIGURE;
ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('fileio', 'async_read_submit') = 'on' WITH RECONFIGURE;
ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('fileio', 'async_write_submit_active') = 'on' WITH RECONFIGURE;
ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('fileio', 'async_write_submit_blocks') = 'all' WITH RECONFIGURE;
```

# FSx 为 ONTAP 文件系统和卷 SVMs进行设置
<a name="amazon-fsx-sap-hana"></a>

在 FSx 为 ONTAP 文件系统创建之前，请确定 SAP HANA 工作负载所需的总存储空间。您可以在以后增大存储大小。要减小存储大小，您必须创建新的文件系统。

要创建 FSx 适用于 ONTAP 的文件系统，请参阅[步骤 1：创建 FSx 适用于 NetApp ONTAP 的 Amazon 文件](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/getting-started-step1.html)系统。有关更多信息，[ FSx 请参阅管理 ONTAP 文件系统](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-file-systems.html)。

**注意**  
SAP HANA 工作负载仅支持单可用区文件系统。

**Topics**
+ [创建存储虚拟机（SVM）](#svm-sap-hana)
+ [卷配置](#volume-fsx-sap-hana)
+ [示例估算](#sizing-estimation)
+ [卷布局](#vol-layout-fsx-sap-hana)
+ [文件系统设置](#filesys-fsx-sap-hana)
+ [禁用快照](#snaps-fsx-sap-hana)
+ [服务质量（QoS）](#fsx-qos)
+ [备份](#fsx-backup)

## 创建存储虚拟机（SVM）
<a name="svm-sap-hana"></a>

默认情况下，您可以 FSx 为每个 ONTAP 文件系统获得一个 SVM。您可以 SVMs 随时创建其他内容。为了获得最佳性能，请使用不同的 IP 地址挂载数据和日志卷。您可以分别 SVMs 使用数据卷和日志卷来实现此目的。如果您打算使用 NetApp SnapCenter，则所有 SVMs 用于 SAP HANA 的名称都必须是唯一的。您无需将文件系统联接到适用于 SAP HANA 的 Active Directory。有关更多信息，[ FSx 请参阅管理 ONTAP 存储虚拟机](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-svms.html)。

## 卷配置
<a name="volume-fsx-sap-hana"></a>

文件系统的存储容量应与 `/hana/shared`、`/hana/data` 和 `/hana/log` 卷的需求相符。您还必须考虑快照所需的容量（如果适用）。

我们建议 FSx 为每个 SAP HANA 数据、日志、共享卷和二进制卷分别创建单独的 ONTAP 卷。下表列出了每个卷的推荐最小大小。


| 卷 | 纵向扩展的推荐大小 | 横向扩展的推荐大小 | 
| --- | --- | --- | 
|   `/usr/sap`   |  50 GiB  |  50 GiB  | 
|   `/hana/shared`   |  至少 1 倍的 Amazon EC2 实例内存或 1TB  |  每 4 个从属节点，就有 1 x 您的 Amazon EC2 实例内存\$1  | 
|   `/hana/data`   |  您的亚马逊 EC2 实例至少有 1.2 倍的内存  |  您的亚马逊 EC2 实例至少有 1.2 倍的内存  | 
|   `/hana/log`   |  至少 0.5 倍的亚马逊 EC2 实例内存或 600 GiB  |  至少 0.5 倍的亚马逊 EC2 实例内存或 600 GiB  | 

\$1例如，如果您有 2-4 个横向扩展节点，则需要单个 Amazon 实例的 1 x 内存。 EC2 如果您有 5-8 个横向扩展节点，则需要单个 Amazon 实例的 2 倍内存。 EC2 

当您为 SAP HANA 创建适用 FSx 于 ONTAP 的文件系统时，以下限制适用。
+  SAP HANA 不支持*容量池分层*，必须将其设置为**无**。
+  必须为 SAP HANA **禁用***每日自动备份*。ONTAP 备份 FSx 的默认值不支持应用程序，也不能用于将 SAP HANA 恢复到一致状态。

## 示例估算
<a name="sizing-estimation"></a>

您可以使用下表中的公式来估算生产系统的 SAP HANA 性能 KPIs 。这些系统可以采用单可用区设置或多可用区设置。要了解更多信息，请参阅 [Amazon f FSx or NetApp ONTAP](https://docs.aws.amazon.com/sap/latest/sap-hana/architecture-fsx.html) 的存储架构。

注意：用作操作系统启动卷的 Amazon EC2 根卷必须始终基于 Amazon EBS。例如，`gp3`— 支持在适用于 ONTAP 的基于 EBS 的 SAP HANA 日志卷中使用。 FSx 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sap/latest/sap-hana/amazon-fsx-sap-hana.html)

**注意**  
(\$1) 您必须 FSx 为 SAP HANA 多可用区域部署的 ONTAP 卷配置辅助卷。
（\$1\$1）为了提高成本效益，可以将其部署在单可用区设置中。

 **常用参数** 
+ CHANGE-RATE-DB：生产环境为 30%，非生产环境为 5%
+ CHANGE-RATE-BINARIES：5%
+ LOG-RATE：5%
+ SNAPSHOTS-KEPT-AT-PRIMARY：3 天
+ RETENTION：30 天

## 卷布局
<a name="vol-layout-fsx-sap-hana"></a>

**Topics**
+ [SAP HANA 纵向扩展](#fsx-volume-layout-scaleup)
+ [SAP HANA 横向扩展](#fsx-volume-layout-scaleout)

### SAP HANA 纵向扩展
<a name="fsx-volume-layout-scaleup"></a>

下表展示了用于纵向扩展设置的卷和挂载点配置的示例。其中包含单个主机。`HDB` 是 SAP HANA 系统 ID。要将 `hdbadm` 用户的主目录放在中央存储上，必须从 `HDB_shared` 卷挂载 `/usr/sap/HDB` 文件系统。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sap/latest/sap-hana/amazon-fsx-sap-hana.html)

### SAP HANA 横向扩展
<a name="fsx-volume-layout-scaleout"></a>

您必须在每个节点（包括备用节点）中挂载所有数据卷、日志卷和共享卷。

下表展示了用于横向扩展设置的卷和挂载点配置的示例。其中包含四台活动主机和一台备用主机。`HDB` 是 SAP HANA 系统 ID。每台主机的主目录（`/usr/sap/HDB`）和共享目录（`(/hana/shared`）都存储在 `HDB_shared` 卷中。要将 `hdbadm` 用户的主目录放在中央存储上，必须从 `HDB_shared` 卷挂载 `/usr/sap/HDB` 文件系统。


| 卷名 | 连接路径 | 目录 | 挂载点 | 备注 | 
| --- | --- | --- | --- | --- | 
|  HDB\$1data\$1mnt00001  |  HDB\$1data\$1mnt00001  |  不适用  |  /hana/data/HDB/mnt00001  |  已挂载在所有主机上  | 
|  HDB\$1log\$1mnt00001  |  HDB\$1log\$1mnt00001  |  不适用  |  /hana/log/HDB/mnt00001  |  已挂载在所有主机上  | 
|  HDB\$1data\$1mnt00002  |  HDB\$1data\$1mnt00002  |  不适用  |  /hana/data/HDB/mnt00002  |  已挂载在所有主机上  | 
|  HDB\$1log\$1mnt00002  |  HDB\$1log\$1mnt00002  |  不适用  |  /hana/log/HDB/mnt00002  |  已挂载在所有主机上  | 
|  HDB\$1data\$1mnt00003  |  HDB\$1data\$1mnt00003  |  不适用  |  /hana/data/HDB/mnt00003  |  已挂载在所有主机上  | 
|  HDB\$1log\$1mnt00003  |  HDB\$1log\$1mnt00003  |  不适用  |  /hana/log/HDB/mnt00003  |  已挂载在所有主机上  | 
|  HDB\$1data\$1mnt00004  |  HDB\$1data\$1mnt00004  |  不适用  |  /hana/data/HDB/mnt00004  |  已挂载在所有主机上  | 
|  HDB\$1log\$1mnt00004  |  HDB\$1log\$1mnt00004  |  不适用  |  /hana/log/HDB/mnt00004  |  已挂载在所有主机上  | 
|  HDB\$1shared  |  HDB\$1shared  |  HDB\$1shared  |  /hana/shared/HDB  |  已挂载在所有主机上  | 
|  HDB\$1shared  |  HDB\$1shared  |  usr-sap-host1  |  /usr/sap/HDB  |  已挂载在主机 1 上  | 
|  HDB\$1shared  |  HDB\$1shared  |  usr-sap-host2  |  /usr/sap/HDB  |  已挂载在主机 2 上  | 
|  HDB\$1shared  |  HDB\$1shared  |  usr-sap-host3  |  /usr/sap/HDB  |  已挂载在主机 3 上  | 
|  HDB\$1shared  |  HDB\$1shared  |  usr-sap-host4  |  /usr/sap/HDB  |  已挂载在主机 4 上  | 
|  HDB\$1shared  |  HDB\$1shared  |  usr-sap-host5  |  /usr/sap/HDB  |  已挂载在主机 5 上  | 

## 文件系统设置
<a name="filesys-fsx-sap-hana"></a>

 FSx 为 ONTAP 创建文件系统后，必须完成其他文件系统设置。

### 设置管理密码
<a name="password-filesys-fsx-sap-hana"></a>

如果您在创建 ONTAP 文件系统的过程中没有创建管理密码，则必须 FSx 为用户设置 ONTAP 管理密码。`fsxadmin`

管理密码可让您通过 SSH、ONTAP CLI 和 REST API 访问文件系统。要使用诸如此类的工具 NetApp SnapCenter，您必须拥有管理密码。

### 通过 SSH 登录管理端点
<a name="ssh-filesys-fsx-sap-hana"></a>

从 AWS 控制台获取管理端点的 DNS 名称。使用 `fsxadmin` 用户和管理密码，通过 SSH 登录管理端点。

```
ssh fsxadmin@management.<file-system-id>.fsx.<aws-region>.amazonaws.com Password:
```

### 设置 TCP 最大传输大小
<a name="tcp-filesys-fsx-sap-hana"></a>

对于 SAP HANA 工作负载，建议将 TCP 最大传输大小设置为 262144。将权限级别提升到*高级*，并在每个 SVM 上使用以下命令。

```
set advanced
nfs modify -vserver <svm> -tcp-max-xfer-size 262144
set admin
```

### 在 NFSv4 协议上设置租用时间
<a name="nfs-filesys-fsx-sap-hana"></a>

此任务适用于使用备用节点设置进行的 SAP HANA 横向扩展。

租用期是指 ONTAP 授予对客户端的不可撤销锁定的时长。默认情况下，它设置为 30 秒。通过设置更短的租用时间，可以更快地恢复服务器。

您可以使用以下命令更改租用时间。

```
set advanced
nfs modify -vserver <svm> -v4-lease-seconds 10
set admin
```

**注意**  
从 SAP HANA 2.0 开始 SPS4，SAP 提供了控制故障转移行为的参数。 NetApp 建议使用这些参数，而不是在 SVM 级别设置租用时间。有关更多详细信息，请参阅。

## 禁用快照
<a name="snaps-fsx-sap-hana"></a>

FSx for ONTAP 会自动为每小时拍摄快照的卷启用快照策略。由于缺少应用程序感知能力，默认策略为 SAP HANA 提供的价值有限。我们建议通过将该策略设置为“无”来禁用自动快照。您可以在卷创建期间或使用以下命令禁用快照。

```
volume modify -vserver <vserver-name> -volume <volume-name> -snapshot-policy none
```

### 数据量
<a name="data-snaps-fsx-sap-hana"></a>

ONTAP 快照 FSx 的自动快照不具有应用程序感知功能。要准备 SAP HANA 数据卷的数据库一致性快照，必须创建数据快照。有关更多信息，请参阅 [Create a Data Snapshot](https://help.sap.com/docs/SAP_HANA_COCKPIT/afa922439b204e9caf22c78b6b69e4f2/9fd1c8bb3b60455caa93b7491ae6d830.html)。

### 日志卷
<a name="log-snaps-fsx-sap-hana"></a>

SAP HANA 每 15 分钟自动备份一次日志卷。对于降低 RPO，每小时拍摄一次的卷快照不能提供任何额外价值。

日志卷的频繁变更会迅速增加用于快照的总容量。这可能会导致日志卷耗尽容量，从而使 SAP HANA 工作负载无法响应。

## 服务质量（QoS）
<a name="fsx-qos"></a>

服务质量 (QoS) 使 ONTAP 能够始终如一地 FSx 为多个应用程序提供可预测的性能，并消除噪音较大的邻居应用程序。共享文件系统时，您可以使用服务质量功能来实现稳定的性能和减少相互竞争的工作负载之间的干扰。有关更多信息，请参阅[在 Amazon 中使用 NetApp ONTAP FSx 的服务质量](https://aws.amazon.com/blogs/storage/using-quality-of-service-in-amazon-fsx-for-netapp-ontap/)。

QoS 的配置方式是创建 QoS 策略组、设置上限或下限性能级别（最低或最高性能）并将策略分配给 SVM 或卷。您可以用 IOPS 或吞吐量来指定性能。

 **示例** 

您在根据源自生产环境的快照，在与生产 SAP HANA 数据库相同的文件系统上创建测试系统。您需要确保测试系统不会影响生产系统的性能。您可以创建 QoS 策略组 (`qos-test`)，并将共享相同 SVM () 的数据和日志卷（`vol-data`和`vol-log`）的上限定义为 200 MB/s 。`svm-test`

```
 Create QoS policy group
qos policy-group create -policy-group qos-test -vserver svm-test -is-shared false -max-throughput 200MBs

 Assign QoS policy group to data on log volumes
volume modify -vserver svm-test -volume vol-data -qos-policy-group qos-test
volume modify -vserver svm-test -volume vol-log -qos-policy-group qos-test
```

## 备份
<a name="fsx-backup"></a>

您必须禁用 ONTAP 卷 FSx 的自动备份和 SAP HANA 文件系统的自动备份。备份不能用于将 SAP HANA 还原到一致状态。你可以使用该 SnapCenter 插件进行 SAP HANA 备份。有关更多详细信息，请参阅 NetApp 文档 — 适用[于 SAP HANA 数据库的SnapCenter 插件概述](https://docs.netapp.com/us-en/snapcenter/protect-hana/concept_snapcenter_plug_in_for_sap_hana_database_overview.html)和适用于 [ NetApp ONTAP 的 Amazon 上 FSx 的 SAP HANA — 使用 SnapCenter备份和恢复](https://docs.netapp.com/us-en/netapp-solutions-sap/backup/fsxn-overview.html)。

您也可以使用进行 S SnapMirror AP HANA 备份。有关更多信息，请参阅[如何优化 SnapMirror 性能，以及 ONTAP FSx 的最佳实践是什么？](https://repost.aws/knowledge-center/fsx-ontap-optimize-snapmirror) 

对于 point-in-time弹性恢复，我们强烈建议将三天的快照存储在本地磁盘上，并使用容量池层将较旧的备份复制 SnapVault 到 ONTAP 文件系统的辅助 FSx 磁盘上。有关更多信息，请参阅[管理存储容量](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-storage-capacity.html#storage-tiers)。

# 设置主机
<a name="host-setup-fsx-sap-hana"></a>

本节将引导您完成一个用于在 AWS 云端部署 SAP HANA 纵向扩展和横向扩展系统的主机配置示例，使用适用于 NetApp ONTAP 的 Amazon FSx 作为主存储解决方案。

您必须在操作系统级别配置 Amazon EC2 实例，才能将 FSx for ONTAP 与 SAP HANA on AWS 配合使用。

**注意**  
以下示例适用于具有 SAP 系统 ID `HDB` 的 SAP HANA 工作负载。操作系统用户是 `hdbadm`。

**Topics**
+ [SAP HANA 纵向扩展](fsx-host-scaleup.md)
+ [SAP HANA 横向扩展](fsx-host-scaleout.md)

# SAP HANA 纵向扩展
<a name="fsx-host-scaleup"></a>

以下部分是使用适用于 ONTAP 的 SAP HANA 纵向扩展部署的主机设置示例 FSx 。

**Topics**
+ [Linux 内核参数](#linux-setup-scaleup)
+ [网络文件系统 (NFS)](#nfs-setup-scaleup)
+ [创建子目录](#subdirectories-scaleup)
+ [创建挂载点](#mount-points-scaleup)
+ [挂载文件系统](#mount-filesys-scaleup)
+ [数据卷分区](#partitions-scaleup)

## Linux 内核参数
<a name="linux-setup-scaleup"></a>

1. `/etc/sysctl.d/91-NetApp-HANA.conf`使用以下配置创建文件

   ```
   net.core.rmem_max = 16777216
   net.core.wmem_max = 16777216
   net.ipv4.tcp_rmem = 4096 131072 16777216
   net.ipv4.tcp_wmem = 4096 16384  16777216
   net.core.netdev_max_backlog = 300000
   net.ipv4.tcp_slow_start_after_idle = 0
   net.ipv4.tcp_no_metrics_save = 1
   net.ipv4.tcp_moderate_rcvbuf = 1
   net.ipv4.tcp_window_scaling = 1
   net.ipv4.tcp_timestamps = 1
   net.ipv4.tcp_sack = 1
   sunrpc.tcp_slot_table_entries = 128
   ```

1. 要减少 ONTAP 单可用区文件系统（包括[计划的维护窗口](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/maintenance-windows.html)）故障转移期间的 I/O 错误，请创建其他文件。 FSx `/etc/sysctl.d/99-fsx-failover.conf`这些参数可优化 NFS 客户端行为，以更快地检测和响应故障转移事件。

   ```
   # NFS client optimizations for faster failover detection
   # Replace 'default' with your interface name (e.g., eth0, ens5) to target a specific interface
   net.ipv4.neigh.default.base_reachable_time_ms = 5000
   net.ipv4.neigh.default.delay_first_probe_time = 1
   net.ipv4.neigh.default.ucast_solicit = 0
   net.ipv4.tcp_syn_retries = 3
   ```

   有关更多信息和选项，请参阅[故障排除 I/O 错误和 NFS 锁回收](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/nfs-failover-issues.html)失败。

   如果发生这些错误，在某些情况下，它们可能会导致 SAP HANA 紧急关闭索引服务器进程以保护数据库一致性。

1. 将最大会话时段增加 NFSv4 到 180。

   ```
   echo options nfs max_session_slots = 180 > /etc/modprobe.d/nfsclient.conf
   ```

要激活这些更改，请运行`sysctl -p`内核参数并重新加载 NFS 模块，或者在计划的维护时段内重启实例（推荐）。

## 网络文件系统 (NFS)
<a name="nfs-setup-scaleup"></a>

网络文件系统（NFS）版本 4 及更高版本要求进行用户身份验证。您可以使用轻型目录访问协议（LDAP）服务器或本地用户账户进行身份验证。

如果您使用的是本地用户帐户，则在所有 Linux 服务器上都必须将 NFSv4 域设置为相同的值 SVMs。您可以在 Linux 主机上的 `/etc/idmapd.conf` 文件中设置域参数（`Domain = <domain name>`）。

要确定 SVM 的域设置，请使用以下命令：

```
nfs show -vserver hana-data -fields v4-id-domain
```

下面是示例输出：

```
vserver   v4-id-domain
--------- ------------
hana-data ec2.internal
```

## 创建子目录
<a name="subdirectories-scaleup"></a>

挂载 `/hana/shared` 卷，创建 `shared` 和 `usr-sap` 子目录，然后卸载。

```
mkdir /mnt/tmp
mount -t nfs -o sec=sys,vers=4.1 <svm-shared>:/HDB-shared /mnt/tmp
cd /mnt/tmp
mkdir shared
mkdir usr-sap
cd
umount /mnt/tmp
```

## 创建挂载点
<a name="mount-points-scaleup"></a>

在单主机系统中，在您的 Amazon EC2 实例上创建以下挂载点。

```
mkdir -p /hana/data/HDB/mnt00001
mkdir -p /hana/log/HDB/mnt00001
mkdir -p /hana/shared
mkdir -p /usr/sap/HDB
```

## 挂载文件系统
<a name="mount-filesys-scaleup"></a>

创建的文件系统必须作为 NFS 文件系统挂载在 Amazon EC2 上。下表是针对不同 SAP HANA 文件系统的 NFS 选项的推荐示例。


|  |  |  |  |  | 
| --- |--- |--- |--- |--- |
|   **文件系统**   |   **常用挂载选项**   |   **版本选项**   |   **传输大小选项**   |   **连接选项**   | 
|  SAP HANA 数据  |  rw,bg,hard,timeo=600,noatime,  |  vers=4,minorversion=1,lock,  |  rsize=262144,wsize=262144,  |  nconnect=4  | 
|  SAP HANA 日志  |  rw,bg,hard,timeo=600,noatime,  |  vers=4,minorversion=1,lock,  |  rsize=262144,wsize=262144,  |  nconnect=2  | 
|  SAP HANA 共享  |  rw,bg,hard,timeo=600,noatime,  |  vers=4,minorversion=1,lock,  |  rsize=262144,wsize=262144,  |  nconnect=2  | 
|  SAP HANA 二进制文件  |  rw,bg,hard,timeo=600,noatime,  |  vers=4,minorversion=1,lock,  |  rsize=262144,wsize=262144,  |  nconnect=2  | 
+ 只有卸载并重新挂载 NFS 文件系统后，对 `nconnect` 参数的更改才会生效。
+ 访问 FSx ONTAP 时，客户端系统必须具有唯一的主机名。如果存在同名的系统，则第二个系统可能无法访问 FSx ONTAP。

 **示例** 

向 `/etc/fstab` 添加以下几行，以便在实例重启期间保留已挂载的文件系统。然后，您可以运行 `mount -a` 来挂载 NFS 文件系统。

```
<svm-data>:/HDB_data_mnt00001 /hana/data/HDB/mnt00001 nfs rw,bg,hard,timeo=600,noatime,vers=4,minorversion=1,lock,rsize=262144,wsize=262144,nconnect=4
<svm-log>:/HDB_log_mnt00001 /hana/log/HDB/mnt00001 nfs rw,bg,hard,timeo=600,noatime,vers=4,minorversion=1,lock,rsize=262144,wsize=262144,nconnect=2
<svm-shared>:/HDB_shared/usr-sap /usr/sap/HDB nfs rw,bg,hard,timeo=600,noatime,vers=4,minorversion=1,lock,rsize=262144,wsize=262144,nconnect=2
<svm-shared>:/HDB_shared/shared /hana/shared nfs rw,bg,hard,timeo=600,noatime,vers=4,minorversion=1,lock,rsize=262144,wsize=262144,nconnect=2
```

## 数据卷分区
<a name="partitions-scaleup"></a>

在 SAP HANA 2.0 中 SPS4，额外的数据卷分区允许在单主机或多主机系统中为 SAP HANA 租户数据库的数据量配置两个或多个文件系统卷。数据卷分区使 SAP HANA 能够突破单个卷的大小和性能限制进行扩展。您可以随时添加额外的数据卷分区。有关更多信息，请参阅[添加其他数据卷分区](https://docs.netapp.com/us-en/netapp-solutions-sap/bp/hana-aff-nfs-add-data-volume-partitions.html)。

### 主机准备
<a name="host-preparation-scaleup"></a>

必须创建额外的挂载点和 `/etc/fstab` 条目，并且必须挂载了新卷。
+ 创建额外的挂载点并分配所需的权限、组和所有权。

  ```
  mkdir -p /hana/data2/HDB/mnt00001
  chmod -R 777 /hana/data2/HDB/mnt00001
  ```
+ 向 `/etc/fstab` 添加额外的文件系统。

  ```
  <data2>:/data2 /hana/data/HDB/mnt00001 nfs <mount options>
  ```
+ 将权限设置为 777。要使 SAP HANA 能够在后续步骤中添加新数据卷，这是必需的。SAP HANA 会在数据卷创建期间自动设置更严格的权限。

### 启用数据卷分区
<a name="enable-partition-scaleup"></a>

要启用数据卷分区，请在 `SYSTEMDB` 配置的 `global.ini` 文件中添加以下条目。

```
[customizable_functionalities]
persistence_datavolume_partition_multipath = true
```

```
ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM')
SET ('customizable_functionalities', 'PERSISTENCE_DATAVOLUME_PARTITION_MULTIPATH') = 'true'
WITH RECONFIGURE;
```

**注意**  
更新 `global.ini` 文件后，您必须重新启动数据库。

### 添加额外的数据卷分区
<a name="add-partition-scaleup"></a>

对租户数据库运行以下 SQL 语句，向租户数据库添加额外的数据卷分区。

```
ALTER SYSTEM ALTER DATAVOLUME ADD PARTITION PATH '/hana/data/HDB/mnt00002/';
```

添加数据卷分区的速度很快。新数据卷分区在创建后为空。数据会随着时间的推移均匀分布在各个数据卷中。

为 ONTAP 文件系统配置和装载 FSx 后，可以在上 AWS安装和设置 SAP HANA 工作负载。有关更多信息，请参阅[上的 SAP HANA 环境设置 AWS](https://docs.aws.amazon.com/sap/latest/sap-hana/std-sap-hana-environment-setup.html)。

# SAP HANA 横向扩展
<a name="fsx-host-scaleout"></a>

以下部分是将 ONTAP 用作主存储解决方案的 SAP HANA 横向扩展的主机设置示例，其中开启了备用节点。 AWS FSx 您可以使用 SAP HANA 主机自动失效转移（SAP 提供的自动化解决方案），从 SAP HANA 主机故障中恢复。有关更多信息，请参阅 [SAP HANA - Host Auto-Failover](https://www.sap.com/documents/2016/06/f6b3861d-767c-0010-82c7-eda71af511fa.html)。

**Topics**
+ [Linux 内核参数](#linux-setup-scaleout)
+ [网络文件系统 (NFS)](#nfs-setup-scaleout)
+ [创建子目录](#subdirectories-scaleout)
+ [创建挂载点](#mount-points-scaleout)
+ [挂载文件系统](#mount-filesys-scaleout)
+ [为目录设置所有权](#directories-scaleout)
+ [SAP HANA 参数](#parameters-scaleout)
+ [数据卷分区](#partitions-scaleout)
+ [测试主机自动失效转移](#failover-scaleout)

## Linux 内核参数
<a name="linux-setup-scaleout"></a>

1. `/etc/sysctl.d/91-NetApp-HANA.conf`使用以下配置创建文件

   ```
   net.core.rmem_max = 16777216
   net.core.wmem_max = 16777216
   net.ipv4.tcp_rmem = 4096 131072 16777216
   net.ipv4.tcp_wmem = 4096 16384  16777216
   net.core.netdev_max_backlog = 300000
   net.ipv4.tcp_slow_start_after_idle = 0
   net.ipv4.tcp_no_metrics_save = 1
   net.ipv4.tcp_moderate_rcvbuf = 1
   net.ipv4.tcp_window_scaling = 1
   net.ipv4.tcp_timestamps = 1
   net.ipv4.tcp_sack = 1
   sunrpc.tcp_slot_table_entries = 128
   ```

1. 要减少 ONTAP 单可用区文件系统（包括[计划的维护窗口](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/maintenance-windows.html)）故障转移期间的 I/O 错误，请创建其他文件。 FSx `/etc/sysctl.d/99-fsx-failover.conf`这些参数可优化 NFS 客户端行为，以更快地检测和响应故障转移事件。

   ```
   # NFS client optimizations for faster failover detection
   # Replace 'default' with your interface name (e.g., eth0, ens5) to target a specific interface
   net.ipv4.neigh.default.base_reachable_time_ms = 5000
   net.ipv4.neigh.default.delay_first_probe_time = 1
   net.ipv4.neigh.default.ucast_solicit = 0
   net.ipv4.tcp_syn_retries = 3
   ```

   有关更多信息和选项，请参阅[故障排除 I/O 错误和 NFS 锁回收](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/nfs-failover-issues.html)失败。

   如果发生这些错误，在某些情况下，它们可能会导致 SAP HANA 紧急关闭索引服务器进程以保护数据库一致性。

1. 将最大会话时段增加 NFSv4 到 180。

   ```
   echo options nfs max_session_slots = 180 > /etc/modprobe.d/nfsclient.conf
   ```

要激活这些更改，请运行`sysctl -p`内核参数并重新加载 NFS 模块，或者在计划的维护时段内重启实例（推荐）。

## 网络文件系统 (NFS)
<a name="nfs-setup-scaleout"></a>

**重要**  
对于 SAP HANA 横向扩展系统， FSx ONTAP 仅支持 NFS 版本 4.1。

网络文件系统（NFS）版本 4 及更高版本要求进行用户身份验证。您可以使用轻型目录访问协议（LDAP）服务器或本地用户账户进行身份验证。

如果您使用的是本地用户帐户，则在所有 Linux 服务器上都必须将 NFSv4 域设置为相同的值 SVMs。您可以在 Linux 主机上的 `/etc/idmapd.conf` 文件中设置域参数（`Domain = <domain name>`）。

要确定 SVM 的域设置，请使用以下命令：

```
nfs show -vserver hana-data -fields v4-id-domain
```

下面是示例输出：

```
vserver   v4-id-domain
--------- ------------
hana-data ec2.internal
```

## 创建子目录
<a name="subdirectories-scaleout"></a>

挂载 `/hana/shared` 卷并为每台主机创建 `shared` 和 `usr-sap` 子目录。以下示例命令适用于 4\$11 SAP HANA 横向扩展系统。

```
mkdir /mnt/tmp
mount -t nfs -o sec=sys,vers=4.1 <svm-shared>:/HDB-shared /mnt/tmp
cd /mnt/tmp
mkdir shared
mkdir usr-sap-host1
mkdir usr-sap-host2
mkdir usr-sap-host3
mkdir usr-sap-host4
mkdir usr-sap-host5
cd
umount /mnt/tmp
```

## 创建挂载点
<a name="mount-points-scaleout"></a>

在横向扩展系统中，在所有从属节点和备用节点上创建以下挂载点。以下示例命令适用于 4\$11 SAP HANA 横向扩展系统。

```
mkdir -p /hana/data/HDB/mnt00001
mkdir -p /hana/log/HDB/mnt00001
mkdir -p /hana/data/HDB/mnt00002
mkdir -p /hana/log/HDB/mnt00002
mkdir -p /hana/data/HDB/mnt00003
mkdir -p /hana/log/HDB/mnt00003
mkdir -p /hana/data/HDB/mnt00004
mkdir -p /hana/log/HDB/mnt00004
mkdir -p /hana/shared
mkdir -p /usr/sap/HDB
```

## 挂载文件系统
<a name="mount-filesys-scaleout"></a>

创建的文件系统必须作为 NFS 文件系统挂载在 Amazon EC2 上。下表是针对不同 SAP HANA 文件系统的 NFS 选项的推荐示例。


|  |  |  |  |  | 
| --- |--- |--- |--- |--- |
|   **文件系统**   |   **常用挂载选项**   |   **版本选项**   |   **传输大小选项**   |   **连接选项**   | 
|  SAP HANA 数据  |  rw,bg,hard,timeo=600,noatime,  |  vers=4,minorversion=1,lock,  |  rsize=262144,wsize=262144,  |  nconnect=4  | 
|  SAP HANA 日志  |  rw,bg,hard,timeo=600,noatime,  |  vers=4,minorversion=1,lock,  |  rsize=262144,wsize=262144,  |  nconnect=2  | 
|  SAP HANA 共享  |  rw,bg,hard,timeo=600,noatime,  |  vers=4,minorversion=1,lock,  |  rsize=262144,wsize=262144,  |  nconnect=2  | 
|  SAP HANA 二进制文件  |  rw,bg,hard,timeo=600,noatime,  |  vers=4,minorversion=1,lock,  |  rsize=262144,wsize=262144,  |  nconnect=2  | 
+ 只有卸载并重新挂载 NFS 文件系统后，对 `nconnect` 参数的更改才会生效。
+ 访问 FSx ONTAP 时，客户端系统必须具有唯一的主机名。如果存在同名的系统，则第二个系统可能无法访问 FSx ONTAP。

 **示例 – 挂载共享卷** 

在**所有**主机上向 `/etc/fstab` 添加以下行，以便在实例重启期间保留已挂载的文件系统。然后，您可以运行 `mount -a` 来挂载 NFS 文件系统。

```
<svm-data_1>:/HDB_data_mnt00001 /hana/data/HDB/mnt00001 nfs rw,bg,hard,timeo=600,noatime,vers=4,minorversion=1,lock,rsize=262144,wsize=262144,nconnect=4
<svm-log_1>:/HDB_log_mnt00001 /hana/log/HDB/mnt00001 nfs rw,bg,hard,timeo=600,noatime,vers=4,minorversion=1,lock,rsize=262144,wsize=262144,nconnect=2
<svm-data_2>:/HDB_data_mnt00002 /hana/data/HDB/mnt00002 nfs rw,bg,hard,timeo=600,noatime,vers=4,minorversion=1,lock,rsize=262144,wsize=262144,nconnect=4
<svm-log_2>:/HDB_log_mnt00002 /hana/log/HDB/mnt00002 nfs rw,bg,hard,timeo=600,noatime,vers=4,minorversion=1,lock,rsize=262144,wsize=262144,nconnect=2
<svm-data_3>:/HDB_data_mnt00003 /hana/data/HDB/mnt00003 nfs rw,bg,hard,timeo=600,noatime,vers=4,minorversion=1,lock,rsize=262144,wsize=262144,nconnect=4
<svm-log_3>:/HDB_log_mnt00003 /hana/log/HDB/mnt00003 nfs rw,bg,hard,timeo=600,noatime,vers=4,minorversion=1,lock,rsize=262144,wsize=262144,nconnect=2
<svm-data_4>:/HDB_data_mnt00004 /hana/data/HDB/mnt00004 nfs rw,bg,hard,timeo=600,noatime,vers=4,minorversion=1,lock,rsize=262144,wsize=262144,nconnect=4
<svm-log_4>:/HDB_log_mnt00004 /hana/log/HDB/mnt00004 nfs rw,bg,hard,timeo=600,noatime,vers=4,minorversion=1,lock,rsize=262144,wsize=262144,nconnect=2
<svm-shared>:/HDB_shared/shared /hana/shared nfs rw,bg,hard,timeo=600,noatime,vers=4,minorversion=1,lock,rsize=262144,wsize=262144,nconnect=2
```

 **示例 – 挂载特定于主机的卷** 

在**每台**主机上向 `/etc/fstab` 添加特定于主机的行，以便在实例重启期间保留已挂载的文件系统。然后，您可以运行 `mount -a` 来挂载 NFS 文件系统。


| 主机 | 行 | 
| --- | --- | 
|  主机 1  |   `<svm-shared>:/HDB_shared/usr-sap-host1 /usr/sap/HDB nfs rw,bg,hard,timeo=600,noatime,vers=4,minorversion=1,lock,rsize=262144,wsize=262144,nconnect=2`   | 
|  主机 2  |   `<svm-shared>:/HDB_shared/usr-sap-host2 /usr/sap/HDB nfs rw,bg,hard,timeo=600,noatime,vers=4,minorversion=1,lock,rsize=262144,wsize=262144,nconnect=2`   | 
|  主机 3  |   `<svm-shared>:/HDB_shared/usr-sap-host3 /usr/sap/HDB nfs rw,bg,hard,timeo=600,noatime,vers=4,minorversion=1,lock,rsize=262144,wsize=262144,nconnect=2`   | 
|  主机 4  |   `<svm-shared>:/HDB_shared/usr-sap-host4 /usr/sap/HDB nfs rw,bg,hard,timeo=600,noatime,vers=4,minorversion=1,lock,rsize=262144,wsize=262144,nconnect=2`   | 
|  主机 5（备用主机）  |   `<svm-shared>:/HDB_shared/usr-sap-host5 /usr/sap/HDB nfs rw,bg,hard,timeo=600,noatime,vers=4,minorversion=1,lock,rsize=262144,wsize=262144,nconnect=2`   | 

## 为目录设置所有权
<a name="directories-scaleout"></a>

使用以下命令设置对 SAP HANA 数据和日志目录的 `hdbadm` 所有权。

```
sudo chown hdbadm:sapsys /hana/data/HDB
sudo chown hdbadm:sapsys /hana/log/HDB
```

## SAP HANA 参数
<a name="parameters-scaleout"></a>

使用所需配置安装 SAP HANA 系统，然后设置以下参数。有关 SAP HANA 安装的更多信息，请参阅 [SAP HANA Server Installation and Update Guide](https://help.sap.com/docs/SAP_HANA_PLATFORM/2c1988d620e04368aa4103bf26f17727/7eb0167eb35e4e2885415205b8383584.html?version=2.0.04)。

**Topics**
+ [最佳性能](#parameters-performance-scaleout)
+ [NFS 锁定租用](#parameters-nfslock-scaleout)

### 最佳性能
<a name="parameters-performance-scaleout"></a>

为了获得最佳性能，请在 `global.ini` 文件中设置以下参数。

```
[fileio]
max_parallel_io_requests=128
async_read_submit=on
async_write_submit_active=on
async_write_submit_blocks=all
```

以下 SQL 命令可用于在 `SYSTEM` 级别设置这些参数。

```
ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('fileio', 'max_parallel_io_requests') = '128' WITH RECONFIGURE;
ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('fileio', 'async_read_submit') = 'on' WITH RECONFIGURE;
ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('fileio', 'async_write_submit_active') = 'on' WITH RECONFIGURE;
ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('fileio', 'async_write_submit_blocks') = 'all' WITH RECONFIGURE;
```

### NFS 锁定租用
<a name="parameters-nfslock-scaleout"></a>

从 SAP HANA 2.0 开始 SPS4，SAP HANA 提供了控制故障转移行为的参数。建议使用这些参数，而不是在 `SVM` 级别设置租用时间。`namerserver.ini` 文件中配置了以下参数。


| Section | 参数 | 值 | 
| --- | --- | --- | 
|   `failover`   |   `normal_retries`   |  9  | 
|   `distributed_watchdog`   |   `deactivation_retries`   |  11  | 
|   `distributed_watchdog`   |   `takeover_retries`   |  9  | 

以下 SQL 命令可用于在 `SYSTEM` 级别设置这些参数。

```
ALTER SYSTEM ALTER CONFIGURATION ('nameserver.ini', 'SYSTEM') SET ('failover', 'normal_retries') = '9' WITH RECONFIGURE;
ALTER SYSTEM ALTER CONFIGURATION ('nameserver.ini', 'SYSTEM') SET ('distributed_watchdog', 'deactivation_retries') = '11' WITH RECONFIGURE;
ALTER SYSTEM ALTER CONFIGURATION ('nameserver.ini', 'SYSTEM') SET ('distributed_watchdog', 'takeover_retries') = '9' WITH RECONFIGURE;
```

## 数据卷分区
<a name="partitions-scaleout"></a>

在 SAP HANA 2.0 中 SPS4，额外的数据卷分区允许在单主机或多主机系统中为 SAP HANA 租户数据库的数据量配置两个或多个文件系统卷。数据卷分区使 SAP HANA 能够突破单个卷的大小和性能限制进行扩展。您可以随时添加额外的数据卷分区。有关更多信息，请参阅[添加其他数据卷分区](https://docs.netapp.com/us-en/netapp-solutions-sap/bp/hana-aff-nfs-add-data-volume-partitions.html)。

**Topics**
+ [主机准备](#host-preparation-scaleout)
+ [启用数据卷分区](#enable-partition-scaleout)
+ [添加额外的数据卷分区](#add-partition-scaleout)

### 主机准备
<a name="host-preparation-scaleout"></a>

必须创建额外的挂载点和 `/etc/fstab` 条目，并且必须挂载了新卷。
+ 创建额外的挂载点并分配所需的权限、组和所有权。

  ```
  mkdir -p /hana/data2/HDB/mnt00001
  chmod -R 777 /hana/data2/HDB/mnt00001
  ```
+ 向 `/etc/fstab` 添加额外的文件系统。

  ```
  <data2>:/data2 /hana/data2/HDB/mnt00001 nfs <mount options>
  ```
+ 将权限设置为 777。要使 SAP HANA 能够在后续步骤中添加新数据卷，这是必需的。SAP HANA 会在数据卷创建期间自动设置更严格的权限。

### 启用数据卷分区
<a name="enable-partition-scaleout"></a>

要启用数据卷分区，请在 `SYSTEMDB` 配置的 `global.ini` 文件中添加以下条目。

```
[customizable_functionalities]
persistence_datavolume_partition_multipath = true
```

```
ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM')
SET ('customizable_functionalities', 'PERSISTENCE_DATAVOLUME_PARTITION_MULTIPATH') = 'true'
WITH RECONFIGURE;
```

**注意**  
更新 `global.ini` 文件后，您必须重新启动数据库。

### 添加额外的数据卷分区
<a name="add-partition-scaleout"></a>

对租户数据库运行以下 SQL 语句，向租户数据库添加额外的数据卷分区。

```
ALTER SYSTEM ALTER DATAVOLUME ADD PARTITION PATH '/hana/data2/HDB/';
```

添加数据卷分区的速度很快。新数据卷分区在创建后为空。数据会随着时间的推移均匀分布在各个数据卷中。

## 测试主机自动失效转移
<a name="failover-scaleout"></a>

建议您测试 SAP HANA 主机自动失效转移场景。有关更多信息，请参阅 [SAP HANA - Host Auto-Failover](https://www.sap.com/documents/2016/06/f6b3861d-767c-0010-82c7-eda71af511fa.html)。

部分单词已被编辑并替换为包容性词语。这些词语在您的产品、系统代码或表中的显示可能有所不同。有关更多详细信息，请参阅 [Inclusive Language at SAP](https://help.sap.com/docs/TERMINOLOGY/25cbeaaad3c24eba8ea10b579ce81aa1/83a23df24013403ea4c1fdd0107cc0fd.html)。

下表列出了不同测试场景的预期结果。


| 场景 | 预期结果 | 
| --- | --- | 
|  使用 `echo b > /proc/sysrq-trigger` 时出现 SAP HANA 从属节点故障   |  从属节点失效转移到备用节点  | 
|  使用 `HDB` 终止功能时出现 SAP HANA 协调器节点故障  |  SAP HANA 服务失效转移到备用节点（协调器节点的另一个候选节点）  | 
|  SAP HANA 协调器节点出现故障，而其他协调器节点充当从属节点  |  协调器节点失效转移到备用节点，而其他协调器节点充当从属节点  | 

**Topics**
+ [SAP HANA 从属节点故障](#scenario1-scaleout)
+ [SAP HANA 协调器节点故障](#scenario2-scaleout)
+ [SAP HANA 协调器节点出现故障，而其他协调器节点充当从属节点](#scenario3-scaleout)

### SAP HANA 从属节点故障
<a name="scenario1-scaleout"></a>

在测试前，请检查场景的状态。

```
hdbadm@hana:/usr/sap/HDB/HDB00/exe/python_support> python landscapeHostConfiguration.py
| Host    | Host   | Host   | Failover | Remove | Storage   | Storage   | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host    | Host    | Worker  | Worker  |
|         | Active | Status | Status   | Status | Config    | Actual    | Config   | Actual   | Config     | Actual     | Config      | Actual      | Config  | Actual  | Config  | Actual  |
|         |        |        |          |        | Partition | Partition | Group    | Group    | Role       | Role       | Role        | Role        | Roles   | Roles   | Groups  | Groups  |
| ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- |
| hana    | yes    | ok     |          |        |         1 |         1 | default  | default  | coordinator 1   | coordinator     | worker      | coordinator      | worker  | worker  | default | default |
| hanaw01 | yes    | ok     |          |        |         2 |         2 | default  | default  | subordinate      | subordinate      | worker      | subordinate       | worker  | worker  | default | default |
| hanaw02 | yes    | ok     |          |        |         3 |         3 | default  | default  | subordinate      | subordinate      | worker      | subordinate       | worker  | worker  | default | default |
| hanaw03 | yes    | ok     |          |        |         4 |         4 | default  | default  | coordinator 3   | subordinate      | worker      | subordinate       | worker  | worker  | default | default |
| hanaw04 | yes    | ignore |          |        |         0 |         0 | default  | default  | coordinator 2   | subordinate      | standby     | standby     | standby | standby | default | -       |

overall host status: ok
```

以 `root` 身份在从属节点上运行以下命令来模拟节点崩溃。在本例中，从属节点是 `hanaw01`。

```
echo b > /proc/sysrq-trigger
```

```
hdbadm@hana:/usr/sap/HDB/HDB00/exe/python_support> python landscapeHostConfiguration.py
| Host    | Host   | Host   | Failover | Remove | Storage   | Storage   | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host    | Host    | Worker  | Worker  |
|         | Active | Status | Status   | Status | Config    | Actual    | Config   | Actual   | Config     | Actual     | Config      | Actual      | Config  | Actual  | Config  | Actual  |
|         |        |        |          |        | Partition | Partition | Group    | Group    | Role       | Role       | Role        | Role        | Roles   | Roles   | Groups  | Groups  |
| ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- |
| hana    | yes    | ok     |          |        |         1 |         1 | default  | default  | coordinator 1   | coordinator     | worker      | coordinator      | worker  | worker  | default | default |
| hanaw01 | no     | info   |          |        |         2 |         0 | default  | default  | subordinate      | subordinate      | worker      | standby     | worker  | standby | default | -       |
| hanaw02 | yes    | ok     |          |        |         3 |         3 | default  | default  | subordinate      | subordinate      | worker      | subordinate       | worker  | worker  | default | default |
| hanaw03 | yes    | ok     |          |        |         4 |         4 | default  | default  | coordinator 3   | subordinate      | worker      | subordinate       | worker  | worker  | default | default |
| hanaw04 | yes    | info   |          |        |         0 |         2 | default  | default  | coordinator 2   | subordinate      | standby     | subordinate       | standby | worker  | default | default |

overall host status: info
hdbadm@hana:/usr/sap/HDB/HDB00/exe/python_support>
```

### SAP HANA 协调器节点故障
<a name="scenario2-scaleout"></a>

在使节点崩溃前，请检查场景的状态。

```
hdbadm@hana:/usr/sap/HDB/HDB00/exe/python_support> python landscapeHostConfiguration.py
| Host    | Host   | Host   | Failover | Remove | Storage   | Storage   | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host    | Host    | Worker  | Worker  |
|         | Active | Status | Status   | Status | Config    | Actual    | Config   | Actual   | Config     | Actual     | Config      | Actual      | Config  | Actual  | Config  | Actual  |
|         |        |        |          |        | Partition | Partition | Group    | Group    | Role       | Role       | Role        | Role        | Roles   | Roles   | Groups  | Groups  |
| ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- |
| hana    | yes    | ok     |          |        |         1 |         1 | default  | default  | coordinator 1   | coordinator     | worker      | coordinator      | worker  | worker  | default | default |
| hanaw01 | yes    | ok     |          |        |         2 |         2 | default  | default  | subordinate      | subordinate      | worker      | subordinate       | worker  | worker  | default | default |
| hanaw02 | yes    | ok     |          |        |         3 |         3 | default  | default  | subordinate      | subordinate      | worker      | subordinate       | worker  | worker  | default | default |
| hanaw03 | yes    | ok     |          |        |         4 |         4 | default  | default  | coordinator 3   | subordinate      | worker      | subordinate       | worker  | worker  | default | default |
| hanaw04 | yes    | ignore |          |        |         0 |         0 | default  | default  | coordinator 2   | subordinate      | standby     | standby     | standby | standby | default | -       |

overall host status: ok
hdbadm@hana:/usr/sap/HDB/HDB00/exe/python_support>
```

使用以下命令，通过中断协调器节点上的 SAP HANA 进程来模拟故障。在本例中，协调器节点是 `hana`。

```
hdbadm@hana:/usr/sap/HDB/HDB00/exe/python_support> HDB kill
```

```
hdbadm@hana:/usr/sap/HDB/HDB00/exe/python_support> python landscapeHostConfiguration.py
nameserver hana:30001 not responding.
| Host    | Host   | Host   | Failover | Remove | Storage   | Storage   | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host    | Host    | Worker  | Worker  |
|         | Active | Status | Status   | Status | Config    | Actual    | Config   | Actual   | Config     | Actual     | Config      | Actual      | Config  | Actual  | Config  | Actual  |
|         |        |        |          |        | Partition | Partition | Group    | Group    | Role       | Role       | Role        | Role        | Roles   | Roles   | Groups  | Groups  |
| ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- |
| hana    | no     | info   |          |        |         1 |         0 | default  | default  | coordinator 1   | subordinate      | worker      | standby     | worker  | standby | default | -       |
| hanaw01 | yes    | ok     |          |        |         2 |         2 | default  | default  | subordinate      | subordinate      | worker      | subordinate       | worker  | worker  | default | default |
| hanaw02 | yes    | ok     |          |        |         3 |         3 | default  | default  | subordinate      | subordinate      | worker      | subordinate       | worker  | worker  | default | default |
| hanaw03 | yes    | ok     |          |        |         4 |         4 | default  | default  | coordinator 3   | subordinate      | worker      | subordinate       | worker  | worker  | default | default |
| hanaw04 | yes    | info   |          |        |         0 |         1 | default  | default  | coordinator 2   | coordinator     | standby     | coordinator      | standby | worker  | default | default |

overall host status: info
hdbadm@hana:/usr/sap/HDB/HDB00/exe/python_support>
```

### SAP HANA 协调器节点出现故障，而其他协调器节点充当从属节点
<a name="scenario3-scaleout"></a>

在测试前，请检查场景的状态。

```
hdbadm@hana:/usr/sap/HDB/HDB00/exe/python_support> python landscapeHostConfiguration.py
| Host    | Host   | Host   | Failover | Remove | Storage   | Storage   | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host    | Host    | Worker  | Worker  |
|         | Active | Status | Status   | Status | Config    | Actual    | Config   | Actual   | Config     | Actual     | Config      | Actual      | Config  | Actual  | Config  | Actual  |
|         |        |        |          |        | Partition | Partition | Group    | Group    | Role       | Role       | Role        | Role        | Roles   | Roles   | Groups  | Groups  |
| ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- |
| hana    | yes    | ok     |          |        |         1 |         2 | default  | default  | coordinator 1   | subordinate      | worker      | subordinate       | worker  | worker  | default | default |
| hanaw01 | yes    | info   |          |        |         2 |         0 | default  | default  | subordinate      | subordinate      | worker      | standby     | worker  | standby | default | -       |
| hanaw02 | yes    | ok     |          |        |         3 |         4 | default  | default  | subordinate      | subordinate      | worker      | subordinate       | worker  | worker  | default | default |
| hanaw03 | yes    | ok     |          |        |         4 |         3 | default  | default  | coordinator 3   | subordinate      | worker      | subordinate       | worker  | worker  | default | default |
| hanaw04 | yes    | info   |          |        |         0 |         1 | default  | default  | coordinator 2   | coordinator     | standby     | coordinator      | standby | worker  | default | default |

overall host status: info
hdbadm@hana:/usr/sap/HDB/HDB00/exe/python_support>
```

使用以下命令，通过中断协调器节点上的 SAP HANA 进程来模拟故障。在本例中，协调器节点是 `hana04`。

```
hdbadm@hanaw04:/usr/sap/HDB/HDB00> HDB kill
```

```
hdbadm@hana:/usr/sap/HDB/HDB00/exe/python_support> python landscapeHostConfiguration.py
| Host    | Host     | Host    | Failover         | Remove | Storage   | Storage   | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host    | Host    | Worker  | Worker  |
|         | Active   | Status  | Status           | Status | Config    | Actual    | Config   | Actual   | Config     | Actual     | Config      | Actual      | Config  | Actual  | Config  | Actual  |
|         |          |         |                  |        | Partition | Partition | Group    | Group    | Role       | Role       | Role        | Role        | Roles   | Roles   | Groups  | Groups  |
| ------- | -------- | ------- | ---------------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- |
| hana    | starting | warning |                  |        |         1 |         1 | default  | default  | coordinator 1   | coordinator     | worker      | coordinator      | worker  | worker  | default | default |
| hanaw01 | starting | warning |                  |        |         2 |         2 | default  | default  | subordinate      | subordinate      | worker      | subordinate       | worker  | worker  | default | default |
| hanaw02 | yes      | ok      |                  |        |         3 |         3 | default  | default  | subordinate      | subordinate      | worker      | subordinate       | worker  | worker  | default | default |
| hanaw03 | yes      | ok      |                  |        |         4 |         4 | default  | default  | coordinator 3   | subordinate      | worker      | subordinate       | worker  | worker  | default | default |
| hanaw04 | no       | warning | failover to hana |        |         0 |         0 | default  | default  | coordinator 2   | subordinate      | standby     | standby     | standby | standby | default | -       |

overall host status: warning
hdbadm@hana:/usr/sap/HDB/HDB00/exe/python_support> python landscapeHostConfiguration.py
| Host    | Host   | Host   | Failover | Remove | Storage   | Storage   | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host    | Host    | Worker  | Worker  |
|         | Active | Status | Status   | Status | Config    | Actual    | Config   | Actual   | Config     | Actual     | Config      | Actual      | Config  | Actual  | Config  | Actual  |
|         |        |        |          |        | Partition | Partition | Group    | Group    | Role       | Role       | Role        | Role        | Roles   | Roles   | Groups  | Groups  |
| ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- |
| hana    | yes    | ok     |          |        |         1 |         1 | default  | default  | coordinator 1   | coordinator     | worker      | coordinator      | worker  | worker  | default | default |
| hanaw01 | yes    | ok     |          |        |         2 |         2 | default  | default  | subordinate      | subordinate      | worker      | subordinate       | worker  | worker  | default | default |
| hanaw02 | yes    | ok     |          |        |         3 |         3 | default  | default  | subordinate      | subordinate      | worker      | subordinate       | worker  | worker  | default | default |
| hanaw03 | yes    | ok     |          |        |         4 |         4 | default  | default  | coordinator 3   | subordinate      | worker      | subordinate       | worker  | worker  | default | default |
| hanaw04 | no     | ignore |          |        |         0 |         0 | default  | default  | coordinator 2   | subordinate      | standby     | standby     | standby | standby | default | -       |

overall host status: ok
hdbadm@hana:/usr/sap/HDB/HDB00/exe/python_support>
```

# 配置存储（Amazon EFS）
<a name="configure-nfs-for-scale-out-workloads"></a>

**注意**  
如果您计划使用 FSx for ONTAP 存储进行部署，请参阅 SAP HANA on AWS 及适用于 NetApp ONTAP 的 Amazon FSx 指南，并跳过此处详细介绍的 Amazon EFS 配置步骤。

Amazon EFS 提供了易于设置、可扩展且高度可用的共享文件系统，可使用 NFSv4 客户端挂载。对于横向扩展工作负载，我们建议使用适用于 SAP HANA 的 Amazon EFS 共享和备份卷。您可以根据您的要求为文件系统选择不同的性能选项。我们建议从“通用吞吐量”和“预置吞吐量”选项开始，吞吐量大约为 100 MiB/s 到 200 MiB/s。要设置文件系统，请执行以下操作：

1. 在横向扩展集群的所有节点中安装 `nfs-utils` 软件包。
   + 对于 RHEL，请使用 `yum install nfs-utils`。
   + 对于 SLES，请使用 `zypper install nfs-utils`。

1. 为目标 VPC 和子网中的 SAP HANA 共享卷和备份卷，创建两个 Amazon EFS 文件系统和目标挂载。有关详细步骤，请按照 [AWS 文档](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEFS.html)中指定的说明进行操作。

1. 创建文件系统后，使用以下命令在所有节点中挂载新创建的文件系统：

   ```
      mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 <EFS DNS Name>:/ /hana/shared
   
      mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 <EFS DNS Name>:/ /backup
   ```
**注意**  
如果在挂载 NFS 文件系统时遇到问题，可能需要调整安全组以允许访问端口 2049。有关详细信息，请参阅 AWS 文档中的 [Amazon EC2 实例安全组和挂载目标](https://docs.aws.amazon.com/efs/latest/ug/security-considerations.html#network-access)。

1. 将 NFS 挂载条目添加到所有节点中的 `/etc/fstab` 文件，以便在系统重新启动期间自动挂载这些文件系统；例如：

   ```
      echo “nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 <EFS DNS Name>:/ /hana/shared” >> /etc/fstab
      echo “nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 <EFS DNS Name>:/ /backup” >> /etc/fstab
   ```

1. 为目标挂载点设置适当的权限和所有权。

# 配置 ENA Express
<a name="ena-express-sap-hana"></a>

SAP HANA 横向扩展系统要求节点之间的单个流的网络带宽至少为 9 Gbps。Amazon EC2 实例现在支持 ENA Express，允许实例之间的单个流的带宽最高可达 25 Gbps，而且无需集群置放群组。有关更多信息，请参阅[使用 ENA Express 提高 Linux 实例之间的网络性能](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-express.html)。

## 先决条件
<a name="prerequisites-ena-express-sap-hana"></a>

在为 SAP HANA 横向扩展系统或 SAP NetWeaver 工作负载设置 ENA Express 之前，请验证以下先决条件。
+ 确认您选择的实例类型已通过 SAP HANA 认证或 SAP 支持 NetWeaver。
  + 对于 **SAP HANA 横向扩展工作负载**，您可以对经过认证和受支持的 Amazon EC2 实例启用 ENA Express。有关所支持实例的信息，请参阅 [ENA Express 支持的实例类型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-express.html#ena-express-supported-instance-types)。有关经过认证的实例的信息，请参阅 [Certified and Supported SAP HANA Hardware](https://www.sap.com/dmc/exp/2014-09-02-hana-hardware/enEN/#/solutions?filters=iaas;ve:23;v:b046dad8-7aa0-457a-ade5-286ebaf88a2f;v:963a354b-c138-4c78-b95f-2bca33f1fc0a)。如果某个 Amazon EC2 实例已通过横向扩展认证，但不支持 ENA Express，您仍可以使用集群置放群组来获得高达 10 Gbps 的单个流网络带宽。
  + 对于 **SAP NetWeaver 工作负载**，您可以将 ENA Express 与所有支持 ENA Express 的 SAP 认证的 Amazon EC2 实例一起使用。有关详细信息，请参阅以下资源：
    +  [SAP NetWeaver 支持的实例](https://docs.aws.amazon.com/sap/latest/general/sap-netweaver-aws-ec2.html) 
    +  [SAP Note 1656099 — 上的 SAP 应用程序 AWS：支持的产品和 A DB/OS mazon EC2 产品](https://me.sap.com/notes/1656099/E) 
+ 确保您使用的是符合最低要求的操作系统版本和最新的内核版本。
  + RHEL for SAP 8.4 及更高版本
  + SAP SP5 的 SLES 12 或 SAP 及以上版本 SP2 的 SLES 15
**注意**  
确认您选择的操作系统已通过 SAP HANA 认证。有关更多信息，请参阅[认证和支持的 SAP HANA 硬件](https://www.sap.com/dmc/exp/2014-09-02-hana-hardware/enEN/#/solutions?filters=iaas;ve:23;v:b046dad8-7aa0-457a-ade5-286ebaf88a2f;v:963a354b-c138-4c78-b95f-2bca33f1fc0a)。

## 配置操作系统
<a name="os-ena-express-sap-hana"></a>

您必须在操作系统级别配置一些与网络相关的参数，以确保 ENA Express 正常运行。这包括配置 ENA Express 所需的正确最大传输单位（mtu），以及其他参数。有关更多信息，请参阅适用于 ENA Express 的[先决条件](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-express.html#ena-express-prereq-linux)。

您也可以使用 [check-ena-express-settings.sh](https://github.com/amzn/amzn-ec2-ena-utilities/blob/main/ena-express/check-ena-express-settings.sh) 脚本来检查操作系统的先决条件。您可以从 S AWS ystems Manager 中同时对多个实例运行脚本。要使用 Systems Manager 运行脚本，必须确保您的系统安装了 S AWS ystems Manager 代理。使用以下步骤运行该脚本。

1. 转到 https://console.aws.amazon.com/systems-manager/。

1. 选择**节点管理** > **运行命令**。

1. 选择**运行命令**，然后搜索 **` AWS-RunRemoteScript`**。

1. 选择 **` AWS-RunRemoteScript`** 并输入以下参数。
   +  **来源类型** — GitHub
   +  **来源信息**：`{ "owner": "amzn", "repository": "amzn-ec2-ena-utilities", "path": "ena-express", "getOptions": "branch: main" }`
   +  **命令行**：`check-ena-express-settings.sh eth0`
**注意**  
您必须对所有弹性网络接口（如 `eth1`、`eth2` 等）重复进行此检查。

1. 在**目标选择**中，指定要对其运行脚本的实例。

1. 选择**运行**。

命令运行完毕后，您可以查看输出，并根据需要进行纠正。

## ENA Express 设置
<a name="settings-ena-express-sap-hana"></a>

配置操作系统后，您可以通过 AWS 管理控制台或 AWS CLI 为目标实例启用 ENA Express。有关更多信息，请参阅[配置 ENA Express 设置](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ena-express-configure.html)。对于横向扩展设置中的所有节点，必须重复进行此设置。

成功启用 ENA Express 后，您无需集群置放群组，即可获得 SAP HANA 横向扩展系统所需的最低单个流网络吞吐量。要删除置放群组，请参阅[使用置放群组](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html#concepts-placement-groups)。

## 检查 SAP HANA 横向扩展性能
<a name="performance-ena-express-sap-hana"></a>

启用 ENA Express 后，您可以使用 [SAP HANA 硬件和云测量工具](https://help.sap.com/docs/HANA_HW_CLOUD_TOOLS/02bb1e64c2ae4de7a11369f4e70a6394/7e878f6e16394f2990f126e639386333.html)来检查其性能。有关更多详细信息，请参阅 [Measure System Configuration and Performance - Scale-out Systems](https://help.sap.com/docs/HANA_HW_CLOUD_TOOLS/02bb1e64c2ae4de7a11369f4e70a6394/61c3401eff904a349032e450cd031a65.html)。

# 部署后步骤
<a name="post-deployment-steps"></a>

1. 如果需要，请完成将实例连接到公司目录服务（如 Microsoft Active Directory）所需的步骤。

1. 设置环境所需的任何监控。

1. 设置 CloudWatch 警报和 Amazon EC2 自动恢复，以便在发生硬件故障时自动恢复您的实例。有关详细信息，请参阅 AWS 文档中的[恢复实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-recover.html)。您还可以参阅知识中心[视频](https://aws.amazon.com/premiumsupport/knowledge-center/automatic-recovery-ec2-cloudwatch/)以获取详细说明。
**注意**  
在专属主机中运行的 Amazon EC2 实例不支持自动恢复。

1. 创建新部署系统的 AMI 以对您的实例创建完整备份。有关说明，请参阅 AWS 文档中的[从 Amazon EC2 实例创建 AMI](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/tkv-create-ami-from-instance.html)。

1. 如果您已部署 SAP HANA 横向扩展集群，请考虑添加其他弹性网络接口和安全组，以逻辑方式分离客户端、节点间以及可选 SAP HANA 系统复制 (HSR) 通信的网络流量。有关详细信息，请参阅 [SAP HANA on AWS 操作指南](https://docs.aws.amazon.com/sap/latest/sap-hana/sap-hana-on-aws-operations.html)。