

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

# 推荐的 NFS 挂载设置
<a name="mounting-fs-nfs-mount-settings"></a>

我们建议在 Linux 上使用以下挂载选项值：
+ `noresvport` – 告知 NFS 客户端在重新建立网络连接时，使用新的非特权传输控制协议（TCP）源端口。旧版 Linux 内核（版本 v5.4 及更低版本）中包含的 NFS 客户端软件包含一种行为，该行为会导致 NFS 客户端在断开连接时尝试在同一 TCP 源端口上重新连接。此行为不符合 TCP RFC 要求，并且可能会阻止这些客户端快速重新建立与 EFS 文件系统的连接。

  使用 `noresvport` 选项有助于确保 NFS 客户端以透明的方式重新连接到您的 EFS 文件系统，从而在网络恢复事件后重新连接时保持不间断的可用性。
**重要**  
我们强烈建议您使用 `noresvport` 挂载选项来帮助确保 EFS 文件系统在重新连接或网络恢复事件后保持不间断的可用性。  
考虑使用 [EFS 挂载帮助程序](mounting-fs.md)挂载您的文件系统。EFS 挂载帮助程序使用针对 Amazon EFS 文件系统优化了的 NFS 挂载选项。
+ `rsize=1048576` – 设置 NFS 客户端对每个网络 READ 请求可以接收的最大数据字节数。在从 EFS 文件系统上的文件读取数据时应用此值。我们建议您尽可能使用最大的大小（最多 `1048576`），以避免性能下降。
+ `wsize=1048576` – 设置 NFS 客户端对每个网络 WRITE 请求可以发送的最大数据字节数。在将数据写入到 EFS 文件系统上的文件时应用此值。我们建议您尽可能使用最大的大小（最多 `1048576`），以避免性能下降。
+ `hard` – 设置 NFS 客户端在 NFS 请求超时之后的恢复行为，以便 NFS 请求在服务器回复之前无限次重试。建议您使用硬挂载选项 (`hard`) 以确保数据完整性。如果您使用 `soft` 挂载，请将 `timeo` 参数至少设置为 `150` 分秒（15 秒）。这样做可尽量减少源自软挂载的数据损坏风险。
+ `timeo=600` – 将超时值设置为 600 分秒（60 秒），这是 NFS 客户端在重试 NFS 请求之前等待响应的时间。如果您必须更改超时参数 (`timeo`)，我们建议您使用至少为 `150` 的值，这相当于 15 秒。这样做有助于避免性能下降。
+ `retrans=2` – 将 NFS 客户端重试请求的次数设置为 2，超过此次数之后将尝试进一步的恢复操作。
+ `_netdev` – `/etc/fstab` 中存在此选项时，将阻止客户端尝试挂载 EFS 文件系统，直到启用了网络。
+ `nofail` – 如果需要启动您的 EC2 实例而不考虑挂载的 EFS 文件系统状态，请将 `nofail` 选项添加到 `/etc/fstab` 文件的文件系统条目中。

如果您不使用前面的默认值，请注意以下事项：
+ 一般而言，避免设置任何其他不同于默认值的挂载选项，这会导致性能降低和其他问题。例如，更改读或写缓冲区大小或禁用属性缓存会导致性能下降。
+ Amazon EFS 会忽略源端口。如果您更改 Amazon EFS 源端口，则不会有任何影响。
+ Amazon EFS 不支持 `nconnect` 挂载选项。
+ Amazon EFS 不支持任何 Kerberos 安全变体。例如，下面的挂载命令将失败。

  ```
   $ mount -t nfs4 -o krb5p <DNS_NAME>:/ /efs/ 
  ```
+ 我们建议您使用其 DNS 名称挂载文件系统。此名称解析为与您 Amazon EC2 实例位于相同可用区中的 Amazon EFS 挂载目标的 IP 地址。如果您在与 Amazon EC2 实例不同的可用区中使用挂载目标，则会对跨可用区发送的数据收取标准 EC2 费用。可能还会面临更高的文件系统操作延迟。
+ 有关更多挂载选项和默认设置的详细说明，请参阅 Linux 文档。