

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 存取檔案系統
<a name="accessing-fs"></a>

使用 Amazon FSx，您可以透過 Direct Connect 或 VPN 匯入資料，將內部部署中的運算密集型工作負載爆量到 Amazon Web Services Cloud。您可以從內部部署存取 Amazon FSx 檔案系統、視需要將資料複製到檔案系統，以及在雲端執行個體上執行運算密集型工作負載。

在下一節中，您可以了解如何在 Linux 執行個體上存取 Amazon FSx for Lustre 檔案系統。此外，您可以找到如何使用 `fstab` 檔案，讓檔案系統在任何系統重新啟動後自動重新掛載。

您必須建立、設定及啟動您的相關 AWS 資源，然後才可以掛載檔案系統。如需詳細說明，請參閱 [Amazon FSx for Lustre 入門](getting-started.md)。接下來，您可以在運算執行個體上安裝和設定Lustre用戶端。

**Topics**
+ [Lustre 檔案系統和用戶端核心相容性](lustre-client-matrix.md)
+ [安裝Lustre用戶端](install-lustre-client.md)
+ [從 Amazon Elastic Compute Cloud 執行個體掛載](mounting-ec2-instance.md)
+ [設定 EFA 用戶端](configure-efa-clients.md)
+ [從 Amazon Elastic Container Service 掛載](mounting-ecs.md)
+ [從內部部署或對等 Amazon VPC 掛載 Amazon FSx 檔案系統](mounting-on-premises.md)
+ [自動掛載 Amazon FSx 檔案系統](mount-fs-auto-mount-onreboot.md)
+ [掛載特定檔案集](mounting-from-fileset.md)
+ [卸載檔案系統](unmounting-fs.md)
+ [使用 Amazon EC2 Spot 執行個體](working-with-ec2-spot-instances.md)

# Lustre 檔案系統和用戶端核心相容性
<a name="lustre-client-matrix"></a>

我們強烈建議Lustre為您的 FSx for Lustre 檔案系統使用與用戶端執行個體的 Linux 核心版本相容的 版本。

## Amazon Linux 用戶端
<a name="amz-linux-clients"></a>


| 作業系統 | 作業系統版本 | 最低核心版本 | 核心版本上限 | Lustre 用戶端版本 | Lustre 檔案系統版本 | 
| --- | --- | --- | --- | --- | --- | 
|  |  |  |  |  | 2.10 | 2.12 | 2.15 | 
| Amazon Linux 2023 | 6.12 | \$1 | \$1 | 2.15 | 否 | 是 | 是 | 
|  | 6.1 | 6.1.79-99.167 | 6.1.79-99.167\$1 | 2.15 | 否 | 是 | 是 | 
| Amazon Linux 2 | 5.10 | 5.10.144-127.601 | 5.10.144-127.601\$1 | 2.12 | 是 | 是 | 是 | 
|  |  |  | <5.10.144-127.601 | 2.10 | 是 | 是 | 否 | 
|  | 5.4 | 5.4.214-120.368 | 5.4.214-120.368\$1 | 2.12 | 是 | 是 | 是 | 
|  |  |  | <5.4.214-120.368 | 2.10 | 是 | 是 | 否 | 
|  | 4.14 | 4.14.294-220.533 | 4.14.294-220.533\$1 | 2.12 | 是 | 是 | 是 | 
|  |  |  | <4.14.294-220.533 | 2.10 | 是 | 是 | 否 | 

## Ubuntu 用戶端
<a name="ubuntu-clients"></a>


| 作業系統 | 作業系統版本 | 最低核心版本 | 核心版本上限 | Lustre 用戶端版本 | Lustre 檔案系統版本 | 
| --- | --- | --- | --- | --- | --- | 
|  |  |  |  |  | 2.10 | 2.12 | 2.15 | 
| Ubuntu | 24 | 6.14.0-1012 | 6.14.0\$1 | 2.15 | 否 | 是 | 是 | 
|  |  | 6.8.0-1024 | 6.8.0\$1 | 2.15 | 否 | 是 | 是 | 
|  | 22 | 6.8.0-1017 | 6.8.0\$1 | 2.15 | 否 | 是 | 是 | 
|  |  | 6.5.0-1023 | 6.5.0\$1 | 2.15 | 否 | 是 | 是 | 
|  |  | 6.2.0-1017 | 6.2.0\$1 | 2.15 | 否 | 是 | 是 | 
|  |  | 5.15.0-1015-aws | 5.15.0-1051-aws | 2.12 | 是 | 是 | 是 | 
|  | 20 | 5.15.0-1015-aws | 5.15.0\$1 | 2.12 | 是 | 是 | 是 | 
|  |  | 5.4.0-1011-aws | 5.13.0-1031-aws | 2.10 | 是 | 是 | 否 | 

## RHEL/CentOS/Rocky Linux 用戶端
<a name="rhel-clients"></a>


| 作業系統 | 作業系統版本 | Architecture | 最低核心版本 | 核心版本上限 | Lustre 用戶端版本 | Lustre 檔案系統版本 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  |  |  |  |  |  | 2.10 | 2.12 | 2.15 | 
| RHEL/Rocky Linux | 9.7 | 手臂 \$1 x86 | 5.14.0-611.5.1 | 5.14.0-611\$1 | 2.15 | 否 | 是 | 是 | 
|  | 9.6 | 手臂 \$1 x86 | 5.14.0-570.12.1 | 5.14.0-570\$1 | 2.15 | 否 | 是 | 是 | 
|  | 9.5 | 手臂 \$1 x86 | 5.14.0-503.19.1 | 5.14.0-503\$1 | 2.15 | 否 | 是 | 是 | 
|  | 9.4 | 手臂 \$1 x86 | 5.14.0-427.13.1 | 5.14.0-427\$1 | 2.15 | 否 | 是 | 是 | 
|  | 9.3 | 手臂 \$1 x86 | 5.14.0-362.18.1 | 5.14.0-362.18.1 | 2.15 | 否 | 是 | 是 | 
|  | 9.0 | 手臂 \$1 x86 | 5.14.0-70.13.1 | 5.14.0-70.30.1 | 2.15 | 否 | 是 | 是 | 
| RHEL/CentOS/Rocky Linux | 8.10 | 手臂 \$1 x86 | 4.18.0-553 | 4.18.0-553\$1 | 2.12 | 是 | 是 | 是 | 
|  | 8.9 | 手臂 \$1 x86 | 4.18.0-513\$1 | 4.18.0-513\$1 | 2.12 | 是 | 是 | 是 | 
|  | 8.8 | 手臂 \$1 x86 | 4.18.0-477\$1 | 4.18.0-477\$1 | 2.12 | 是 | 是 | 是 | 
|  | 8.7 | 手臂 \$1 x86 | 4.18.0-425\$1 | 4.18.0-425\$1 | 2.12 | 是 | 是 | 是 | 
|  | 8.6 | 手臂 \$1 x86 | 4.18.0-372\$1 | 4.18.0-372\$1 | 2.12 | 是 | 是 | 是 | 
|  | 8.5 | 手臂 \$1 x86 | 4.18.0-348\$1 | 4.18.0-348\$1 | 2.12 | 是 | 是 | 是 | 
|  | 8.4 | 手臂 \$1 x86 | 4.18.0-305\$1 | 4.18.0-305\$1 | 2.12 | 是 | 是 | 是 | 
| RHEL/CentOS | 8.3 | 手臂 \$1 x86 | 4.18.0-240\$1 | 4.18.0-240\$1 | 2.10 | 是 | 是 | 否 | 
|  | 8.2 | 手臂 \$1 x86 | 4.18.0-193\$1 | 4.18.0-193\$1 | 2.10 | 是 | 是 | 否 | 
|  | 7.9 | x86 | 3.10.0-1160\$1 | 3.10.0-1160\$1 | 2.12 | 是 | 是 | 是 | 
|  | 7.8 | x86 | 3.10.0-1127\$1 | 3.10.0-1127\$1 | 2.10 | 是 | 是 | 否 | 
|  | 7.7 | x86 | 3.10.0-1062\$1 | 3.10.0-1062\$1 | 2.10 | 是 | 是 | 否 | 
| CentOS | 7.9 | Arm | 4.18.0-193\$1 | 4.18.0-193\$1 | 2.12 | 是 | 是 | 是 | 
|  | 7.8 | Arm | 4.18.0-147\$1 | 4.18.0-147\$1 | 2.12 | 是 | 是 | 是 | 

# 安裝Lustre用戶端
<a name="install-lustre-client"></a>

若要從 Linux 執行個體掛載 Amazon FSx for Lustre 檔案系統，請先安裝開放原始碼Lustre用戶端。然後，根據您的作業系統版本，使用下列其中一個程序。如需核心支援資訊，請參閱 [Lustre 檔案系統和用戶端核心相容性](lustre-client-matrix.md)。

如果您使用 Lustre 用戶端搭配 EFA （彈性布料轉接器），請參閱 [設定 EFA 用戶端](configure-efa-clients.md)。

如果您的運算執行個體未執行安裝說明中指定的 Linux 核心，而且您無法變更核心，您可以建置自己的Lustre用戶端。如需詳細資訊，請參閱 Lustre Wiki [上的編譯Lustre](http://wiki.lustre.org/Compiling_Lustre)。

## Amazon Linux
<a name="lustre-client-amazon-linux"></a>

### 在 Amazon Linux 2023 上安裝Lustre用戶端
<a name="install-lustre-client-amazon-linux-2023"></a>

1. 在用戶端上開啟終端機。

1. 執行下列命令，判斷目前在運算執行個體上執行的核心。

   ```
   uname -r
   ```

1. 檢閱系統回應，並將其與下列在 Amazon Linux 2023 上安裝Lustre用戶端的最低核心需求進行比較：
   + 6.12 核心最低需求 - 6.12\$1
   + 6.1 核心最低需求 - 6.1.79-99.167.amzn2023

   如果您的 EC2 執行個體符合最低核心需求，請繼續步驟並安裝Lustre用戶端。

   如果命令傳回的結果低於核心最低需求，請執行下列命令來更新核心並重新啟動 Amazon EC2 執行個體。

   ```
   sudo dnf -y update kernel && sudo reboot
   ```

   確認已使用 **uname -r**命令更新核心。

1. 使用下列命令下載並安裝 Lustre用戶端。

   ```
   sudo dnf install -y lustre-client
   ```

### 在 Amazon Linux 2 上安裝Lustre用戶端
<a name="install-lustre-client-amazon-linux-2"></a>

1. 在用戶端上開啟終端機。

1. 執行下列命令，判斷目前在運算執行個體上執行的核心。

   ```
   uname -r
   ```

1. 檢閱系統回應，並將其與下列在 Amazon Linux 2 上安裝Lustre用戶端的最低核心需求進行比較：
   + 5.10 核心最低需求 - 5.10.144-127.601.amzn2
   + 5.4 核心最低需求 - 5.4.214-120.368.amzn2
   + 4.14 核心最低需求 - 4.14.294-220.533.amzn2

   如果您的 EC2 執行個體符合最低核心需求，請繼續步驟並安裝Lustre用戶端。

   如果命令傳回的結果低於核心最低需求，請執行下列命令來更新核心並重新啟動 Amazon EC2 執行個體。

   ```
   sudo yum -y update kernel && sudo reboot
   ```

   確認已使用 **uname -r**命令更新核心。

1. 使用下列命令下載並安裝 Lustre用戶端。

   ```
   sudo amazon-linux-extras install -y lustre
   ```

   如果您無法將核心升級至核心最低需求，您可以使用下列命令安裝舊版 2.10 用戶端。

   ```
   sudo amazon-linux-extras install -y lustre2.10
   ```

### 在 Amazon Linux 上安裝Lustre用戶端
<a name="install-lustre-client-amazon-linux"></a>

1. 在用戶端上開啟終端機。

1. 執行下列命令，判斷目前在運算執行個體上執行的核心。Lustre 用戶端需要 Amazon Linux 核心`4.14, version 104`或更高版本。

   ```
   uname -r
   ```

1. 執行以下任意一項：
   + 如果命令傳回 `4.14.104-78.84.amzn1.x86_64`4.14 或更新版本，請使用下列命令下載並安裝Lustre用戶端。

     ```
     sudo yum install -y lustre-client
     ```
   +  如果命令傳回的結果小於 `4.14.104-78.84.amzn1.x86_64`，請更新核心，並執行下列命令重新啟動 Amazon EC2 執行個體。

     ```
     sudo yum -y update kernel && sudo reboot
     ```

     確認已使用 **uname -r**命令更新核心。然後下載並安裝Lustre用戶端，如前所述。

## CentOS、Rocky Linux 和 Red Hat
<a name="lustre-client-rhel"></a>

### 在 Red Hat 和 Rocky Linux 9.0 或 9.3–9.7 上安裝Lustre用戶端
<a name="install-lustre-client-RH9"></a>

您可以從 Amazon FSx Lustre用戶端 yum 套件儲存庫安裝和更新與 Red Hat Enterprise Linux (RHEL) 和 Rocky Linux 相容的Lustre用戶端套件。這些套件經過簽署，有助於確保它們在下載之前或期間未遭到竄改。如果您未在系統上安裝對應的公有金鑰，儲存庫安裝會失敗。

**新增 Amazon FSx Lustre用戶端 yum 套件儲存庫**

1. 在用戶端上開啟終端機。

1. 使用以下命令安裝 Amazon FSx rpm 公有金鑰。

   ```
   curl https://fsx-lustre-client-repo-public-keys.s3.amazonaws.com/fsx-rpm-public-key.asc -o /tmp/fsx-rpm-public-key.asc
   ```

1. 使用下列命令匯入金鑰。

   ```
   sudo rpm --import /tmp/fsx-rpm-public-key.asc
   ```

1. 新增儲存庫，並使用下列命令更新套件管理員。

   ```
   sudo curl https://fsx-lustre-client-repo.s3.amazonaws.com/el/9/fsx-lustre-client.repo -o /etc/yum.repos.d/aws-fsx.repo
   ```

**設定 Amazon FSx Lustre用戶端 yum 儲存庫**

Amazon FSx Lustre用戶端 yum 套件儲存庫預設為安裝與最初隨最新支援的 Rocky Linux 和 RHEL 9 版本一起提供的核心版本相容的Lustre用戶端。若要安裝與您正在使用的核心版本相容的Lustre用戶端，您可以編輯儲存庫組態檔案。

本節說明如何判斷您正在執行的核心、是否需要編輯儲存庫組態，以及如何編輯組態檔案。

1. 使用以下命令，判斷您的運算執行個體目前正在執行的核心。

   ```
   uname -r
   ```

1. 執行以下任意一項：
   + 如果命令傳回 `5.14.0-611*`，您不需要修改儲存庫組態。繼續前往**安裝Lustre用戶端**程序。
   +  如果命令傳回 `5.14.0-570*`，您必須編輯儲存庫組態，使其指向 Rocky Linux 和 RHEL 9.6 版本的Lustre用戶端。
   +  如果命令傳回 `5.14.0-503*`，您必須編輯儲存庫組態，使其指向 Rocky Linux 和 RHEL 9.5 版本的Lustre用戶端。
   +  如果命令傳回 `5.14.0-427*`，您必須編輯儲存庫組態，使其指向 Rocky Linux 和 RHEL 9.4 版本的Lustre用戶端。
   +  如果命令傳回 `5.14.0-362.18.1`，您必須編輯儲存庫組態，使其指向 Rocky Linux 和 RHEL 9.3 版本的Lustre用戶端。
   +  如果命令傳回 `5.14.0-70*`，您必須編輯儲存庫組態，使其指向 Rocky Linux 和 RHEL 9.0 版本的Lustre用戶端。

1. 使用下列命令編輯儲存庫組態檔案，以指向特定版本的 RHEL。*`specific_RHEL_version`* 以您需要使用的 RHEL 版本取代 。

   ```
   sudo sed -i 's#9#specific_RHEL_version#' /etc/yum.repos.d/aws-fsx.repo
   ```

   例如，若要指向 9.6 版，請在 命令`9.6`中使用 `specific_RHEL_version`取代 ，如下列範例所示。

   ```
   sudo sed -i 's#9#9.6#' /etc/yum.repos.d/aws-fsx.repo
   ```

1. 使用下列命令來清除 yum 快取。

   ```
   sudo yum clean all
   ```

**安裝Lustre用戶端**
+ 使用下列命令從儲存庫安裝套件。

  ```
  sudo yum install -y kmod-lustre-client lustre-client
  ```

#### 其他資訊 (Rocky Linux 和 Red Hat 9.0 及更新版本）
<a name="lustre-client-RH9-additional-info"></a>

上述命令會安裝掛載和與 Amazon FSx 檔案系統互動所需的兩個套件。儲存庫包含其他Lustre套件，例如包含原始碼的套件和包含測試的套件，您可以選擇性地安裝這些套件。若要列出儲存庫中的所有可用套件，請使用下列命令。

```
yum --disablerepo="*" --enablerepo="aws-fsx" list available
```

若要下載來源 rpm，其中包含上游原始程式碼的 tarball 和我們套用的修補程式集，請使用下列命令。

```
 sudo yumdownloader --source kmod-lustre-client
```

當您執行 yum 更新時，如果可用，則會安裝更新版本的模組，並取代現有的版本。若要防止目前安裝的版本在更新時遭到移除，請將如下所示的行新增至您的 `/etc/yum.conf` 檔案。

```
installonlypkgs=kernel, kernel-PAE, installonlypkg(kernel), installonlypkg(kernel-module), 
              installonlypkg(vm), multiversion(kernel), kmod-lustre-client
```

 此清單包含預設僅安裝套件，在`yum.conf`手冊頁面和`kmod-lustre-client`套件中指定。

### 在 CentOS 和 Red Hat 8.2–8.10 或 Rocky Linux 8.4–8.10 上安裝Lustre用戶端
<a name="install-lustre-client-RH8.2"></a>

您可以從 Amazon FSx Lustre用戶端 yum 套件儲存庫安裝和更新與 Red Hat Enterprise Linux (RHEL)、Rocky Linux 和 CentOS 相容的Lustre用戶端套件。這些套件經過簽署，有助於確保它們在下載之前或期間未遭到竄改。如果您未在系統上安裝對應的公有金鑰，儲存庫安裝會失敗。

**新增 Amazon FSx Lustre用戶端 yum 套件儲存庫**

1. 在用戶端上開啟終端機。

1. 使用以下命令安裝 Amazon FSx rpm 公有金鑰。

   ```
   curl https://fsx-lustre-client-repo-public-keys.s3.amazonaws.com/fsx-rpm-public-key.asc -o /tmp/fsx-rpm-public-key.asc
   ```

1. 使用下列命令匯入金鑰。

   ```
   sudo rpm --import /tmp/fsx-rpm-public-key.asc
   ```

1. 新增儲存庫，並使用下列命令更新套件管理員。

   ```
   sudo curl https://fsx-lustre-client-repo.s3.amazonaws.com/el/8/fsx-lustre-client.repo -o /etc/yum.repos.d/aws-fsx.repo
   ```

**設定 Amazon FSx Lustre用戶端 yum 儲存庫**

Amazon FSx Lustre用戶端 yum 套件儲存庫預設為安裝與最初隨最新支援的 CentOS、Rocky Linux 和 RHEL 8 版本一起提供的核心版本相容的Lustre用戶端。若要安裝與您正在使用的核心版本相容的Lustre用戶端，您可以編輯儲存庫組態檔案。

本節說明如何判斷您正在執行的核心、是否需要編輯儲存庫組態，以及如何編輯組態檔案。

1. 使用以下命令，判斷您的運算執行個體目前正在執行的核心。

   ```
   uname -r
   ```

1. 執行以下任意一項：
   + 如果命令傳回 `4.18.0-553*`，您不需要修改儲存庫組態。繼續前往**安裝Lustre用戶端**程序。
   +  如果命令傳回 `4.18.0-513*`，您必須編輯儲存庫組態，使其指向 CentOS、Rocky Linux 和 RHEL 8.9 版本的Lustre用戶端。
   +  如果命令傳回 `4.18.0-477*`，您必須編輯儲存庫組態，使其指向 CentOS、Rocky Linux 和 RHEL 8.8 版本的Lustre用戶端。
   +  如果命令傳回 `4.18.0-425*`，您必須編輯儲存庫組態，使其指向 CentOS、Rocky Linux 和 RHEL 8.7 版本的Lustre用戶端。
   +  如果命令傳回 `4.18.0-372*`，您必須編輯儲存庫組態，使其指向 CentOS、Rocky Linux 和 RHEL 8.6 版本的Lustre用戶端。
   +  如果命令傳回 `4.18.0-348*`，您必須編輯儲存庫組態，使其指向 CentOS、Rocky Linux 和 RHEL 8.5 版本的Lustre用戶端。
   +  如果命令傳回 `4.18.0-305*`，您必須編輯儲存庫組態，使其指向 CentOS、Rocky Linux 和 RHEL 8.4 版本的Lustre用戶端。
   +  如果命令傳回 `4.18.0-240*`，您必須編輯儲存庫組態，使其指向 CentOS 和 RHEL 8.3 版本的Lustre用戶端。
   +  如果命令傳回 `4.18.0-193*`，您必須編輯儲存庫組態，使其指向 CentOS 和 RHEL 8.2 版本的Lustre用戶端。

1. 使用下列命令編輯儲存庫組態檔案，以指向特定版本的 RHEL。

   ```
   sudo sed -i 's#8#specific_RHEL_version#' /etc/yum.repos.d/aws-fsx.repo
   ```

   例如，若要指向 8.9 版，請在 命令`8.9`中使用 `specific_RHEL_version`取代 。

   ```
   sudo sed -i 's#8#8.9#' /etc/yum.repos.d/aws-fsx.repo
   ```

1. 使用下列命令來清除 yum 快取。

   ```
   sudo yum clean all
   ```

**安裝Lustre用戶端**
+ 使用下列命令從儲存庫安裝套件。

  ```
  sudo yum install -y kmod-lustre-client lustre-client
  ```

#### 其他資訊 (CentOS、Rocky Linux 和 Red Hat 8.2 及更新版本）
<a name="lustre-client-RH8.2-additional-info"></a>

上述命令會安裝掛載和與 Amazon FSx 檔案系統互動所需的兩個套件。儲存庫包含其他Lustre套件，例如包含原始碼的套件和包含測試的套件，您可以選擇性地安裝這些套件。若要列出儲存庫中的所有可用套件，請使用下列命令。

```
yum --disablerepo="*" --enablerepo="aws-fsx" list available
```

若要下載來源 rpm，其中包含上游原始程式碼的 tarball 和我們套用的修補程式集，請使用下列命令。

```
 sudo yumdownloader --source kmod-lustre-client
```

當您執行 yum 更新時，如果可用，則會安裝更新版本的模組，並取代現有的版本。若要防止目前安裝的版本在更新時遭到移除，請將如下所示的行新增至您的 `/etc/yum.conf` 檔案。

```
installonlypkgs=kernel, kernel-PAE, installonlypkg(kernel), installonlypkg(kernel-module), 
              installonlypkg(vm), multiversion(kernel), kmod-lustre-client
```

 此清單包含預設僅安裝套件，在`yum.conf`手冊頁面和`kmod-lustre-client`套件中指定。

### 在 CentOS 和 Red Hat 7.7、7.8 或 7.9 (x86\$164 執行個體） 上安裝Lustre用戶端
<a name="install-lustre-client-Centos-7"></a>

您可以從 Amazon FSx Lustre用戶端 yum 套件儲存庫安裝和更新與 Red Hat Enterprise Linux (RHEL) 和 CentOS 相容的Lustre用戶端套件。這些套件經過簽署，以協助確保在下載之前或期間未遭到竄改。如果您未在系統上安裝對應的公有金鑰，儲存庫安裝會失敗。

**新增 Amazon FSx Lustre用戶端 yum 套件儲存庫**

1. 在用戶端上開啟終端機。

1. 使用下列命令安裝 Amazon FSx rpm 公有金鑰。

   ```
   curl https://fsx-lustre-client-repo-public-keys.s3.amazonaws.com/fsx-rpm-public-key.asc -o /tmp/fsx-rpm-public-key.asc
   ```

1. 使用下列命令匯入金鑰。

   ```
   sudo rpm --import /tmp/fsx-rpm-public-key.asc
   ```

1. 新增儲存庫，並使用下列命令更新套件管理員。

   ```
   sudo curl https://fsx-lustre-client-repo.s3.amazonaws.com/el/7/fsx-lustre-client.repo -o /etc/yum.repos.d/aws-fsx.repo
   ```

**設定 Amazon FSx Lustre用戶端 yum 儲存庫**

Amazon FSx Lustre用戶端 yum 套件儲存庫預設為安裝與最初隨最新支援的 CentOS 和 RHEL 7 版本一起提供的核心版本相容的Lustre用戶端。若要安裝與您正在使用的核心版本相容的Lustre用戶端，您可以編輯儲存庫組態檔案。

本節說明如何判斷您正在執行的核心、是否需要編輯儲存庫組態，以及如何編輯組態檔案。

1. 使用以下命令，判斷您的運算執行個體目前正在執行的核心。

   ```
   uname -r
   ```

1. 執行以下任意一項：
   + 如果命令傳回 `3.10.0-1160*`，您不需要修改儲存庫組態。繼續前往**安裝Lustre用戶端**程序。
   +  如果命令傳回 `3.10.0-1127*`，您必須編輯儲存庫組態，使其指向 CentOS 和 RHEL 7.8 版本的Lustre用戶端。
   +  如果命令傳回 `3.10.0-1062*`，您必須編輯儲存庫組態，使其指向 CentOS 和 RHEL 7.7 版本的Lustre用戶端。

1. 使用下列命令編輯儲存庫組態檔案，以指向特定版本的 RHEL。

   ```
   sudo sed -i 's#7#specific_RHEL_version#' /etc/yum.repos.d/aws-fsx.repo
   ```

   若要指向 7.8 版，請在 命令`7.8`中使用 `specific_RHEL_version`取代 。

   ```
   sudo sed -i 's#7#7.8#' /etc/yum.repos.d/aws-fsx.repo
   ```

   若要指向 7.7 版，請在 命令`7.7`中使用 `specific_RHEL_version` 取代 。

   ```
   sudo sed -i 's#7#7.7#' /etc/yum.repos.d/aws-fsx.repo
   ```

1. 使用下列命令來清除 yum 快取。

   ```
   sudo yum clean all
   ```

**安裝Lustre用戶端**
+ 使用下列命令從儲存庫安裝Lustre用戶端套件。

  ```
  sudo yum install -y kmod-lustre-client lustre-client
  ```

#### 其他資訊 (CentOS 和 Red Hat 7.7 及更新版本）
<a name="lustre-client-Centos-7-additional-info"></a>

上述命令會安裝掛載和與 Amazon FSx 檔案系統互動所需的兩個套件。儲存庫包含其他Lustre套件，例如包含原始碼的套件和包含測試的套件，您可以選擇性地安裝這些套件。若要列出儲存庫中的所有可用套件，請使用下列命令。

```
yum --disablerepo="*" --enablerepo="aws-fsx" list available
```

若要下載包含上游原始程式碼 tarball 的原始 rpm 和已套用的修補程式集，請使用下列命令。

```
 sudo yumdownloader --source kmod-lustre-client
```

當您執行 yum 更新時，若有可用的模組會安裝較新的版本，並取代現有的版本。若要防止目前安裝的版本在更新時遭到移除，請將如下所示的行新增至您的 `/etc/yum.conf` 檔案。

```
installonlypkgs=kernel, kernel-big‐mem, kernel-enterprise, kernel-smp,
              kernel-debug, kernel-unsupported, kernel-source, kernel-devel, kernel-PAE,
              kernel-PAE-debug, kmod-lustre-client
```

 此清單包含預設僅安裝套件，在`yum.conf`手冊頁面和`kmod-lustre-client`套件中指定。

### 在 CentOS 7.8 或 7.9 (Arm 型 AWS Graviton 支援的執行個體） 上安裝Lustre用戶端
<a name="install-lustre-client-Centos-7-arm"></a>

您可以從與 CentOS 7 for Arm 型 AWS Graviton 支援的 EC2 執行個體相容的 Amazon FSx Lustre用戶端 yum 套件儲存庫安裝和更新Lustre用戶端套件。這些套件經過簽署，以協助確保在下載之前或期間未遭到竄改。如果您未在系統上安裝對應的公有金鑰，儲存庫安裝會失敗。

**新增 Amazon FSx Lustre用戶端 yum 套件儲存庫**

1. 在用戶端上開啟終端機。

1. 使用下列命令安裝 Amazon FSx rpm 公有金鑰。

   ```
   curl https://fsx-lustre-client-repo-public-keys.s3.amazonaws.com/fsx-rpm-public-key.asc -o /tmp/fsx-rpm-public-key.asc
   ```

   ```
   curl https://fsx-lustre-client-repo-public-keys.s3.amazonaws.cn/fsx-rpm-public-key.asc -o /tmp/fsx-rpm-public-key.asc
   ```

1. 使用下列命令匯入金鑰。

   ```
   sudo rpm --import /tmp/fsx-rpm-public-key.asc
   ```

1. 新增儲存庫，並使用下列命令更新套件管理員。

   ```
   sudo curl https://fsx-lustre-client-repo.s3.amazonaws.com/centos/7/fsx-lustre-client.repo -o /etc/yum.repos.d/aws-fsx.repo
   ```

**設定 Amazon FSx Lustre用戶端 yum 儲存庫**

Amazon FSx Lustre用戶端 yum 套件儲存庫預設為安裝與最初隨附於最新支援 CentOS 7 版本的核心版本相容的Lustre用戶端。若要安裝與您正在使用的核心版本相容的Lustre用戶端，您可以編輯儲存庫組態檔案。

本節說明如何判斷您正在執行的核心、是否需要編輯儲存庫組態，以及如何編輯組態檔案。

1. 使用以下命令，判斷您的運算執行個體目前正在執行的核心。

   ```
   uname -r
   ```

1. 執行以下任意一項：
   + 如果命令傳回 `4.18.0-193*`，您不需要修改儲存庫組態。繼續前往**安裝Lustre用戶端**程序。
   +  如果命令傳回 `4.18.0-147*`，您必須編輯儲存庫組態，使其指向 CentOS 7.8 版本的Lustre用戶端。

1. 使用下列命令編輯儲存庫組態檔案，以指向 CentOS 7.8 版本。

   ```
   sudo sed -i 's#7#7.8#' /etc/yum.repos.d/aws-fsx.repo
   ```

1. 使用下列命令來清除 yum 快取。

   ```
   sudo yum clean all
   ```

**安裝Lustre用戶端**
+ 使用下列命令從儲存庫安裝套件。

  ```
  sudo yum install -y kmod-lustre-client lustre-client
  ```

#### 其他資訊 (CentOS 7.8 或 7.9 適用於 Arm 型 AWS Graviton 支援的 EC2 執行個體）
<a name="lustre-client-Centos-7-arm-additional-info"></a>

上述命令會安裝掛載和與 Amazon FSx 檔案系統互動所需的兩個套件。儲存庫包含其他Lustre套件，例如包含原始碼的套件和包含測試的套件，您可以選擇性地安裝這些套件。若要列出儲存庫中的所有可用套件，請使用下列命令。

```
yum --disablerepo="*" --enablerepo="aws-fsx" list available
```

若要下載來源 rpm，其中包含上游原始程式碼的 tarball 和我們套用的修補程式集，請使用下列命令。

```
 sudo yumdownloader --source kmod-lustre-client
```

當您執行 yum 更新時，若有可用的模組會安裝較新的版本，並取代現有的版本。若要防止目前安裝的版本在更新時遭到移除，請將如下所示的行新增至您的 `/etc/yum.conf` 檔案。

```
installonlypkgs=kernel, kernel-big‐mem, kernel-enterprise, kernel-smp,
              kernel-debug, kernel-unsupported, kernel-source, kernel-devel, kernel-PAE,
              kernel-PAE-debug, kmod-lustre-client
```

 此清單包含預設僅安裝套件，在`yum.conf`手冊頁面和`kmod-lustre-client`套件中指定。

## Ubuntu 搭配預設頁面大小 (4KB)
<a name="lustre-client-ubuntu"></a>

### 在預設頁面大小 (4KB) 的 Ubuntu 18.04、20.04、22.04 或 24.04 上安裝Lustre用戶端
<a name="install-lustre-client-Ubuntu"></a>

您可以從 Amazon FSx Ubuntu 儲存庫取得Lustre套件。若要驗證儲存庫的內容未在下載之前或期間遭到竄改，GNU Privacy Guard (GPG) 簽章會套用至儲存庫的中繼資料。除非您在系統上安裝正確的公有 GPG 金鑰，否則安裝儲存庫會失敗。

1. 在用戶端上開啟終端機。

1. 請依照下列步驟新增 Amazon FSx Ubuntu 儲存庫：

   1. 如果您先前尚未在用戶端執行個體上註冊 Amazon FSx Ubuntu 儲存庫，請下載並安裝所需的公有金鑰。使用下列 命令。

      ```
      wget -O - https://fsx-lustre-client-repo-public-keys.s3.amazonaws.com/fsx-ubuntu-public-key.asc | gpg --dearmor | sudo tee /usr/share/keyrings/fsx-ubuntu-public-key.gpg >/dev/null
      ```

   1. 使用下列命令將 Amazon FSx 套件儲存庫新增至本機套件管理員。

      ```
      sudo bash -c 'echo "deb [signed-by=/usr/share/keyrings/fsx-ubuntu-public-key.gpg] https://fsx-lustre-client-repo.s3.amazonaws.com/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/fsxlustreclientrepo.list && apt-get update'
      ```

1. 判斷用戶端執行個體上目前執行的核心，並視需要更新。如需 Ubuntu 上Lustre用戶端所需的核心清單，適用於採用 AWS Graviton 處理器的 x86 型 EC2 執行個體和 Arm 型 EC2 執行個體，請參閱 [Ubuntu 用戶端](lustre-client-matrix.md#ubuntu-clients)。

   1. 執行下列命令來判斷正在執行的核心。

      ```
      uname -r
      ```

   1. 執行下列命令以更新至最新的 Ubuntu 核心和Lustre版本，然後重新啟動。

      ```
      sudo apt install -y linux-aws lustre-client-modules-aws && sudo reboot
      ```

       如果您的核心版本大於以 x86 為基礎的 EC2 執行個體和以 Graviton 為基礎的 EC2 執行個體的最低核心版本，而且您不想更新至最新的核心版本，您可以使用下列命令Lustre為目前的核心安裝 。

      ```
      sudo apt install -y lustre-client-modules-$(uname -r)
      ```

      安裝掛載和與您的 FSx for Lustre 檔案系統互動所需的兩個Lustre套件。您可以選擇性地安裝其他相關套件，例如包含原始碼的套件，以及包含包含在儲存庫中測試的套件。

   1. 使用下列命令列出儲存庫中的所有可用套件。

      ```
      sudo apt-cache search ^lustre
      ```

   1. （選用） 如果您希望系統升級也一律升級Lustre用戶端模組，請確定已使用下列命令安裝`lustre-client-modules-aws`套件。

      ```
      sudo apt install -y lustre-client-modules-aws
      ```

**注意**  
如果您收到`Module Not Found`錯誤，請參閱 [故障診斷遺漏的模組錯誤](#ubuntu-missing-module)。

### 故障診斷遺漏的模組錯誤
<a name="ubuntu-missing-module"></a>

如果您在任何 Ubuntu 版本上安裝 `Module Not Found`時發生錯誤，請執行下列動作：

將您的核心降級至最新的支援版本。列出 lustre-client-modules 套件的所有可用版本，並安裝對應的核心。若要執行此操作，請使用以下命令。

```
sudo apt-cache search lustre-client-modules
```

例如，如果 儲存庫中包含的最新版本是 `lustre-client-modules-5.4.0-1011-aws`，請執行下列動作：

1. 使用以下命令安裝建置此套件的核心。

   ```
   sudo apt-get install -y linux-image-5.4.0-1011-aws
   ```

   ```
   sudo sed -i 's/GRUB_DEFAULT=.\+/GRUB\_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.4.0-1011-aws"/' /etc/default/grub
   ```

   ```
   sudo update-grub
   ```

1. 使用以下命令重新啟動執行個體。

   ```
   sudo reboot
   ```

1. 使用下列命令安裝Lustre用戶端。

   ```
   sudo apt-get install -y lustre-client-modules-$(uname -r)
   ```

## Ubuntu，64KB 頁面大小
<a name="lustre-client-ubuntu-64k"></a>

### 在 64KB 頁面大小的 Ubuntu24.04 (ARM64) 上安裝Lustre用戶端
<a name="install-lustre-client-ubuntu-64k"></a>

您可以從 Amazon FSx Ubuntu 儲存庫取得Lustre套件。若要驗證儲存庫的內容未在下載之前或期間遭到竄改，GNU Privacy Guard (GPG) 簽章會套用至儲存庫的中繼資料。除非您在系統上安裝正確的公有 GPG 金鑰，否則安裝儲存庫會失敗。

1. 在用戶端上開啟終端機。

1. 確認您的執行個體使用 64KB 的頁面大小。輸出應為 `65536`。

   ```
   getconf PAGESIZE
   ```

   

1. 請依照下列步驟新增 Amazon FSx Ubuntu 儲存庫：

   1. 如果您先前尚未在用戶端執行個體上註冊 Amazon FSx Ubuntu 儲存庫，請下載並安裝所需的公有金鑰。使用下列 命令。

      ```
      wget -O - https://fsx-lustre-client-repo-public-keys.s3.amazonaws.com/fsx-ubuntu-public-key.asc | gpg --dearmor | sudo tee /usr/share/keyrings/fsx-ubuntu-public-key.gpg >/dev/null
      ```

   1. 使用下列命令將 Amazon FSx 套件儲存庫新增至本機套件管理員。

      ```
      sudo bash -c 'echo "deb [signed-by=/usr/share/keyrings/fsx-ubuntu-public-key.gpg] https://fsx-lustre-client-repo.s3.amazonaws.com/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/fsxlustreclientrepo.list && apt-get update'
      ```

1. 判斷用戶端執行個體上目前執行的核心，並視需要更新。您的 Ubuntu 24 核心版本必須是 `6.14.0-1018-aws-64k`或更新版本。

   1. 執行下列命令來判斷正在執行的核心。

      ```
      uname -r
      ```

   1. 執行下列命令以更新至最新的 Ubuntu 核心和 Lustre 版本，然後重新啟動。

      ```
      sudo apt install -y linux-aws-64k lustre-client-modules-aws-64k && sudo reboot
      ```

      如果您的核心版本大於`6.14.0-1018-aws-64k`以 Graviton 為基礎的 EC2 執行個體，而且您不想更新至最新的核心版本，您可以使用下列命令Lustre為目前的核心安裝 。

      ```
      sudo apt install -y lustre-client-modules-$(uname -r)
      ```

      安裝掛載和與您的 FSx for Lustre 檔案系統互動所需的兩個Lustre套件。您可以選擇性地安裝其他相關套件，例如包含原始碼的套件，以及包含包含在儲存庫中測試的套件。

   1. 使用下列命令列出儲存庫中的所有可用套件。

      ```
      sudo apt-cache search ^lustre
      ```

   1. （選用） 如果您希望系統升級也一律升級Lustre用戶端模組，請確定已使用下列命令安裝`lustre-client-modules-aws-64k`套件。

      ```
      sudo apt install -y lustre-client-modules-aws-64k
      ```

## SUSE Linux
<a name="lustre-client-suse"></a>

### 在 SUSE Linux 12 SP3, SP4 或 SP5 上安裝Lustre用戶端
<a name="install-lustre-client-SUSE-Linux"></a>

**在 SUSE Linux 12 SP3 上安裝Lustre用戶端**

1. 在用戶端上開啟終端機。

1. 使用以下命令安裝 Amazon FSx rpm 公有金鑰。

   ```
   sudo wget https://fsx-lustre-client-repo-public-keys.s3.amazonaws.com/fsx-sles-public-key.asc
   ```

1. 使用下列命令匯入金鑰。

   ```
   sudo rpm --import fsx-sles-public-key.asc
   ```

1. 使用下列命令為Lustre用戶端新增儲存庫。

   ```
   sudo wget https://fsx-lustre-client-repo.s3.amazonaws.com/suse/sles-12/SLES-12/fsx-lustre-client.repo
   ```

1. 使用下列命令下載並安裝 Lustre用戶端。

   ```
   sudo zypper ar --gpgcheck-strict fsx-lustre-client.repo
   sudo sed -i 's#SLES-12#SP3#' /etc/zypp/repos.d/aws-fsx.repo
   sudo zypper refresh
   sudo zypper in lustre-client
   ```

**在 SUSE Linux 12 SP4 上安裝Lustre用戶端**

1. 在用戶端上開啟終端機。

1. 使用以下命令安裝 Amazon FSx rpm 公有金鑰。

   ```
   sudo wget https://fsx-lustre-client-repo-public-keys.s3.amazonaws.com/fsx-sles-public-key.asc
   ```

1. 使用下列命令匯入金鑰。

   ```
   sudo rpm --import fsx-sles-public-key.asc
   ```

1. 使用下列命令為Lustre用戶端新增儲存庫。

   ```
   sudo wget https://fsx-lustre-client-repo.s3.amazonaws.com/suse/sles-12/SLES-12/fsx-lustre-client.repo
   ```

1. 執行以下任意一項：
   + 如果您直接安裝 SP4，請使用下列命令下載並安裝Lustre用戶端。

     ```
     sudo zypper ar --gpgcheck-strict fsx-lustre-client.repo
     sudo sed -i 's#SLES-12#SP4#' /etc/zypp/repos.d/aws-fsx.repo
     sudo zypper refresh
     sudo zypper in lustre-client
     ```
   + 如果您從 SP3 遷移至 SP4，且先前已新增 SP3 的 Amazon FSx 儲存庫，請使用下列命令下載並安裝Lustre用戶端。

     ```
     sudo zypper ar --gpgcheck-strict fsx-lustre-client.repo
     sudo sed -i 's#SP3#SP4#' /etc/zypp/repos.d/aws-fsx.repo
     sudo zypper ref
     sudo zypper up --force-resolution lustre-client-kmp-default
     ```

**在 SUSE Linux 12 SP5 上安裝Lustre用戶端**

1. 在用戶端上開啟終端機。

1. 使用以下命令安裝 Amazon FSx rpm 公有金鑰。

   ```
   sudo wget https://fsx-lustre-client-repo-public-keys.s3.amazonaws.com/fsx-sles-public-key.asc
   ```

1. 使用下列命令匯入金鑰。

   ```
   sudo rpm --import fsx-sles-public-key.asc
   ```

1. 使用下列命令為Lustre用戶端新增儲存庫。

   ```
   sudo wget https://fsx-lustre-client-repo.s3.amazonaws.com/suse/sles-12/SLES-12/fsx-lustre-client.repo
   ```

1. 執行以下任意一項：
   + 如果您直接安裝 SP5，請使用下列命令下載並安裝Lustre用戶端。

     ```
     sudo zypper ar --gpgcheck-strict fsx-lustre-client.repo
     sudo zypper refresh
     sudo zypper in lustre-client
     ```
   + 如果您從 SP4 遷移至 SP5，且先前已新增 SP4 的 Amazon FSx 儲存庫，請使用下列命令下載並安裝Lustre用戶端。

     ```
     sudo sed -i 's#SP4#SLES-12' /etc/zypp/repos.d/aws-fsx.repo
     sudo zypper ref
     sudo zypper up --force-resolution lustre-client-kmp-default
     ```

**注意**  
您可能需要重新啟動運算執行個體，用戶端才能完成安裝。

# 從 Amazon Elastic Compute Cloud 執行個體掛載
<a name="mounting-ec2-instance"></a>

您可以從 Amazon EC2 執行個體掛載檔案系統。

**從 Amazon EC2 掛載檔案系統**

1. 連線到您的 Amazon EC2 執行個體。

1. 使用下列命令，在 FSx for Lustre 檔案系統上建立掛載點的目錄。

   ```
   $ sudo mkdir -p /fsx
   ```

1. 將 Amazon FSx for Lustre 檔案系統掛載到您建立的目錄。使用下列命令並取代下列項目：
   + `file_system_dns_name` 將 取代為實際檔案系統的 DNS 名稱。
   + `mountname` 將 取代為檔案系統的掛載名稱。此掛載名稱會在 `CreateFileSystem` API 操作回應中傳回。它也會在 **describe-file-systems** AWS CLI 命令的回應和 [DescribeFileSystems](https://docs.aws.amazon.com/fsx/latest/APIReference/API_DescribeFileSystems.html) API 操作中傳回。

   ```
   sudo mount -t lustre -o relatime,flock file_system_dns_name@tcp:/mountname /fsx
   ```

    此命令使用兩個選項 `-o relatime`和 掛載您的檔案系統`flock`：
   +  `relatime` – 雖然 `atime`選項會在每次存取檔案時維護 `atime`（節點存取時間） 資料，但 `relatime`選項也會維護`atime`資料，但不會在每次存取檔案時維護資料。啟用 `relatime`選項後，只有當檔案自上次更新後已經過修改 (`mtime`)，或檔案上次存取的時間超過特定時間 （預設為 6 小時） 時，才會將`atime`資料`atime`寫入磁碟。使用 `relatime`或 `atime`選項將[檔案發行](file-release.md)程序最佳化。
**注意**  
如果您的工作負載需要精確的存取時間準確性，您可以使用 掛載選項進行`atime`掛載。不過，這樣做可能會增加維持精確存取時間值所需的網路流量，進而影響工作負載效能。  
如果您的工作負載不需要中繼資料存取時間，使用`noatime`掛載選項停用存取時間的更新可提供效能提升。請注意，檔案發行或釋出資料有效性等`atime`重點程序在其發行版本中將不準確。
   +  `flock` – 啟用檔案系統的檔案鎖定。如果您不想要啟用檔案鎖定，請在沒有 的情況下使用 `mount`命令`flock`。

1. 使用下列命令，列出您掛載檔案系統 /mnt/fsx 的目錄內容，以確認掛載命令成功。

   ```
   $ ls /fsx
   import-path  lustre
   $
   ```

   您也可以使用 `df`命令，如下所示。

   ```
   $ df
   Filesystem                    1K-blocks    Used  Available Use% Mounted on
   devtmpfs                        1001808       0    1001808   0% /dev
   tmpfs                           1019760       0    1019760   0% /dev/shm
   tmpfs                           1019760     392    1019368   1% /run
   tmpfs                           1019760       0    1019760   0% /sys/fs/cgroup
   /dev/xvda1                      8376300 1263180    7113120  16% /
   123.456.789.0@tcp:/mountname 3547698816   13824 3547678848   1% /fsx
   tmpfs                            203956       0     203956   0% /run/user/1000
   ```

   結果顯示掛載在 /fsx 上的 Amazon FSx 檔案系統。

# 設定 EFA 用戶端
<a name="configure-efa-clients"></a>

使用下列程序來設定 Lustre 用戶端，以透過 Elastic Fabric Adapter (EFA) 存取 FSx for Lustre 檔案系統。

執行下列作業系統的 Lustre 用戶端支援 EFA：
+ Amazon Linux 2023 (AL2023)
+ Red Hat Enterprise Linux (RHEL) 9.5 或更新版本
+ 核心版本 6.8\$1 的 Ubuntu 22.04 或更新版本

下列 Lustre 用戶端支援 EFA。如需詳細資訊，請參閱[安裝Lustre用戶端](install-lustre-client.md)。

支援 EFA 的 Nitro v4 （或更新版本） EC2 執行個體支援 EFA，但 trn2 執行個體系列除外。請參閱《*Amazon EC2 使用者指南*》中的[支援的執行個體類型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html#efa-instance-types)。

**Topics**
+ [步驟 1：安裝必要的驅動程式](#install-required-drivers)
+ [步驟 2：設定 Lustre 用戶端的 EFA](#install-efa-on-client)
+ [步驟 3：EFA 介面](#add-efa-interfaces)

## 步驟 1：安裝必要的驅動程式
<a name="install-required-drivers"></a>

**注意**  
如果您使用的是[深度學習 AMI](https://docs.aws.amazon.com/dlami/latest/devguide/what-is-dlami.html)，則可以在預先安裝 Lustre 用戶端、EFA 驅動程式和 NVIDIA GPUDirect Storage (GDS) 驅動程式時略過此步驟。

### 安裝 Lustre 用戶端和 EFA 驅動程式
<a name="install-lustre-client-efa-driver"></a>

**快速安裝 Lustre 用戶端和 EFA 驅動程式**

1. 下載並解壓縮包含安裝指令碼的檔案：

   ```
   curl -O https://docs.aws.amazon.com/fsx/latest/LustreGuide/samples/install-fsx-lustre-client.zip
   unzip install-fsx-lustre-client.zip
   ```

1. 變更為 `install-fsx-lustre-client` 資料夾並執行安裝指令碼：

   ```
   cd install-fsx-lustre-client
   sudo ./bin/install-fsx-lustre-client.sh --install-lustre --install-efa
   ```

   指令碼會自動執行下列動作：
   + 安裝 Lustre 用戶端
   + 安裝 EFA 驅動程式
   + 驗證 Lustre 用戶端和 EFA 驅動程式安裝

   如需可與`install-fsx-lustre-client.sh`指令碼搭配使用的選項和使用範例清單，請參閱 zip `README.md` 檔案中的 檔案。

### 安裝 GMS 驅動程式 （選用）
<a name="install-gds-driver"></a>

只有在您計劃將 NVIDIA GPUDirect Storage (GDS) 與 FSx for Lustre 搭配使用時，才需要此步驟。

使用要求：
+ Amazon EC2 P5, P5e, P5en 或 P6-B200 執行個體
+ NVIDIA GMS 驅動程式 2.24.2 版或更新版本

**在用戶端執行個體上安裝 NVIDIA GPUDirect Storage 驅動程式**

1. 複製 NVIDIA GMS 儲存庫：

   ```
   git clone https://github.com/NVIDIA/gds-nvidia-fs.git
   ```

1. 建置並安裝驅動程式：

   ```
   cd gds-nvidia-fs/src/
   export NVFS_MAX_PEER_DEVS=128
   export NVFS_MAX_PCI_DEPTH=16
   sudo -E make
   sudo insmod nvidia-fs.ko
   ```

## 步驟 2：設定 Lustre 用戶端的 EFA
<a name="install-efa-on-client"></a>

若要使用 EFA 介面存取 FSx for Lustre 檔案系統，您必須安裝 Lustre EFA 模組並設定 EFA 介面。

### 快速設定
<a name="quick-setup"></a>

**快速設定 Lustre 用戶端**

1. 連線到您的 Amazon EC2 執行個體。

1. 下載並解壓縮包含組態指令碼的檔案：

   ```
   curl -O https://docs.aws.amazon.com/fsx/latest/LustreGuide/samples/configure-efa-fsx-lustre-client.zip
   unzip configure-efa-fsx-lustre-client.zip
   ```

1. 變更為 `configure-efa-fsx-lustre-client` 資料夾並執行安裝指令碼：

   ```
   cd configure-efa-fsx-lustre-client
   # for regular IO
   sudo ./setup.sh
   
   # for NVIDIA GPUDirect Storage (GDS) IO
   sudo ./setup.sh --optimized-for-gds
   ```

   指令碼會自動執行下列動作：
   + 匯入 Lustre 模組
   + 設定 TCP 和 EFA 介面
   + 建立系統化服務，以在重新啟動時自動設定

   如需可與`setup.sh`指令碼搭配使用的選項和使用範例清單，請參閱 zip `README.md` 檔案中的 檔案。

### 手動管理系統化服務
<a name="manage-systemd-service"></a>

系統化服務檔案建立於 /etc/systemd/system/configure-efa-fsx-lustre-client.service。以下是一些實用的 systemd 相關命令：

```
# Check status
sudo systemctl status configure-efa-fsx-lustre-client.service

# View logs
sudo journalctl -u configure-efa-fsx-lustre-client.service
# View warnings/errors from dmesg
sudo dmesg
```

如需詳細資訊，請參閱 zip `README.md` 檔案中的 檔案。

### 自動掛載組態 （選用）
<a name="auto-mount-configuration"></a>

如需在開機時自動掛載 Amazon FSx for Lustre 檔案系統的資訊，請參閱 [自動掛載 Amazon FSx 檔案系統](mount-fs-auto-mount-onreboot.md)。

## 步驟 3：EFA 介面
<a name="add-efa-interfaces"></a>

每個 FSx for Lustre 檔案系統在所有用戶端執行個體中都有 1024 個 EFA 連線的上限。

`configure-efa-fsx-lustre-client.sh` 指令碼會根據執行個體類型自動設定 EFA 介面。


| 執行個體類型 | 預設 EFA 介面數量 | 
| --- | --- | 
| p6e-gb200.36xlarge | 8 | 
| p6-b200.48xlarge | 8 | 
| p5en.48xlarge | 8 | 
| p5e.48xlarge | 8 | 
| p5.48xlarge | 8 | 
| 具有多個網路卡的其他執行個體 | 2 | 
| 具有單一網路卡的其他執行個體 | 1 | 

連線至 FSx for Lustre 檔案系統時，用戶端執行個體上每個設定的 EFA 介面都會計入 1024 EFA 連線限制的一個連線。

### 手動管理 EFA 介面
<a name="manage-interfaces-manually"></a>

具有更多 EFA 介面的執行個體通常支援更高的輸送量。只要保持在 EFA 連線總限制內，您就可以自訂介面數量，以最佳化特定工作負載的效能。

您可以使用下列命令手動管理 EFA 介面：

1. 檢視可用的 EFA 介面：

   ```
   for interface in /sys/class/infiniband/*; do
       if [ ! -e "$interface/device/driver" ]; then continue; fi
       driver=$(basename "$(realpath "$interface/device/driver")")
       if [ "$driver" != "efa" ]; then continue; fi
       echo $(basename $interface)
   done
   ```

1. 檢視目前設定的界面：

   ```
   sudo lnetctl net show
   ```

1. 新增 EFA 介面：

   ```
   sudo lnetctl net add --net efa --if device_name --peer-credits 32
   ```

   將 *device\$1name* 取代為步驟 1 中清單中的實際裝置名稱。

1. 移除 EFA 介面：

   ```
   sudo lnetctl net del --net efa --if device_name
   ```

   將 *device\$1name* 取代為步驟 2 中清單中的實際裝置名稱。

# 從 Amazon Elastic Container Service 掛載
<a name="mounting-ecs"></a>

您可以從 Amazon EC2 執行個體上的 Amazon Elastic Container Service (Amazon ECS) Docker 容器存取 FSx for Lustre 檔案系統。您可以使用下列其中一個選項來執行此操作：

1. 透過從託管 Amazon ECS 任務的 Amazon EC2 執行個體掛載 FSx for Lustre 檔案系統，並將此掛載點匯出到您的容器。

1. 直接在任務容器內掛載檔案系統。

如需 Amazon ECS 的詳細資訊，請參閱《[Amazon Elastic Container Service 開發人員指南》中的什麼是 Amazon Elastic Container Service？](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html)。 **

我們建議您使用選項 1 ([從託管 Amazon ECS 任務的 Amazon EC2 執行個體掛載](#mounting-from-ecs-ec2))，因為它提供更好的資源使用，特別是如果您在同一個 EC2 執行個體上啟動多個容器 （超過五個），或如果您的任務短暫 （少於 5 分鐘）。

如果您無法設定 EC2 執行個體，或您的應用程式需要容器的彈性，請使用選項 2 ([從 Docker 容器掛載](#mounting-from-docker))。

**注意**  
不支援在 AWS Fargate 啟動類型上掛載 FSx for Lustre。

下列各節說明從 Amazon ECS 容器掛載 FSx for Lustre 檔案系統的每個選項的程序。

**Topics**
+ [從託管 Amazon ECS 任務的 Amazon EC2 執行個體掛載](#mounting-from-ecs-ec2)
+ [從 Docker 容器掛載](#mounting-from-docker)

## 從託管 Amazon ECS 任務的 Amazon EC2 執行個體掛載
<a name="mounting-from-ecs-ec2"></a>

此程序說明如何在 EC2 執行個體上設定 Amazon ECS，以在本機掛載 FSx for Lustre 檔案系統。此程序使用 `volumes`和 `mountPoints` 容器屬性來共用資源，並讓本機執行的任務可存取此檔案系統。如需詳細資訊，請參閱[《Amazon Elastic Container Service 開發人員指南》中的啟動 Amazon ECS 容器執行個體](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_container_instance.html)。 **

此程序適用於 Amazon ECS 最佳化的 Amazon Linux 2 AMI。如果您使用的是另一個 Linux 發行版本，請參閱 [安裝Lustre用戶端](install-lustre-client.md)。

**在 EC2 執行個體上從 Amazon ECS 掛載檔案系統**

1. 手動或使用 Auto Scaling 群組啟動 Amazon ECS 執行個體時，請在**使用者資料**欄位結尾新增下列程式碼範例中的行。取代範例中的下列項目：
   + `file_system_dns_name` 將 取代為實際檔案系統的 DNS 名稱。
   + `mountname` 將 取代為檔案系統的掛載名稱。
   + `mountpoint` 將 取代為您需要建立的檔案系統的掛載點。

   ```
   #!/bin/bash
   
   ...<existing user data>...
   
   fsx_dnsname=file_system_dns_name
   fsx_mountname=mountname
   fsx_mountpoint=mountpoint
   amazon-linux-extras install -y lustre
   mkdir -p "$fsx_mountpoint"
   mount -t lustre ${fsx_dnsname}@tcp:/${fsx_mountname} ${fsx_mountpoint} -o relatime,flock
   ```

1. 建立 Amazon ECS 任務時，請在 JSON 定義中新增下列 `volumes`和 `mountPoints`容器屬性。`mountpoint` 將 取代為檔案系統的掛載點 （例如 `/mnt/fsx`)。

   ```
   {
       "volumes": [
              {
                    "host": {
                         "sourcePath": "mountpoint"
                    },
                    "name": "Lustre"
              }
       ],
       "mountPoints": [
              {
                    "containerPath": "mountpoint",
                    "sourceVolume": "Lustre"
              }
       ],
   }
   ```

## 從 Docker 容器掛載
<a name="mounting-from-docker"></a>

下列程序說明如何設定 Amazon ECS 任務容器來安裝`lustre-client`套件，並在其中掛載 FSx for Lustre 檔案系統。此程序使用 Amazon Linux (`amazonlinux`) Docker 映像，但類似方法可用於其他 發行版本。

**從 Docker 容器掛載檔案系統**

1. 在 Docker 容器上安裝 `lustre-client`套件，並使用 `command` 屬性掛載 FSx for Lustre 檔案系統。取代範例中的下列項目：
   + `file_system_dns_name` 將 取代為實際檔案系統的 DNS 名稱。
   + `mountname` 將 取代為檔案系統的掛載名稱。
   + 用檔案系統的掛載點取代 `mountpoint`。

   ```
   "command": [
     "/bin/sh -c \"amazon-linux-extras install -y lustre; mount -t lustre file_system_dns_name@tcp:/mountname mountpoint -o relatime,flock;\""
   ],
   ```

1. 將 `SYS_ADMIN`功能新增至您的容器，以授權它使用 `linuxParameters` 屬性掛載 FSx for Lustre 檔案系統。

   ```
   "linuxParameters": {
     "capabilities": {
         "add": [
           "SYS_ADMIN"
         ]
      }
   }
   ```

# 從內部部署或對等 Amazon VPC 掛載 Amazon FSx 檔案系統
<a name="mounting-on-premises"></a>

您可以透過兩種方式存取 Amazon FSx 檔案系統。一個是來自 Amazon VPC 中與檔案系統 VPC 對等的 Amazon EC2 執行個體。另一個來自使用 Direct Connect 或 VPN 連接到檔案系統 VPC 的內部部署用戶端。

您可以使用 VPC 互連連線或 VPC 傳輸閘道來連接用戶端的 VPC 和 Amazon FSx 檔案系統的 VPC。當您使用 VPC 對等互連或傳輸閘道來連接 VPCs 時，一個 VPC 中的 Amazon EC2 執行個體可以存取另一個 VPC 中的 Amazon FSx 檔案系統，即使 VPCs屬於不同的帳戶。

使用下列程序之前，您需要設定 VPC 互連連線或 VPC 傳輸閘道。

*傳輸閘道*是網路傳輸中樞，您可以用於互相連接 VPC 和現場部署網路。如需使用 VPC 傳輸閘道的詳細資訊，請參閱《*Amazon VPC* [傳輸閘道指南》中的傳輸閘道入門](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-getting-started.html)。

*VPC 對等連接*是在兩個 VPC 之間的網路連線。這種連線類型可讓您使用私有網際網路通訊協定第 4 版 (IPv4) 或網際網路通訊協定第 6 版 (IPv6) 地址，在兩者間路由流量。您可以使用 VPC 對等互連來連接相同 AWS 區域內或 AWS 區域之間的 VPCs。如需 VPC 互連的詳細資訊，請參閱《Amazon VPC 互連指南》**中的[什麼是 VPC 互連？](https://docs.aws.amazon.com/vpc/latest/peering/Welcome.html)。

您可以使用其主要網路界面的 IP 地址，從 VPC 外部掛載檔案系統。主要網路界面是執行 `aws fsx describe-file-systems` AWS CLI 命令時傳回的第一個網路界面。您也可以從 Amazon Web Services 管理主控台取得此 IP 地址。

下表說明使用檔案系統 VPC 外部的用戶端存取 Amazon FSx 檔案系統的 IP 地址需求。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/fsx/latest/LustreGuide/mounting-on-premises.html)

如果您需要使用非私有 IP 地址範圍存取 2020 年 12 月 17 日之前建立的 Amazon FSx 檔案系統，您可以透過還原檔案系統的備份來建立新的檔案系統。如需詳細資訊，請參閱[使用備份保護您的資料](using-backups-fsx.md)。

**擷取檔案系統主要網路界面的 IP 地址**

1. 在 [https://console.aws.amazon.com/fsx/](https://console.aws.amazon.com/fsx/)：// 開啟 Amazon FSx 主控台。

1. 在導覽窗格中，選擇**檔案系統**。

1. 從儀表板中選擇您的檔案系統。

1. 在檔案系統詳細資訊頁面中，選擇**網路與安全**。

1. 針對**網路界面**，選擇主要彈性網路界面的 ID。這樣做會帶您前往 Amazon EC2 主控台。

1. 在**詳細資訊**索引標籤上，尋找**主要私有 IPv4 IP**。這是主要網路界面的 IP 地址。

**注意**  
從與其相關聯的 VPC 外部掛載 Amazon FSx 檔案系統時，無法使用網域名稱系統 (DNS) 名稱解析。

# 自動掛載 Amazon FSx 檔案系統
<a name="mount-fs-auto-mount-onreboot"></a>

 您可以在第一次連線到執行個體之後，更新 Amazon EC2 執行個體中的`/etc/fstab`檔案，以便在每次重新啟動時掛載 Amazon FSx 檔案系統。

## 使用 /etc/fstab 自動掛載 FSx for Lustre
<a name="lustre-mount-fs-auto-mount-update-fstab"></a>

若要在 Amazon EC2 執行個體重新啟動時自動掛載 Amazon FSx 檔案系統目錄，您可以使用 `fstab` 檔案。`fstab` 檔案包含檔案系統的資訊，在執行個體啟動期間執行`mount -a`的命令 會掛載 `fstab` 檔案中列出的檔案系統。

**注意**  
在您可以更新 EC2 執行個體`/etc/fstab`的檔案之前，請確定您已建立 Amazon FSx 檔案系統。如需詳細資訊，請參閱 入門練習[步驟 1：建立 FSx for Lustre 檔案系統](getting-started.md#getting-started-step1)中的 。
對於啟用 EFA 的檔案系統，設定 systemd 是先決條件。如需詳細資訊，請參閱[快速設定](configure-efa-clients.md#quick-setup)。

**更新 EC2 執行個體中的 /etc/fstab 檔案**

1. 連接至 EC2 執行個體，在編輯器中開啟 `/etc/fstab` 檔案。

1. 為 `/etc/fstab` 檔案新增下行。

   將 Amazon FSx for Lustre 檔案系統掛載到您建立的目錄。使用下列命令並取代下列命令：
   + *`/fsx`* 將 取代為您要掛載 Amazon FSx 檔案系統的目錄。
   + `file_system_dns_name` 將 取代為實際檔案系統的 DNS 名稱。
   + `mountname` 將 取代為檔案系統的掛載名稱。此掛載名稱會在 `CreateFileSystem` API 操作回應中傳回。它也會在 **describe-file-systems** AWS CLI 命令的回應和 `[DescribeFileSystems](https://docs.aws.amazon.com/fsx/latest/APIReference/API_DescribeFileSystems.html)` API 操作中傳回。

   **對於非 EFA 檔案系統：**

   ```
   file_system_dns_name@tcp:/mountname /fsx lustre defaults,relatime,flock,_netdev,x-systemd.automount,x-systemd.requires=network.service 0 0
   ```

   **對於啟用 EFA 的檔案系統：**

   ```
   file_system_dns_name@tcp:/mountname /fsx lustre defaults,relatime,flock,_netdev,x-systemd.automount,x-systemd.requires=configure-efa-fsx-lustre-client.service,x-systemd.after=configure-efa-fsx-lustre-client.service 0 0
   ```
**警告**  
使用 `_netdev` 選項，此選項用於在自動掛載檔案系統時識別網路檔案系統。若 `_netdev` 已遺失，EC2 執行個體可能會停止回應。此結果是因為網路檔案系統在運算執行個體開始聯網後需要初始化。如需詳細資訊，請參閱[自動掛載失敗且執行個體沒有回應](mount-troubleshooting.md#lustre-automount-fails)。

1. 儲存對檔案所做的變更。

您的 EC2 執行個體現在已設定為在重新啟動時掛載 Amazon FSx 檔案系統。

**注意**  
在某些情況下，無論掛載的 Amazon FSx 檔案系統的狀態為何，您的 Amazon EC2 執行個體都可能需要啟動。 FSx 在這些情況下，請將 `nofail`選項新增至您檔案中的檔案系統項目`/etc/fstab`。

您新增至 `/etc/fstab` 檔案的程式碼行中的欄位會執行下列動作。


| 欄位 | Description | 
| --- | --- | 
|  `file_system_dns_name@tcp:/`  |  Amazon FSx 檔案系統的 DNS 名稱，可識別檔案系統。您可以從 主控台取得此名稱，或以程式設計方式從 AWS CLI 或 AWS 開發套件取得此名稱。  | 
|  `mountname`  | 檔案系統的掛載名稱。您可以使用 **describe-file-systems**命令，或是 AWS CLI 使用 `[DescribeFileSystems](https://docs.aws.amazon.com/fsx/latest/APIReference/API_DescribeFileSystems.html)`操作的 AWS API 或 SDK，從主控台或以程式設計方式從 取得此名稱。 | 
|  `/fsx`  |  EC2 執行個體上 Amazon FSx 檔案系統的掛載點。  | 
|  `lustre`  |  檔案系統的類型，Amazon FSx。  | 
|  `mount options`  |  檔案系統的掛載選項，以逗號分隔的下列選項清單呈現： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/fsx/latest/LustreGuide/mount-fs-auto-mount-onreboot.html)  | 
|  `x-systemd.automount,x-systemd.requires=network.service`  |  非 EFA 檔案系統的這些選項可確保在網路連線上線之前，自動掛載器不會執行。 對於 Amazon Linux 2023 和 Ubuntu 22.04 及更高版本，請使用 `x-systemd.requires=systemd-networkd-wait-online.service`選項，而非 `x-systemd.requires=network.service`選項。  | 
|  `x-systemd.automount,x-systemd.requires=configure-efa-fsx-lustre-client.service,x-systemd.after=configure-efa-fsx-lustre-client.service`  |  啟用 EFA 的檔案系統的這些選項可確保自動掛載器在 EFA 用戶端組態完成之前不會執行。  | 
|  `0`  |  指出檔案系統是否應該由 備份的值`dump`。對於 Amazon FSx，此值應為 `0`。  | 
|  `0`  |  指出開機時`fsck`檢查檔案系統的順序的值。對於 Amazon FSx 檔案系統，此值應`0`指出 `fsck`不應在啟動時執行。  | 

# 掛載特定檔案集
<a name="mounting-from-fileset"></a>

透過使用Lustre檔案集功能，您只能掛載檔案系統命名空間的子集，稱為*檔案集*。若要掛載檔案系統的檔集，請在用戶端上指定檔案系統名稱後面的子目錄路徑。檔案集掛載 （也稱為子目錄掛載） 會限制特定用戶端上的檔案系統命名空間可見性。

**範例 – 掛載Lustre檔案集**

1. 假設您有具有下列目錄的 FSx for Lustre 檔案系統：

   ```
   team1/dataset1/
   team2/dataset2/
   ```

1. 您只掛載`team1/dataset1`檔案集，只讓檔案系統的此部分在用戶端本機可見。使用下列命令並取代下列項目：
   + `file_system_dns_name` 將 取代為實際檔案系統的 DNS 名稱。
   + `mountname` 將 取代為檔案系統的掛載名稱。此掛載名稱會在 `CreateFileSystem` API 操作回應中傳回。它也會在 **describe-file-systems** AWS CLI 命令的回應和 [DescribeFileSystems](https://docs.aws.amazon.com/fsx/latest/APIReference/API_DescribeFileSystems.html) API 操作中傳回。

   ```
   mount -t lustre file_system_dns_name@tcp:/mountname/team1/dataset1 /fsx
   ```

使用Lustre檔案集功能時，請記住下列事項：
+ 沒有限制條件阻止用戶端使用不同的檔案集重新掛載檔案系統，或完全沒有檔案集。
+ 使用檔案集時，某些需要存取`.lustre/`目錄的Lustre管理命令可能無法運作，例如 `lfs fid2path`命令。
+ 如果您計劃從相同主機上的相同檔案系統掛載多個子目錄，請注意，這比單一掛載點耗用更多資源，而僅掛載一次檔案系統根目錄可能更有效率。

如需Lustre檔案集功能的詳細資訊，請參閱 [Lustre 文件網站上的](https://doc.lustre.org/lustre_manual.xhtml#SystemConfigurationUtilities.fileset) *Lustre 操作手冊*。

# 卸載檔案系統
<a name="unmounting-fs"></a>

在刪除 FSx for Lustre 檔案系統之前，請確保從已掛載該系統的所有 Amazon EC2 執行個體卸載該檔案系統，並在關閉或終止任何 Amazon EC2 執行個體之前，確保從該執行個體卸載任何掛載的 FSx for Lustre 檔案系統。

在 I/O 操作期間，FSx for Lustre 伺服器會將暫存檔案和目錄鎖定授予用戶端，而當伺服器要求用戶端釋放其鎖定以從其他用戶端解除封鎖 I/O 操作時，用戶端必須及時回應。如果用戶端變得沒有回應，可能會在幾分鐘後強制移出，以允許其他用戶端繼續其請求的 I/O 操作。為了避免這些等待期間，在關閉或終止檔案系統之前，以及刪除 FSx for Lustre 檔案系統之前，您應該一律從用戶端執行個體卸載檔案系統。

您可以在 Amazon EC2 執行個體上執行 `umount` 命令來卸載執行個體上的檔案系統。您無法透過 AWS CLI、 AWS 管理主控台或任何 AWS SDKs 卸載 Amazon FSx 檔案系統。若要卸載連接至執行 Linux 之 Amazon EC2 執行個體的 Amazon FSx 檔案系統，請使用 `umount`命令，如下所示：

```
umount /mnt/fsx 
```

我們建議您不要指定任何其他 `umount` 選項。請避免設定任何其他與預設值不同的 `umount` 選項。

您可以執行 `df`命令，確認您的 Amazon FSx 檔案系統已卸載。此命令會顯示目前掛載於 Linux 型 Amazon EC2 執行個體上的檔案系統磁碟用量統計資料。如果您想要卸載的 Amazon FSx 檔案系統未列在`df`命令輸出中，這表示檔案系統已卸載。

**Example – 識別 Amazon FSx 檔案系統的掛載狀態並卸載**  

```
$ df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on 
file-system-id.fsx.aws-region.amazonaws.com@tcp:/mountname /fsx 3547708416 61440 3547622400 1% /fsx
      /dev/sda1 ext4 8123812 1138920 6884644 15% /
```

```
$ umount /fsx
```

```
$ df -T 
```

```
Filesystem Type 1K-blocks Used Available Use% Mounted on 
/dev/sda1 ext4 8123812 1138920 6884644 15% /
```

# 使用 Amazon EC2 Spot 執行個體
<a name="working-with-ec2-spot-instances"></a>

FSx for Lustre 可與 EC2 Spot 執行個體搭配使用，以大幅降低 Amazon EC2 成本。Spot 執行個體是未使用的 EC2 執行個體，其使用價格低於隨需定價。當 Spot 價格超過您的最高價格、Spot 執行個體的需求增加或 Spot 執行個體的供應減少時，Amazon EC2 可以中斷您的 Spot 執行個體。

當 Amazon EC2 中斷 Spot 執行個體時，會提供 Spot 執行個體中斷通知，在 Amazon EC2 中斷執行個體前，向該執行個體發出兩分鐘的警告。如需詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[Spot 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html)。

為了確保 Amazon FSx 檔案系統不受 EC2 Spot 執行個體中斷的影響，我們建議在終止或休眠 EC2 Spot 執行個體之前卸載 Amazon FSx 檔案系統。如需詳細資訊，請參閱[卸載檔案系統](unmounting-fs.md)。

## 處理 Amazon EC2 Spot 執行個體中斷
<a name="handling-ec2-spot-interruptions-in-fsx"></a>

 FSx for Lustre 是一種分散式檔案系統，其中伺服器和用戶端執行個體會合作以提供效能良好且可靠的檔案系統。它們會在用戶端和伺服器執行個體之間維持分散式和一致狀態。FSx for Lustre 伺服器會在用戶端主動執行 I/O 和快取檔案系統資料時，將暫時存取許可委派給用戶端。當伺服器要求他們撤銷臨時存取許可時，用戶端應該會在短時間內回覆 。為了保護檔案系統免於用戶端運作不當，伺服器可以移出幾分鐘後未回應的Lustre用戶端。若要避免不回應的用戶端必須等待幾分鐘才能回覆伺服器請求，請務必徹底卸載Lustre用戶端，尤其是在終止 EC2 Spot 執行個體之前。

 EC2 Spot 會提前 2 分鐘傳送終止通知，再關閉執行個體。建議您在終止 EC2 Spot 執行個體之前，先自動執行徹底卸載Lustre用戶端的程序。

**Example – 用來徹底卸載終止 EC2 Spot 執行個體的指令碼**  
此範例指令碼會執行下列動作，以徹底卸載終止的 EC2 Spot 執行個體：  
+ 適用於 Spot 的 手錶終止通知。
+ 當它收到終止通知時：
  + 停止正在存取檔案系統的應用程式。
  + 在執行個體終止之前卸載檔案系統。
您可以視需要調整指令碼，尤其是用於正常關閉應用程式。如需處理 Spot 執行個體中斷的最佳實務的詳細資訊，請參閱[處理 EC2 Spot 執行個體中斷的最佳實務](https://aws.amazon.com/blogs//compute/best-practices-for-handling-ec2-spot-instance-interruptions/)。  

```
#!/bin/bash

# TODO: Specify below the FSx mount point you are using
*FSXPATH=/fsx*

cd /

TOKEN=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
if [ "$?" -ne 0 ]; then
    echo "Error running 'curl' command" >&2
    exit 1
fi

# Periodically check for termination
while sleep 5
do

    HTTP_CODE=$(curl -H "X-aws-ec2-metadata-token: $TOKEN" -s -w %{http_code} -o /dev/null http://169.254.169.254/latest/meta-data/spot/instance-action)

    if [[ "$HTTP_CODE" -eq 401 ]] ; then
        # Refreshing Authentication Token
        TOKEN=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 30")
        continue
    elif [[ "$HTTP_CODE" -ne 200 ]] ; then
        # If the return code is not 200, the instance is not going to be interrupted
        continue
    fi

    echo "Instance is getting terminated. Clean and unmount '$FSXPATH' ..."
    curl -H "X-aws-ec2-metadata-token: $TOKEN" -s http://169.254.169.254/latest/meta-data/spot/instance-action
    echo

    # Gracefully stop applications accessing the filesystem
    #
    # TODO*: Replace with the proper command to stop your application if possible*

    # Kill every process still accessing Lustre filesystem
    echo "Kill every process still accessing Lustre filesystem..."
    fuser -kMm -TERM "${FSXPATH}"; sleep 2
    fuser -kMm -KILL "${FSXPATH}"; sleep 2

    # Unmount FSx For Lustre filesystem
    if ! umount -c "${FSXPATH}"; then
        echo "Error unmounting '$FSXPATH'. Processes accessing it:" >&2
        lsof "${FSXPATH}"

        echo "Retrying..."
        continue
    fi

    # Start a graceful shutdown of the host
    shutdown now

done
```