使用 EFS 挂载帮助程序挂载 EFS 文件系统 - Amazon Elastic File System
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 EFS 挂载帮助程序挂载 EFS 文件系统

EFS 挂载帮助程序可帮助您在运行 概述 中列出的受支持发行版的 EC2 Linux 和 Mac 实例上挂载 EFS 文件系统。

Amazon EFS 挂载帮助程序简化了挂载文件系统的过程。默认情况下,它包括 Amazon EFS 建议的挂载选项。此外,挂载帮助程序还具有内置的日志记录以进行故障排除。如果您遇到 Amazon EFS 文件系统问题,可以与 Amazon Support 分享这些日志。有关挂载您的文件系统的更多信息,请参阅挂载 EFS 文件系统

注意

Amazon EFS 不支持从 Amazon EC2 Windows 实例进行挂载。

工作方式

挂载帮助程序定义了新的网络文件系统类型(称为 efs),它与 Linux 中的标准 mount 命令完全兼容。挂载帮助程序还支持在 EC2 Linux 实例上使用 /etc/fstab 配置文件中的条目,在实例启动时自动挂载 Amazon EFS 文件系统。

警告

请在自动挂载文件系统时使用 _netdev 选项,它用于指定网络文件系统。如果缺少 _netdev,您的 EC2 实例可能会停止响应。出现该结果是因为,需要在计算实例启动其网络后初始化网络文件系统。有关更多信息,请参阅自动挂载失败,并且实例没有响应

可以通过指定下列属性之一挂载文件系统:

  • 文件系统 DNS 名称 – 如果使用文件系统 DNS 名称,但挂载帮助程序无法解析它,例如,在不同 VPC 中挂载文件系统时,它将回退为使用挂载目标 IP 地址。有关更多信息,请参阅从另一个 Amazon Web Services 账户或 VPC 挂载 EFS 文件系统

  • 文件系统 ID – 如果使用文件系统 ID,挂载帮助程序无需调用外部资源即可将其解析为挂载目标弹性网络接口 (ENI) 的本地 IP 地址。

  • 挂载目标 IP 地址 – 可以使用其中一个文件系统挂载目标的 IP 地址。

可以在 Amazon EFS 控制台中找到所有这些属性的值。文件系统 DNS 名称可在附加屏幕中找到。

将传输中数据加密声明为 Amazon EFS 文件系统的挂载选项时,挂载帮助程序将初始化客户端 stunnel 进程和名为 amazon-efs-mount-watchdog 的监管进程。amazon-efs-mount-watchdog 进程监控 TLS 挂载的运行状况,并在首次通过 TLS 挂载 EFS 文件系统时自动启动。如果您的客户端在 Linux 上运行,则此过程由 upstartsystemd 管理,具体取决于您的 Linux 发行版。对于在支持的 macOS 上运行的客户端,它由管理 launchd

Stunnel 是一种开源多用途网络中继。客户端 stunnel 进程侦听本地端口的入站流量,挂载帮助程序将 NFS 客户端流量重定向到该本地端口。

挂载帮助程序使用 TLS 1.2 版与您的文件系统进行通信。使用 TLS 需要具有证书,并且这些证书需要由受信任的 Amazon 证书颁发机构进行签名。有关加密的工作方式的更多信息,请参阅Amazon EFS 中的数据加密

Amazon EFS 客户端使用的挂载选项

Amazon EFS 挂载帮助程序客户端使用以下针对 Amazon EFS 进行了优化的挂载选项:

  • nfsvers=4.1 – 在 EC2 Linux 实例上安装时使用

    nfsvers=4.0 – 在运行 macOS Big Sur、Monterey 和 Ventura 的支持的 EC2 Mac 实例上挂载时使用

  • rsize=1048576 – 将 NFS 客户端可以为每个网络 READ 请求接收的最大数据字节数设置为 1048576(最大可用字节数),以避免性能下降。

  • wsize=1048576 – 将 NFS 客户端可以为每个网络 WRITE 请求发送的最大数据字节数设置为 1048576(最大可用字节数),以避免性能下降。

  • hard – 设置 NFS 客户端在 NFS 请求超时之后的恢复行为,以便 NFS 请求在服务器回复之前无限次重试,从而确保数据完整。

  • timeo=600 – 将 NFS 客户端在重试 NFS 请求之前用于等待响应的超时值设置为 600 分秒(60 秒),以避免性能下降。

  • retrans=2 – 将 NFS 客户端重试请求的次数设置为 2,超过此次数之后将尝试进一步的恢复操作。

  • noresvport – 告知 NFS 客户端在重新建立网络连接时,使用新的非特权传输控制协议 (TCP) 源端口。使用 noresvport 选项来帮助确保 EFS 文件系统在重新连接或网络恢复事件后保持不间断的可用性。

  • mountport=2049 – 仅在运行 macOS Big Sur、Monterey 和 Ventura 的 EC2 Mac 实例上挂载时使用。

获取支持日志

挂载帮助程序具有 Amazon EFS 文件系统的内置日志记录。可以与 Amazon Support 分享这些日志以进行故障排除。可以使用 EFS 挂载帮助程序查找存储在客户端上的 /var/log/amazon/efs 中的日志。这些日志适用于 EFS 挂载帮助程序、stunnel 进程(默认禁用),以及监控 stunnel 进程的 amazon-efs-mount-watchdog 进程。

注意

amazon-efs-mount-watchdog 进程确保每个挂载的 stunnel 进程正在运行,并在卸载 Amazon EFS 文件系统后停止 stunnel 进程。如果 stunnel 进程由于某种原因意外终止,watchdog 进程将重新启动该进程。

可以在 /etc/amazon/efs/efs-utils.conf 中更改日志配置。要使任何日志更改生效,需要使用 EFS 挂载帮助程序卸载并重新挂载文件系统。挂载帮助程序和 watchdog 日志的日志容量限制为 20 MiB。默认情况下,将禁用 stunnel 进程的日志。

重要

您可以为 stunnel 进程日志启用日志记录。但是,启用 stunnel 日志可能会用完您的文件系统上的宝贵空间量。

使用 EFS 挂载帮助程序的先决条件

可以使用 Amazon EFS 挂载帮助程序在 Amazon EC2 实例上挂载 Amazon EFS 文件系统。要使用挂载帮助程序,您需要具有:

  • 要挂载的文件系统的文件系统 ID – EFS 挂载帮助程序将文件系统 ID 解析为挂载目标弹性网络接口 (ENI) 的本地 IP 地址,无需调用外部资源。

  • Amazon EFS 挂载目标 – 在虚拟私有云 (VPC) 中创建挂载目标。如果使用服务建议的设置在控制台中创建文件系统,则会在文件系统所在的 Amazon Web Services 区域的每个可用区中创建挂载目标。有关创建挂载目标的说明,请参阅创建并管理挂载目标和安全组

    注意

    我们建议您在新创建的挂载目标的生命周期状态变为可用后等待 60 秒,然后再通过 DNS 挂载文件系统。在该等待时间内,将在文件系统所在的 Amazon Web Services 区域中完全传播 DNS 记录。

    如果您在与 EC2 实例不同的可用区中使用挂载目标,则会导致跨可用区发送数据的标准 EC2 费用。可能还会面临更高的文件系统操作延迟。

  • 从不同的可用区挂载单区文件系统:

    • 文件系统可用区的名称 – 如果您挂载的 EFS 单区文件系统位于与 EC2 实例不同的可用区中。

    • 挂载目标 DNS 名称 – 或者,也可以指定挂载目标的 DNS 名称,而不是可用区。

  • 运行受支持的 Linux 或 macOS 发行版之一的 Amazon EC2 实例 – 支持使用挂载帮助程序来装载文件系统的发行版如下:

    • Amazon Linux 2

    • Amazon Linux 2017.09 及更高版本

    • macOS Big Sur

    • Red Hat Enterprise Linux(和衍生产品,如 CentOS)7 和更新版本

    • Ubuntu 16.04 LTS 和更新版本

    注意

    运行 macOS Big Sur 的 EC2 Mac 实例仅支持 NFS 4.0。

  • Amazon EFS 挂载帮助程序安装在 EC2 实例上 – 挂载帮助程序是实用程序 amazon-efs-utils 程序包中的一个工具。有关安装 amazon-efs-utils 的信息,请参阅使用 Amazon Systems Manager 安装 amazon-efs-utils手动安装 amazon-efs-utils

  • EC2 实例在 VPC 中 – 连接的 EC2 实例必须位于基于 Amazon VPC 服务的虚拟私有云 (VPC) 中。它还必须配置为使用 Amazon 提供的 DNS 服务器。有关 Amazon DNS 服务器的信息,请参阅《Amazon VPC 用户指南》中的 DHCP 选项集

  • VPC 已启用 DNS 主机名 – 连接的 EC2 实例的 VPC 必须启用了 DNS 主机名。有关更多信息,请参阅《Amazon VPC 用户指南》中的查看您的 EC2 实例的 DNS 主机名

  • 对于不同 Amazon Web Services 区域中的 EC2 实例和文件系统 – 如果 EC2 实例和您要挂载的文件系统位于不同的 Amazon Web Services 区域,需要编辑 efs-utils.conf 文件中的 region 属性。有关更多信息,请参阅从不同 Amazon Web Services 区域挂载 Amazon EFS 文件系统