

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

# 配置 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.amazonaws.cn/sap/latest/sap-hana/configure-storage-for-sap-hana.html)

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

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

    *示例*：

   ```
   $ 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 之前重启操作系统，以确保文件系统的持久性。