

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

# 在 Amazon EC2 Linux 实例上挂载文件共享
<a name="map-shares-linux"></a>

您可以在 Amazon EC2 Linux 实例上挂载适用于 Windows File Server 的 FSx 文件共享，该实例要么已加入您的活动目录，要么未加入，才能访问 FSx 您的 Windows 文件服务器文件系统。

**注意**  
以下命令中指定的参数（SMB 协议、缓存，以及读取和写入缓冲区的大小）仅作为示例。Linux `cifs` 命令的参数选择以及所使用的 Linux 内核版本可能会影响客户端和 Amazon FSx 文件系统之间网络操作的吞吐量和延迟。有关更多信息，请参阅 `cifs` 文档，了解您使用的 Linux 环境。
Linux 客户端不支持基于 DNS 的自动失效转移。有关更多信息，请参阅 [Linux 客户端的失效转移经验](high-availability-multiAZ.md#linux-failover)。

## 在已加入 Active Directory 的 Amazon EC2 Linux 实例上挂载文件共享
<a name="map-file-share-ec2-linux-kerberos"></a>

1. 如果您还没有正在运行的 EC2 Linux 实例已加入 Microsoft Active Directory，请参阅《AWS Directory Service 管理指南》**中的[手动加入 Linux 实例](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/join_linux_instance.html)。

1. 连接到 EC2 Linux 实例。有关更多信息，请参阅*《Amazon EC2 用户指南》*中的[连接到 Linux 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html)。

1. 要安装 `cifs-utils` 软件包，请运行以下命令。此软件包用于在 Linux FSx 上挂载 Amazon 等网络文件系统。

   ```
   $ sudo yum install cifs-utils
   ```

1. 创建挂载点目录 **/mnt/fsx**。您将在此处装载 Amazon FSx 文件系统。

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

1. 使用以下命令通过 Kerberos 进行身份验证。

   ```
   $ kinit
   ```

1. 使用以下命令挂载文件共享。

   ```
   $ sudo mount -t cifs //file_system_dns_name/file_share mount_point --verbose -o vers=SMB_version,sec=krb5,cruid=ad_user,rsize=CIFSMaxBufSize,wsize=CIFSMaxBufSize,cache=none,ip=preferred-file-server-Ip
   ```

    您可以通过选择 **Windows 文件服务器**、**网络和安全**在[亚马逊 FSx控制台](https://console.aws.amazon.com/fsx)上找到 DNS 名称。或者，您可以在 `CreateFileSystem` 或 `DescribeFileSystems` API 操作的响应中找到它们。
   + 对于加入 AWS 托管 Microsoft Active Directory 的单可用区文件系统，DNS 名称如下所示。

     ```
     fs-0123456789abcdef0.ad-domain.com
     ```
   + 对于加入自行管理的 Active Directory 的单可用区文件系统，以及所有多可用区文件系统，DNS 名称如下所示。

     ```
     amznfsxaa11bb22.ad-domain.com
     ```

   将 `CIFSMaxBufSize` 替换为内核允许的最大值。运行以下命令，以获取此值。

   ```
   $ modinfo cifs | grep CIFSMaxBufSize
   parm:           CIFSMaxBufSize:Network buffer size (not including header). Default: 16384 Range: 8192 to 130048 (uint)
   ```

   输出显示最大缓冲区大小为 130048。

1. 运行以下命令，验证文件系统是否已挂载，该命令仅返回通用 Internet 文件系统（CIFS）类型的文件系统。

   ```
   $ mount -l -t cifs
   //fs-0123456789abcdef0/share on /mnt/fsx type cifs (rw,relatime,vers=SMB_version,sec=krb5,cache=cache_mode,username=user1@CORP.NETWORK.COM,uid=0,noforceuid,gid=0,noforcegid,addr=192.0.2.0,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)
   ```

此过程中使用的挂载命令会在指定点执行以下操作：
+ `//file_system_dns_name/file_share` – 指定要挂载的文件系统的 DNS 名称和共享。
+ *mount\$1point*— 您要将文件系统挂载到的 EC2 实例上的目录。
+ `-t cifs vers=SMB_version`：将文件系统的类型指定为 CIFS 和 SMB 协议版本。亚马逊版 Window FSx s 文件服务器支持 SMB 版本 2.0 到 3.1.1。
+ `sec=krb5` – 指定使用 Kerberos 版本 5 进行身份验证。
+ `cache=cache_mode`：设置缓存模式。此 CIFS 缓存选项可能会影响性能，您应该测试哪些设置更适合您的内核和工作负载（并查看 Linux 文档）。建议使用选项 `strict` 和 `none`，因为 `loose` 可能会因协议语义较宽松而导致数据不一致。
+ `cruid=ad_user` – 将凭证缓存所有者的 UID 设置为 AD 目录管理员。
+ `/mnt/fsx` – 在 EC2 实例上指定 Amazon FSx 文件共享的挂载点。
+ `rsize=CIFSMaxBufSize,wsize=CIFSMaxBufSize` – 将读取和写入缓冲区大小指定为 CIFS 协议允许的最大值。将 `CIFSMaxBufSize` 替换为内核允许的最大值。通过运行以下命令来确定 `CIFSMaxBufSize`。

  ```
  $ modinfo cifs | grep CIFSMaxBufSize
  parm:           CIFSMaxBufSize:Network buffer size (not including header). Default: 16384 Range: 8192 to 130048 (uint)
  ```

  输出显示最大缓冲区大小为 130048。
+ `ip=preferred-file-server-Ip` – 将目标 IP 地址设置为文件系统首选文件服务器的 IP 地址。

  您可以按如下方式检索文件系统的首选文件服务器 IP 地址：
  + 使用 Amazon FSx 控制台，在**文件系统详情**页面的 “**网络和安全**” 选项卡上。
  + 在 `describe-file-systems` CLI 命令或等效 [DescribeFileSystems](https://docs.aws.amazon.com/fsx/latest/APIReference/API_DescribeFileSystems.html)API 命令的响应中。

# 在未加入 Active Directory 的 Amazon EC2 Linux 实例上挂载文件共享
<a name="map-file-share-ec2-linux-command"></a>

以下过程将 Amazon FSx 文件共享挂载到未加入 Active Directory（AD）的 Amazon EC2 Linux 实例。对于未加入您的 AD 的 EC2 Linux 实例，您只能使用其私有 IP 地址挂载 FSx 适用于 Windows 文件服务器的文件共享。您可以使用 [Amazon FSx 控制台](https://console.aws.amazon.com/fsx)的 “**网络和安全**” 选项卡的 “**首选文件服务器 IP 地址” 中获取文件系统的私有 IP 地址**。

 此示例使用 NTLM 身份验证。为此，您需要以用户身份（即，FSx for Windows File Server 文件系统所加入的 Microsoft Active Directory 域的成员）挂载文件系统。EC2 实例 `creds.txt` 上所创建的文本文件中会提供用户账户的凭证。此文件包含用户的用户名、密码和域。

```
$ cat creds.txt
username=user1
password=Password123
domain=EXAMPLE.COM
```

**启动和配置 Amazon Linux EC2 实例**

1. 使用 [Amazon EC2 控制台](https://console.aws.amazon.com/ec2)启动 Amazon Linux EC2 实例。有关更多信息，请参阅*《Amazon EC2 用户指南》*中的[启动实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-launch-instance)。

1. 连接到 Amazon Linux EC2 实例。有关更多信息，请参阅*《Amazon EC2 用户指南》*中的[连接到 Linux 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html)。

1. 要安装 `cifs-utils` 软件包，请运行以下命令。此软件包用于在 Linux FSx 上挂载 Amazon 等网络文件系统。

   ```
   $ sudo yum install cifs-utils
   ```

1. 创建您计划挂载 Amazon FSx 文件系统的挂载点**/mnt/fsxx**。

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

1. 使用之前显示的格式在 `/home/ec2-user` 目录中创建 `creds.txt` 凭证文件。

1. 设置 `creds.txt` 文件权限，以便只有您（所有者）可以通过运行以下命令来读取和写入文件。

   ```
   $ chmod 700 creds.txt
   ```<a name="mnt-ip-addr"></a>

**挂载文件系统**

1. 您可以使用私有 IP 地址挂载未加入 Active Directory 的文件共享。您可以使用 [Amazon FSx 控制台](https://console.aws.amazon.com/fsx)的 “**网络和安全**” 选项卡的 “**首选文件服务器 IP 地址” 获取文件系统的私有 IP 地址**。

1. 使用以下命令挂载文件系统：

   ```
   $ sudo mount -t cifs //file-system-IP-address/file_share /mnt/fsx --verbose -o vers=SMB_version,sec=ntlmsspi,cred=/home/ec2-user/creds.txt,rsize=CIFSMaxBufSize,wsize=CIFSMaxBufSize,cache=none
   ```

   将 `CIFSMaxBufSize` 替换为内核允许的最大值。运行以下命令，以获取此值。

   ```
   $ modinfo cifs | grep CIFSMaxBufSize
   parm:           CIFSMaxBufSize:Network buffer size (not including header). Default: 16384 Range: 8192 to 130048 (uint)
   ```

   输出显示最大缓冲区大小为 130048。

1. 运行以下命令，验证是否挂载了文件系统，该命令仅返回 CIFS 文件系统。

   ```
   $ mount -l -t cifs
   //file-system-IP-address/file_share on /mnt/fsx type cifs (rw,relatime,vers=SMB_version,sec=ntlmsspi,cache=cache_mode,username=user1,domain=CORP.EXAMPLE.COM,uid=0,noforceuid,gid=0,noforcegid,addr=192.0.2.0,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)
   ```

此过程中使用的挂载命令会在指定点执行以下操作：
+ `//file-system-IP-address/file_share` – 指定要挂载的文件系统的 IP 地址和共享。
+ `-t cifs vers=SMB_version` – 将文件系统的类型指定为 CIFS 和 SMB 协议版本。亚马逊版 Window FSx s 文件服务器支持 SMB 版本 2.0 到 3.1.1。
+ `sec=ntlmsspi` – 指定使用 NT LAN Manager Security Support Provider Interface（NTLMSSPI）进行身份验证。
+ `cache=cache_mode`：设置缓存模式。此 CIFS 缓存选项可能会影响性能，您应该测试哪些设置更适合您的内核和工作负载（并查看 Linux 文档）。建议使用选项 `strict` 和 `none`，因为 `loose` 可能会因协议语义较宽松而导致数据不一致。
+ `cred=/home/ec2-user/creds.txt`：指定从何处获取用户凭证。
+ `/mnt/fsx` – 在 EC2 实例上指定 Amazon FSx 文件共享的挂载点。
+ `rsize=CIFSMaxBufSize,wsize=CIFSMaxBufSize` – 将读取和写入缓冲区大小指定为 CIFS 协议允许的最大值。将 `CIFSMaxBufSize` 替换为内核允许的最大值。通过运行以下命令来确定 `CIFSMaxBufSize`。

  ```
  $ modinfo cifs | grep CIFSMaxBufSize
  parm:           CIFSMaxBufSize:Network buffer size (not including header). Default: 16384 Range: 8192 to 130048 (uint)
  ```

  