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

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

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

EFS 挂载帮助您在 EC2 Linux 和 Mac 实例上挂载您的 EFS 文件系统,该实例运行Overview.

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

注意

亚马逊 EFS 不支持从 Amazon EC2 Windows 实例进行装载。

工作原理

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

警告

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

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

  • 文件系统 DNS 名称— 如果您使用文件系统 DNS 名称,并且装载帮助程序无法解析它,例如,当您在其他 VPC 中装载文件系统时,它将回退到使用装载目标 ip 地址。有关更多信息,请参阅从另一个挂载 EFS 文件系统Amazon Web Services 账户或 VPC

  • 文件系统 ID— 如果使用文件系统 ID,则装载帮助程序将其解析为装载目标 elastic network interface (ENI) 的本地 IP 地址,而无需调用外部资源。

  • 装入目标 IP 地址— 您可以使用其中一个文件系统装载目标的 IP 地址。

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

在将传输中的数据加密声明为 Amazon EFS 文件系统的挂载选项时,挂载帮助程序初始化客户端stunnel进程,以及一个名为amazon-efs-mount-watchdog. 这些区域有:amazon-efs-mount-watchdog进程监视 TLS 装载的运行状况,并在第一次通过 TLS 装载 EFS 文件系统时自动启动。此过程由upstart或者systemd具体取决于您的 Linux 发行版,并通过launchd在 macOS 大苏尔发行版

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

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

亚马逊 EFS 客户端使用的装载选项

Amazon EFS 客户端使用针对 Amazon EFS 优化的以下挂载选项:

  • nfsvers=4.1— 在 EC2 Linux 实例上挂载时使用

    nfsvers=4.0— 在运行 MacOS 大 Sur 的 EC2 Mac 实例上安装时使用

  • rsize=1048576

  • wsize=1048576

  • hard

  • timeo=600

  • retrans=2

  • noresvport

  • mountport=2049— 仅在运行 macOS 大 Sur 的 EC2 Mac 实例上安装时使用

获取支持日志

挂载帮助程序具有 Amazon EFS 文件系统的内置日志记录。您可以将这些日志与AmazonSupport 故障排除。

对于安装了挂载帮助程序的系统,您可以查找在 /var/log/amazon/efs 中存储的日志。这些日志适用于挂载帮助程序、stunnel 进程本身以及监控 stunnel 进程的 amazon-efs-mount-watchdog 进程。

注意

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

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

重要

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

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

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

  • 要装载的文件系统的文件系统 ID-EFS 装载帮助程序将文件系统 ID 解析为装载目标 elastic network interface (ENI) 的本地 IP 地址,而无需调用外部资源。

  • 亚马逊 EFS 装载目标— 您在 Virtual Private Cloud (VPC) 中创建挂载目标。如果您使用服务推荐的设置在控制台中创建文件系统,则会在Amazon Web Services 区域文件系统所在的。有关创建挂载目标的说明,请参阅创建和管理装载目标.

    注意

    在创建挂载目标后,我们建议您等待 90 秒,然后再挂载您的文件系统。此等待时间允许 DNS 记录在Amazon Web Services 区域其中文件系统。

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

    注意

    使用 One Zone 存储类的 Amazon EFS 文件系统具有与文件系统位于同一可用区中的单个装载目标。要使用 EFS 挂载帮助程序,请使用Amazon计算实例装载文件系统必须位于与文件系统相同的可用区。

  • 用于挂载文件系统单个区域存储类来自不同的可用区:

    • 文件系统可用区的名称— 如果您使用与 EC2 实例不同的可用区域中的 One Zone 存储类挂载 EFS 文件系统。

    • 挂载目标 DNS 名称— 或者,您可以指定装载目标的 DNS 名称,而不是可用区域。

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

    • Amazon Linux 2

    • Amazon Linux 2017.09 及更高版本

    • macOS 大苏尔

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

    • Ubuntu 16.04 LTS 和更新版本

    注意

    运行 macOS 大苏尔的 EC2 Mac 实例仅支持 NFS 4.0。

  • EC2 实例上安装的 Amazon EFS 装载帮助程序— 挂载帮助程序是amazon-efs-utils. 有关安装amazon-efs-utils,请参阅手动安装亚马逊 EFS 客户端.

  • EC2 实例位于 VPC 中— 连接的 EC2 实例必须位于基于 Amazon VPC 服务的 Virtual Private Cloud (VPC) 中。它还必须配置为使用 DNS 服务器由Amazon. 有关 Amazon DNS 服务器的信息,请参阅DHCP 选项集中的Amazon VPC User Guide.

  • VPC 已启用 DNS 主机名— 连接的 EC2 实例的 VPC 必须启用 DNS 主机名。有关更多信息,请参阅 。查看您的 EC2 实例的 DNS 主机名称中的Amazon VPC User Guide.

使用 EFS 挂载帮助程序在 Amazon EC2 Linux 实例上挂载

在 EC2 Linux 实例上使用挂载帮助程序挂载 Amazon EFS 文件系统

  1. 通过安全 Shell (SSH) 打开 EC2 实例上的终端窗口,然后使用相应的用户名登录。有关更多信息,请参阅 。使用 SSH 连接到 Linux 实例对于 Linux 实例。

  2. 运行以下命令之一以挂载您的文件系统。

    注意

    如果 EC2 实例和要挂载的文件系统位于不同Amazon Web Services 区域,请参阅将 Amazon EFS 文件系统从不同的Amazon Web Services 区域编辑region属性efs-utils.conf文件。

    • 要使用文件系统 ID 进行装载:

      sudo mount -t efs file-system-id efs-mount-point/
      sudo mount -t efs fs-12345678 efs/

      或者,如果要使用传输中的数据加密,您可以使用以下命令挂载文件系统。

      sudo mount -t efs -o tls fs-12345678 efs/
    • 要使用文件系统 DNS 名称进行装载:

      sudo mount -t -efs -o tls file-system-dns-name efs-mount-point/
      sudo mount -t -efs -o tls fs-12345678.efs.us-east-2.amazonaws.com efs/
    • 要使用挂载目标 IP 地址进行挂载:

      sudo mount -t efs -o tls,mounttargetip=mount-target-ip file-system-id efs-mount-point/
      sudo mount -t efs -o tls,mounttargetip=192.0.2.0 fs-12345678 efs/

    您可以查看和复制确切的命令以挂载文件系统在Attach对话框。

    1. 在 Amazon EFS 控制台中,选择要装载的文件系统以显示其详细信息页面。

    2. 要显示要用于此文件系统的挂载命令,请选择Attach在右上角。

      
                  Amazon EFS 附加文件系统屏幕显示了装载文件系统时要使用的确切命令。

      这些区域有:Attach屏幕通过以下方式显示用于挂载文件系统的确切命令:

      • (通过 DNS 挂载) 将文件系统的 DNS 名称与 EFS 挂载帮助程序或 NFS 客户端结合使用。

      • (通过 IP 挂载) 将所选可用区中的挂载目标 IP 地址与 NFS 客户端结合使用。

使用 EFS 挂载帮助程序在 Amazon EC2 Mac 实例上挂载

要使用挂载帮助程序在运行 macOS 大 Sur 的 EC2 Mac 实例上挂载您的 Amazon EFS 文件系统,请执行以下操作:

  1. 通过安全 Shell (SSH) 打开 EC2 Mac 实例上的终端窗口,然后使用相应的用户名登录。有关更多信息,请参阅 。使用 SSH 连接到您的实例。对于 Mac 实例,请在适用于 Linux 实例的 Amazon EC2 用户指南.

  2. 运行以下命令以挂载文件系统。

    注意

    默认情况下,EFS 装载帮助程序在 EC2 Mac 实例上装载时使用传输过程中加密,无论您是否使用tls选项。

    sudo mount -t efs file-system-id efs-mount-point/
    sudo mount -t efs fs-12345678 efs/

    您也可以使用tls选项安装时。

    sudo mount -t efs -o tls fs-12345678:/ efs

    要在 EC2 Mac 实例上挂载文件系统而不在传输过程中使用加密,请使用notls选项,如以下命令中所示。

    sudo mount -t efs -o notls file-system-id efs-mount-point/

    您可以在管理控制台的Attach对话框,如下所述。

    1. 在 Amazon EFS 控制台中,选择要装载的文件系统以显示其详细信息页面。

    2. 要显示要用于此文件系统的挂载命令,请选择Attach在右上角。

      
                  Amazon EFS 附加文件系统屏幕显示了装载文件系统时要使用的确切命令。

      这些区域有:Attach屏幕通过以下方式显示用于挂载文件系统的确切命令:

      • (通过 DNS 挂载) 将文件系统的 DNS 名称与 EFS 挂载帮助程序或 NFS 客户端结合使用。

      • (通过 IP 挂载) 将所选可用区中的挂载目标 IP 地址与 NFS 客户端结合使用。

    注意

    如果 EC2 实例和要挂载的文件系统位于不同Amazon Web Services 区域,请参阅将 Amazon EFS 文件系统从不同的Amazon Web Services 区域编辑region属性efs-utils.conf文件。

将 Amazon EFS 文件系统从不同的Amazon Web Services 区域

如果 EFS 要从 Amazon EC2 于不同Amazon Web Services 区域而不是文件系统,则需要编辑region属性值efs-utils.conf文件。

若要编辑efs-utils.conf

  1. 通过安全 Shell (SSH) 访问 EC2 实例的终端,然后使用相应的用户名登录。有关如何执行此操作的详细信息,请参阅使用 SSH 连接到 Linux 实例中的适用于 Linux 实例的 Amazon EC2 用户指南.

  2. 找到efs-utils.conf文件,然后使用首选编辑器打开它。

  3. 找到以下行:

    #region = us-east-1
    1. 取消注释行。

    2. 如果文件系统不位于us-east-1区域,替换us-east-1与文件系统所在区域的 ID 一起使用。

    3. 保存更改。

  4. 使用 EFS 挂载帮助程序挂载文件系统Linux或者Mac实例。

使用一个区域存储类挂载文件系统

使用单区存储类的 Amazon EFS 文件系统仅支持与文件系统位于同一可用区中的单个挂载目标。您无法添加其他装载目标。本节介绍在装载使用 One Zone 存储类的 Amazon EFS 文件系统时需要考虑的事项。

通过使用与文件系统装载目标位于同一可用区内的 Amazon EC2 计算实例访问 EFS 文件系统,您可以避免可用区之间的数据传输费用,并获得更好的性能。这适用于使用 EFS 标准或单区存储类的文件系统。

挂载文件系统,这些文件系统在不同可用区中使用 EC2 上使用单区存储类

如果在位于不同可用区的 EC2 实例上使用 One Zone 存储类挂载 EFS 文件系统,则必须在装载帮助程序装载命令中指定文件系统的可用区域名称或文件系统装载目标的 DNS 名称。

以下命令指定文件系统的可用区名称。

sudo mount -t efs -o az=availability-zone-name,tls file-system-id /mnt

这是具有示例值的命令:

sudo mount -t efs -o az=us-east-1a,tls fs-12345678 /mnt

以下命令指定文件系统装载目标的 DNS 名称。

sudo mount -t efs tls mount-target-dns-name /mnt

这是带有示例装载目标 DNS 名称的命令。

sudo mount -t efs tls us-east-1a.fs-12345678.efs.amazonaws.com /mnt

使用一个区域存储与另一个区域挂载文件系统Amazon计算实例

将 Amazon EFS 文件系统与亚马逊弹性容器服务、Amazon Elastic Kubernetes Service 或Amazon Lambda,则需要将服务配置为使用 EFS 文件系统所在的相同可用区,如下所示,并在以下部分中进行说明。


          示意图显示Amazon计算实例连接到 EFS One 区文件系统。

从 Amazon Elastic Container Service 中转

您可以将 Amazon EFS 文件系统与 Amazon ECS 结合使用,跨容器实例队列共享文件系统数据,这样您的任务无论登录的是哪个实例,都可以访问相同的持久性存储。要将 Amazon EFS One Zone 存储类与 Amazon ECS 结合使用,在启动任务时,您应仅选择与文件系统位于同一可用区中的子网。有关更多信息,请参阅 。Amazon EFS 卷中的Amazon Elastic Container Service 开发指南.

从 Amazon Elastic Kubernetes Service 中转

在从 Amazon EKS 装载使用一个区域存储类的 Amazon EFS 文件系统时,您可以使用 Amazon EFS容器存储接口(CSI) 驱动程序,它支持 Amazon EFS KS 接入点,可在 Amazon EKS 或自我管理的 Kubernetes 群集中的多个容器之间共享文件系统。亚马逊 EFS CSI 驱动程序安装在 Fargate 堆栈中。将亚马逊 EFS CSI 驱动程序与亚马逊 EFS 单区存储类一起使用时,您可以使用nodeSelector选项,以确保将其安排在与文件系统相同的可用区内。

从连接Amazon Lambda

您可以将 Amazon EFS 与Amazon Lambda跨函数调用共享数据、读取大型参考数据文件以及将函数输出写入持久和共享存储中。Amazon Lambda安全地将函数实例连接到位于同一可用区和子网中的 Amazon EFS 装载目标。当您使用Amazon Lambda使用使用 EFS One Zone 存储类的 Amazon EFS 文件系统,请将函数配置为仅在与您的文件系统位于同一可用区中的子网中启动调用。

使用 IAM 授权挂载

要在 Linux 实例上安装您的 Amazon EFS 文件系统,请使用Amazon Identity and Access Management(IAM) 授权,您可以使用 EFS 挂载帮助程序。有关 NFS 客户端的 IAM 授权的更多信息,请参阅使用 IAM 控制文件系统数据访问

使用 EC2 实例配置文件通过 IAM 挂载

如果要使用 IAM 授权挂载到具有实例配置文件的 Amazon EC2 实例,请使用tlsiam挂载选项,如下所示。

$ sudo mount -t efs -o tls,iam file-system-id efs-mount-point

要使用 IAM 授权自动挂载到具有实例配置文件的 Amazon EC2 实例,请将以下行添加到/etc/fstab文件。

file-system-id:/ efs-mount-point efs _netdev,tls,iam 0 0

使用命名配置文件与 IAM 挂载

您可以使用位于 AWS CLI 凭证文件中的 IAM 凭证,通过 IAM 授权挂载文件~/.aws/credentials,或AmazonCLI 配置文件~/.aws/config. 如果未指定 "awsprofile",则使用“默认”配置文件。

要使用凭证文件通过 IAM 授权挂载到 Linux 实例,请使用tlsawsprofile, 和iam挂载选项,如下所示。

$ sudo mount -t efs -o tls,iam,awsprofile=namedprofile file-system-id efs-mount-point/

要使用凭证文件通过 IAM 授权自动挂载到 Linux 实例,请将以下行添加到/etc/fstab文件。

file-system-id:/ efs-mount-point efs _netdev,tls,iam,awsprofile=namedprofile 0 0

使用 EFS 访问点进行挂载

可以使用 EFS 访问点挂载 EFS 文件系统。要执行此操作,请使用 EFS 挂载帮助程序。

在使用访问点挂载文件系统时,除常规挂载选项外,挂载命令还包括 access-point-idtls 挂载选项。下面显示了一个示例。

$ sudo mount -t efs -o tls,accesspoint=access-point-id file-system-id efs-mount-point

要使用访问点自动挂载文件系统,请将以下行添加到 EC2 实例上的 /etc/fstab 文件中。

file-system-id efs-mount-point efs _netdev,tls,accesspoint=access-point-id 0 0

有关 EFS 访问点的更多信息,请参阅使用 Amazon EFS 访问点

使用 EFS 挂载帮助程序通过挂载到本地 Linux 客户端上Amazon Direct Connect和 VPN

使用连接到您的 Amazon VPC 时,可以将 Amazon EFS 文件系统挂载到本地数据中心服务器上。Amazon Direct Connect或 VPN。使用 amazon-efs-utils 挂载 Amazon EFS 文件系统还可以简化使用挂载帮助程序进行挂载的过程,并允许您启用传输中的数据加密。

要了解如何将 amazon-efs-utils 与一起使用Amazon Direct Connect和 VPN 以将 Amazon EFS 文件系统挂载到本地 Linux 客户端上,请参阅演练:在本地创建和挂载文件系统Amazon Direct ConnectVPN 和 VPN.

自动挂载您的 Amazon EFS 文件系统

您可以通过两种方式,将 Amazon EC2 实例配置为在 EFS 文件系统重新启动时自动挂载该文件系统:

  • 在使用启动实例向导创建新的 EC2 实例时。

  • 使用 EFS文件系统条目更新 EC2 的 /etc/fstab 文件。

这两种方法都使用 EFS 挂载帮助程序来挂载文件系统。挂载帮助程序是 amazon-efs-utils 工具集的一部分。

这些 amazon-efs-utils 工具可用于在 Amazon Linux 和 Amazon Linux 2 Amazon 系统映像 (AMI) 上安装。有关 amazon-efs-utils 的更多信息,请参阅 使用 amazon-efs-utils 工具。如果您正在使用其他 Linux 发行版,例如 Red Hat Enterprise Linux (RHEL),请手动构建并安装 amazon-efs-utils。有关更多信息,请参阅在其他 Linux 发行版上安装 Amazon EFS 客户端

注意

亚马逊 EFS 文件系统不支持在运行 macOS 大 Sur 的 Amazon EC2 Mac 实例上自动挂载。

将 EC2 实例配置为在实例启动时挂载 EFS 文件系统

使用 EC2 启动实例向导创建新的 Amazon EC2 Linux 实例时,可以将该实例配置为自动挂载您的 Amazon EFS 文件系统。EC2 实例会在第一次启动时自动挂载文件系统,并且在重新启动时也会自动挂载文件系统。

注意

Amazon EFS 文件系统不支持在实例启动时运行 macOS 大苏尔的 Amazon EC2 Mac 实例上挂载。

在执行此过程之前,请确保您已创建 Amazon EFS 文件系统。有关更多信息,请参阅 。第 1 步:创建您的 Amazon EFS 文件系统在 Amazon EFS 入门练习中。

注意

您不能将 Amazon EFS 与基于微软窗口的 Amazon EC2 实例一起使用。

在启动并连接到 Amazon EC2 实例之前,如果您还没有 key pair,则需要创建一个密钥对。按中的步骤操作。使用 Amazon EC2 进行设置中的适用于 Linux 实例的 Amazon EC2 用户指南创建 key pair。如果您已有一个密钥对,则可在此练习中使用该密钥对。

将 EC2 实例配置为在启动时自动挂载 EFS 文件系统

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 选择 Launch Instance

  3. In第 1 步:选择一个Amazon 系统映像(AMI),在列表顶部找到 Amazon Linux AMI,然后选择Select.

  4. In步骤 2: 选择一个实例类型中,选择后续:配置实例详细信息.

  5. In步骤 3: 配置实例详细信息,请提供以下信息:

    • 对于 Network (网络),为您装载的 EFS 文件系统所在的同一 VPC 选择条目。

    • 对于 Subnet (子网),在任何可用区中选择一个默认子网。

    • 对于 File system (文件系统),选择要装载的 EFS 文件系统。文件系统 ID 旁边显示的路径是 EC2 实例将使用的装载点,您可以更改此装载点。

    • Advanced Details (高级详细信息) 下,将自动生成 User data (用户数据),并包括挂载您在 File systems (文件系统) 下指定的 EFS 文件系统所需的命令。

  6. 选择 Next:添加存储.

  7. 选择 Next:添加标签.

  8. 为您的实例命名,然后选择后续:配置安全组.

  9. In步骤 6:配置安全组,设置分配安全组选择现有安全组. 选择默认安全组以确保它能够访问您的 EFS 文件系统。

    您不能使用该安全组通过安全外壳 (SSH) 访问您的 EC2 实例。对于通过 SSH 进行访问,您稍后可以编辑默认安全性并添加一个允许 SSH 的规则/新安全组。您可以使用以下设置:

    • 类型: SSH

    • 协议: TCP

    • 端口范围: 22

    • 源: 0.0.0.0.0.0.0.0.0.0.0.0.0.0.

  10. 选择 Review and Launch

  11. 选择 Launch

  12. 选中您创建的密钥对的复选框,然后选择启动实例

您的 EC2 实例现已配置为在启动或重新启动时装载 EFS 文件系统。

使用 /etc/fstab 自动挂载

要在 Amazon EC2 实例重启时自动重新挂载您的 Amazon EFS 文件系统目录,请使用文件/etc/fstab. /etc/fstab 文件包含有关文件系统的信息。命令mount -a(在实例启动期间运行),挂载/etc/fstab. 此过程使用 EFS 挂载帮助程序挂载需要安装在 EC2 实例上的文件系统。

注意

Amazon EFS 文件系统不支持使用/etc/fstab运行 macOS 大 Sur 的 Amazon EC2 EC2Mac 实例。

挂载帮助程序是 amazon-efs-utils 工具集的一部分,可用于在 Amazon Linux 和 Amazon Linux 2 Amazon 系统映像 (AMI) 上安装。有关在 Amazon Linux 或 Amazon Linux 2 AMI 上安装 amazon-efs-utils 的更多信息,请参阅手动安装亚马逊 EFS 客户端。如果您正在使用其他 Linux 发行版,例如 Red Hat Enterprise Linux (RHEL),请手动构建并安装 amazon-efs-utils。有关更多信息,请参阅在其他 Linux 发行版上安装 Amazon EFS 客户端

注意

在您可以更新/etc/fstab文件,请确保您已创建 Amazon EFS 文件系统。有关更多信息,请参阅第 1 步:创建您的 Amazon EFS 文件系统

更新 EC2 实例中的 /etc/fstab 文件

  1. 连接到 EC2 实例:

    • 要从运行 macOS 或 Linux 的计算机连接到您的实例,请为 SSH 命令指定 .pem 文件。要执行该操作,请使用 -i 选项和私有密钥路径。

    • 要从运行 Windows 的计算机连接到您的实例,可以使用 MindTerm 或 PuTTY。要使用 PuTTY,您需要安装它并将 .pem 文件转换为 .ppk 文件。

    有关详细信息,请参阅中的以下主题适用于 Linux 实例的 Amazon EC2 用户指南

  2. 在编辑器中打开 /etc/fstab 文件。

  3. 使用 IAM 授权或 EFS 访问点,自动挂载您的 EFS 文件系统:

    • 要使用 IAM 授权自动挂载到具有实例配置文件的 Amazon EC2 实例,请将以下行添加到/etc/fstab文件。

      file-system-id:/ efs-mount-point efs _netdev,noresvport,tls,iam 0 0
    • 要使用凭证文件通过 IAM 授权自动挂载到 Linux 实例,请将以下行添加到/etc/fstab文件。

      file-system-id:/ efs-mount-point efs _netdev,noresvport,tls,iam,awsprofile=namedprofile 0 0
    • 要使用 EFS 访问点自动挂载文件系统,请将以下行添加到 /etc/fstab 文件中。

      file-system-id efs-mount-point efs _netdev,noresvport,tls,accesspoint=access-point-id 0 0
    警告

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

    有关更多信息,请参阅 使用 IAM 授权挂载使用 EFS 访问点进行挂载

  4. 保存对文件所做的更改。

  5. 通过将带 'fake' 选项的 mount 命令与 'all''verbose' 选项结合使用来测试 fstab 条目。

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

您的 EC2 实例现已配置为每次重启时都挂载 EFS 文件系统。

注意

在某些情况下,无论挂载的 Amazon EFS 文件系统的状态如何,都可能需要启动您的 Amazon EC2 实例。在这些情况下,将 nofail 选项添加到 /etc/fstab 文件中的文件系统条目中。

您添加到 /etc/fstab 文件的代码行将执行以下操作。

字段 描述

file-system-id:/

Amazon EFS 文件系统的 ID。您可以从控制台中获取该 ID,也可以从 CLI 或Amazon开发工具包。

efs-mount-point

EFS 文件系统在 EC2 实例上的挂载点。

efs

文件系统的类型。在使用挂载帮助程序时,该类型始终为 efs

mount options

文件系统的挂载选项。这是一个逗号分隔列表,包含以下选项:

  • _netdev— 该选项向操作系统指示文件系统位于需要网络访问的设备上。该选项禁止实例挂载文件系统,直到在客户端上启用了网络。

  • noresvport— 告知 NFS 客户端在重新建立网络连接时,使用新的传输控制协议 (TCP) 源端口。这样做有助于确保 EFS 文件系统在网络恢复事件后具有不间断的可用性。

  • tls— 启用传输中数据加密。

  • iam— 使用此选项可以使用 IAM 授权挂载到具有实例配置文件的 Amazon EC2。使用 iam 挂载选项还需要使用 tls 选项。有关更多信息,请参阅使用 IAM 控制文件系统数据访问

  • awsprofile=namedprofile— 将该选项与iamtls选项以使用凭证文件通过 IAM 授权挂载到 Linux 实例。有关 EFS 访问点的更多信息,请参阅使用 IAM 控制文件系统数据访问

  • accesspoint=access-point-id— 将该选项与tls选项以使用 EFS 访问点进行挂载。有关 EFS 访问点的更多信息,请参阅使用 Amazon EFS 访问点

0

非零值表示应由 dump 备份文件系统。对于 EFS,该值应为 0

0

fsck 在启动时检查文件系统的顺序。对于 EFS 文件系统,该值应为0以指示fsck不应在启动时运行。

使用将 EFS 挂载到多个 EC2 实例Amazon Systems Manager

您可以远程安全地将 EFS 文件系统挂载到多个 Amazon EC2 实例,而无需使用Amazon Systems ManagerRun Command。有关 的更多信息Amazon Systems ManagerRun Command,请参阅Amazon Systems ManagerRun Command中的Amazon Systems Manager用户指南。使用此方法挂载 EFS 文件系统之前,需要以下先决条件:

  1. EC2 实例启动时使用包含AmazonElasticFileSystemsUtils权限策略。有关更多信息,请参阅第 1 步:使用所需的权限配置文件配置文件

  2. 版本 1.28.1 或更高版本的 Amazon EFS 客户端(亚马逊 EFS 实例包)已安装在 EC2 实例上。您可以使用AmazonSystems Manager 在您的实例上自动安装软件包。有关更多信息,请参阅第 2 步:配置状态管理器用于安装或更新 Amazon EFS 客户端的关联

使用控制台将多个 EFS 文件系统挂载到多个 EC2 实例

  1. 访问 https://console.aws.amazon.com/systems-manager/,打开 Amazon Systems Manager 控制台。

  2. 在导航窗格中,选择Run Command

  3. 选择 Run a command

  4. EnterAmazon-RunShellScript中的命令搜索字段。

  5. SelectAmazon-运行壳脚本.

  6. InCommand 参数输入要用于要装载的每个 EFS 文件系统的 mount 命令。例如:

    sudo mount -t efs -o tls fs-12345678:/ /mnt/efs sudo mount -t efs -o tls,accesspoint=fsap-12345678 fs-01233210 /mnt/efs

    有关使用 Amazon EFS 客户端使用 EFS 挂载命令的更多信息,请参阅使用 EFS 挂载帮助程序在 Amazon EC2 Linux 实例上挂载或者使用 EFS 挂载帮助程序在 Amazon EC2 Mac 实例上挂载.

  7. 选择目标Amazon Systems Manager要在其上运行命令的托管 EC2 实例。

  8. 进行任何其他您想要的设置。然后选择 。运行运行命令并挂载命令中指定的 EFS 文件系统。

    运行命令后,您可以在命令历史记录中查看其状态。

从另一个挂载 EFS 文件系统Amazon Web Services 账户或 VPC

您可以使用 EFS 挂载帮助程序,通过对 NFS 客户端和 EFS 访问点的 IAM 授权来挂载您的 Amazon EFS 文件系统。默认情况下,EFS 挂载帮助程序使用域名服务 (DNS) 来解析您的 EFS 挂载目标的 IP 地址。如果要从其他账户或 Virtual Private Cloud (VPC) 挂载文件系统,必须手动解析 EFS 挂载目标。

下面,您可以找到确定要用于您的 NFS 客户端的正确 EFS 挂载目标 IP 地址的说明。您还可以找到有关配置客户端以使用该 IP 地址挂载 EFS 文件系统的说明。

使用 IAM 或其他 VPC 的访问点进行装载

使用 VPC 对等连接或中转网关连接 VPC 时,即使 VPC 属于不同的账户,一个 VPC 中的 Amazon EC2 实例也可以访问另一个 VPC 中的 EFS 文件系统。

Prerequisites

在使用下面的过程之前,请执行以下步骤:

  • 安装亚马逊 EFS 客户端,该客户端是amazon-efs-utils安装 EFS 文件系统的计算实例上的实用程序集。您可以使用 EFS 挂载帮助程序,该帮助程序包含在amazon-efs-utils挂载文件系统。有关安装 amazon-efs-utils 的说明,请参阅使用 amazon-efs-utils 工具

  • 允许ec2:DescribeAvailabilityZones操作,用于您附加到实例的 IAM 角色。建议将Amazon管理的策略AmazonElasticFileSystemsUtils,以便为该实体提供必要的权限。

  • 当从另一个Amazon Web Services 账户,请更新文件系统资源策略以允许elasticfilesystem:DescribeMountTarget其他主要 ARN 的操作Amazon Web Services 账户. 例如:

    { "Id": "access-point-example03", "Statement": [ { "Sid": "access-point-statement-example03", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::555555555555"}, "Action": "elasticfilesystem:DescribeMountTargets", "Resource": "arn:aws:elasticfilesystem:us-east-2:111122223333:file-system/fs-12345678", } ] }

    有关 EFS 文件系统资源策略的更多信息,请参阅基于资源的策略.

  • 安装肉毒核心 在另一个 VPC 中装载文件系统时,EFS 客户端使用 botocore 检索装载目标 IP 地址时无法解析文件系统 DNS 名称。有关更多信息,请参阅 。安装 botocore在 efs-utils 自述文件中。

  • 设置 VPC 对等连接或 VPC 传输网关。

    可以使用 VPC 对等连接或 VPC 传输网关连接,连接客户端的 VPC 和您的 EFS 文件系统的 VPC。使用 VPC 对等连接或中转网关连接 VPC 时,即使 VPC 属于不同的账户,一个 VPC 中的 Amazon EC2 实例也可以访问另一个 VPC 中的 EFS 文件系统。

    中转网关 是网络中转中心,您可用它来互连 VPC 和本地网络。有关使用 VPC 传输网关的更多信息,请参阅中转网关入门中的Amazon VPC 中转网关指南.

    VPC 对等连接 是两个 VPC 之间的网络连接。使用此类连接,您能够使用专用 Internet 协议版本 4 (IPv4) 或 Internet 协议版本 6 (IPv6) 地址,在它们之间路由流量。您可以使用 VPC 对等来连接位于Amazon Web Services 区域或介于Amazon Web Services 区域。有关 VPC 对等的更多信息,请参阅什么是 VPC 对等?中的Amazon VPC Peering Guide.

为了确保您的文件系统的高可用性,我们建议您始终使用与 NFS 客户端位于相同可用区中的 EFS 挂载目标 IP 地址。如果要挂载其他账户中的 EFS 文件系统,请确保 NFS 客户端和 EFS 挂载目标位于相同的可用区 ID 中。此要求适用,因为可用区名称在不同账户之间可能会有所不同。

使用 IAM 或访问点在其他 VPC 中挂载 EFS 文件系统

  1. 连接到 EC2 实例:

    • 要从运行 macOS 或 Linux 的计算机连接到您的实例,请为 SSH 命令指定 .pem 文件。要执行该操作,请使用 -i 选项和私有密钥路径。

    • 要从运行 Windows 的计算机连接到您的实例,可以使用 MindTerm 或 PuTTY。要使用 PuTTY,您需要安装它并将 .pem 文件转换为 .ppk 文件。

    有关详细信息,请参阅中的以下主题适用于 Linux 实例的 Amazon EC2 用户指南

  2. 使用以下命令创建用于挂载文件系统的目录。

    $ sudo mkdir /mnt/efs
  3. 要使用 IAM 授权来挂载文件系统,请使用以下命令:

    $ sudo mount -t efs -o tls,iam file-system-dns-name /mnt/efs/

    有关将 IAM 授权与 EFS 结合使用的更多信息,请参阅 使用 IAM 控制文件系统数据访问

    要使用 EFS 访问点挂载文件系统,请使用以下命令:

    $ sudo mount -t efs -o tls,accesspoint=access-point-id file-system-dns-name /mnt/efs/

    有关 EFS 访问点的更多信息,请参阅使用 Amazon EFS 访问点

将 Amazon EFS 文件系统从不同的Amazon Web Services 区域

如果您从另一个 VPC 挂载 EFS 文件系统,该 VPC 位于不同Amazon Web Services 区域而不是文件系统,则需要编辑efs-utils.conf文件。Inefs-utils.conf中,找到以下行:

#region = us-east-1

取消该行的注释,并替换文件系统所在区域的 ID 值(如果文件系统不在us-east-1.

从另一个挂载Amazon Web Services 账户同一 VPC 中的实例

使用共享 VPC,您可以挂载 Amazon EFS 文件系统,该文件系统由一个Amazon Web Services 账户来自 Amazon EC2 实例,这些实例由不同的Amazon Web Services 账户. 有关设置共享 VPC 的更多信息,请参阅使用共享 VPC中的Amazon VPC Peering Guide.

设置 VPC 共享之后,EC2 实例可以使用域名系统 (DNS) 名称解析或者 EFS 挂载帮助程序来挂载 EFS 文件系统。我们建议使用 EFS 挂载帮助程序来挂载 EFS 文件系统。