

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

# 在 Amazon EC2 Linux 实例上自动挂载文件共享
<a name="automount-fsxw-ec2-linux"></a>

每当挂载 FSx for Windows File Server 文件共享的 Amazon EC2 Linux 实例重启时，您可以自动挂载该文件共享以访问 FSx for Windows File Server 文件系统。为此，请在 EC2 实例上的 `/etc/fstab` 文件中添加一个条目。`/etc/fstab` 文件包含有关文件系统的信息。命令 **mount -a** 会在实例启动期间运行，用于挂载 `/etc/fstab` 文件中列出的文件系统。

对于*未*加入 Active Directory 的 Amazon EC2 Linux 实例，您只能使用其私有 IP 地址挂载 FSx for Windows File Server 文件共享。您可以访问 [Amazon FSx 控制台](https://console.amazonaws.cn/fsx)，在**网络与安全**选项卡上的**首选文件服务器 IP 地址**中获取文件系统的私有 IP 地址。

以下过程使用 Microsoft NTLM 身份验证。您需要以用户身份（即，FSx for Windows File Server 文件系统所加入的 Microsoft Active Directory 域的成员）挂载文件系统。您可以使用下面的命令从 `creds.txt` 文件检索用户账户凭证。

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

## 在未加入 Active Directory 的 Amazon Linux EC2 实例上自动挂载文件共享
<a name="automount-ec2-linux-ip"></a>

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

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

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

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

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

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

   ```
   $ sudo mkdir /mnt/fsx
   ```

1. 在 `/home/ec2-user` 目录中创建 `creds.txt` 凭证文件。

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

   ```
   $ sudo chmod 700 creds.txt
   ```

**自动挂载文件系统**

1. 您可以使用私有 IP 地址自动挂载未加入 Active Directory 的文件共享。您可以访问 [Amazon FSx 控制台](https://console.amazonaws.cn/fsx)，在**网络与安全**选项卡上的**首选文件服务器 IP 地址**中获取文件系统的私有 IP 地址。

1. 要使用文件共享的私有 IP 地址自动挂载文件共享，请在 `/etc/fstab` 文件中添加以下行。

   ```
   //{{file-system-IP-address}}/{{file_share}} /mnt/fsx cifs vers={{SMB_version}},sec=ntlmsspi,cred=/home/ec2-user/creds.txt,rsize={{CIFSMaxBufSize}},wsize={{CIFSMaxBufSize}},cache=none 0 0
   ```

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

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

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

1. 将带“fake”选项的 `mount` 命令与“all”和“verbose”选项结合使用，从而测试 `fstab` 条目。

   ```
   $ sudo mount -fav
   home/ec2-user/fsx      : successfully mounted
   ```

1. 要挂载文件共享，请重启 Amazon EC2 实例。

1. 当实例再次可用时，运行以下命令以验证文件系统是否已挂载。

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

   在此过程中为 `/etc/fstab` 文件添加的行在指定点执行以下操作：
   + `//{{file-system-IP-address}}/{{file_share}}` – 指定要挂载的 Amazon FSx 文件系统的 IP 地址和共享。
   + `/mnt/fsx` – 在 EC2 实例上指定 Amazon FSx 文件系统的挂载点。
   + `cifs vers={{SMB_version}}` – 将文件系统的类型指定为 CIFS 和 SMB 协议版本。适用于 Windows File Server 的 Amazon FSx 支持 SMB 版本 2.0 至 3.1.1。
   + `sec=ntlmsspi` – 指定使用 NT LAN Manager Security Support Provider Interface 来加速质询-响应身份验证。
   + `cache={{cache_mode}}` – 设置缓存模式。此 CIFS 缓存选项可能会影响性能，您应该测试哪些设置更适合您的内核和工作负载（并查看 Linux 文档）。建议使用选项 `strict` 和 `none`，因为 `loose` 可能会因协议语义较宽松而导致数据不一致。
   + `cred=/home/ec2-user/creds.txt` – 指定从何处获取用户凭证。
   + `_netdev` – 向操作系统指示文件系统位于需要网络访问的设备上。该选项会禁止实例挂载文件系统，直到在客户端上启用了网络服务。
   + `0` – 指示文件系统应该由 `dump` 备份，如果它是非零值。对于 Amazon FSx，该值应该是 `0`。
   + `0`：指定 `fsck` 在启动时检查文件系统的顺序。对于 Amazon FSx 文件系统，该值应为 `0`，表示 `fsck` 不应在启动时运行。