推荐的 NFS 装载选项 - Amazon Elastic File System
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

推荐的 NFS 装载选项

我们建议在 Linux 上使用以下装载选项值:

  • noresvport— 告诉 NFS 客户端在重新建立网络连接时使用新的非特权传输控制协议 (TCP) 源端口。旧版 Linux 内核(v5.4 及更低版本)中包含的 NFS 客户端软件包含一种行为,该行为会导致 NFS 客户端在断开连接时尝试在同一 TCP 源端口上重新连接。此行为不符合 TCP RFC,并且可能阻止这些客户端快速重新建立与 EFS 文件系统的连接。

    使用noresvport选项有助于确保 NFS 客户端透明地重新连接到您的 EFS 文件系统,从而在网络恢复事件后重新连接时保持不间断的可用性。

    重要

    我们强烈建议您使用noresvport挂载选项来帮助确保 EFS 文件系统在重新连接或网络恢复事件后保持不间断的可用性。

    考虑使用 EFS 挂载助手来装载您的文件系统。EFS 挂载助手使用针对 Amazon EFS 文件系统进行优化的 NFS 挂载选项。

  • rsize=1048576— 设置 NFS 客户端可以为每个网络读取请求接收的最大数据字节数。在从 EFS 文件系统上的文件读取数据时应用此值。我们建议您尽可能使用最大的大小(最多 1048576),以避免性能下降。

  • wsize=1048576— 设置 NFS 客户端可以为每个网络写入请求发送的最大数据字节数。在将数据写入到 EFS 文件系统上的文件时应用此值。我们建议您尽可能使用最大的大小(最多 1048576),以避免性能下降。

  • hard— 设置 NFS 请求超时后 NFS 客户端的恢复行为,以便无限期地重试 NFS 请求,直到服务器回复。建议您使用硬挂载选项 (hard) 以确保数据完整性。如果您使用 soft 挂载,请将 timeo 参数至少设置为 150 分秒(15 秒)。这样做可尽量减少源自软挂载的数据损坏风险。

  • timeo=600— 将 NFS 客户端在重试 NFS 请求之前用于等待响应的超时值设置为 600 决定秒(60 秒)。如果您必须更改超时参数 (timeo),我们建议您使用至少为 150 的值,这相当于 15 秒。这样做有助于避免性能下降。

  • retrans=2— 将 NFS 客户端在尝试进一步恢复操作之前重试请求的次数设置为 2。

  • _netdev— 如果存在于中/etc/fstab,则阻止客户端在启用网络之前尝试装载 EFS 文件系统。

  • nofail— 如果无论挂载的 EFS 文件系统的状态如何,您的 EC2 实例都需要启动,请在文件中的文件系统条目中添加该nofail选项。/etc/fstab

如果您不使用前面的默认值,请注意以下事项:

  • 一般而言,避免设置任何其他不同于默认值的挂载选项,这会导致性能降低和其他问题。例如,更改读或写缓冲区大小或禁用属性缓存会导致性能下降。

  • 亚马逊 EFS 会忽略源端口。如果您更改 Amazon EFS 源端口,则没有任何影响。

  • 亚马逊 EFS 不支持nconnect挂载选项。

  • 亚马逊 EFS 不支持任何 Kerberos 安全变体。例如,下面的挂载命令将失败。

    $ mount -t nfs4 -o krb5p <DNS_NAME>:/ /efs/
  • 我们建议您使用其 DNS 名称挂载文件系统。此名称解析为与您的 Amazon EC2 实例位于同一可用区中的 Amazon EFS 挂载目标的 IP 地址。如果您在不同于 Amazon EC2 实例的可用区中使用挂载目标,则跨可用区发送的数据将产生标准 EC2 费用。可能还会面临更高的文件系统操作延迟。

  • 有关更多挂载选项和默认设置的详细说明,请参阅 Linux 文档中的 man fstabman nfs 页面。