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

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

推荐的NFS挂载设置

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

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

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

    重要

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

    考虑使用EFS挂载助手来挂载您的文件系统。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— 将NFS客户端在重试NFS请求之前用于等待响应的超时值设置为 600 决定秒(60 秒)。如果您必须更改超时参数 (timeo),我们建议您使用至少为 150 的值,这相当于 15 秒。这样做有助于避免性能下降。

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

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

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

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

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

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

  • Amazon EFS 不支持nconnect挂载选项。

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

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

  • 有关更多装载选项和默认值的详细说明,请参阅 Linux 文档。