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

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

使用 EFS 挂载助手挂载 EFS 文件系统

EFS 挂载帮助程序帮助您在运行中列出的支持分配版的 EC2 Linux 和 Mac 实例上挂载您的 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 Big Sur 发行

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 的 EC2 Mac 实例上安装时使用

  • rsize=1048576

  • wsize=1048576

  • hard

  • timeo=600

  • retrans=2

  • noresvport

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

获取支持日志

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

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

注意

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 装载目标— 您可以在虚拟私有云 (VPC) 中创建装载目标。如果您使用服务推荐的设置在控制台中创建文件系统,则会在Amazon Web Services 区域该文件系统在里面。有关创建挂载目标的说明,请参阅创建和管理装载目标.

    注意

    在创建挂载目标后,我们建议您等待 90 秒,然后再挂载您的文件系统。此等待可以在中完全传播 DNS 记录Amazon Web Services 区域文件系统位于哪里。

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

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

    • 文件系统的可用区的名称— 如果您使用位于与 EC2 实例不同的可用区中的单个区域存储类装载 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。

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

  • 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.

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

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

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

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

  2. EC2 实例上安装了版本 1.28.1 或更高版本的 Amazon EFS 客户端(Amazon-efs-utils 软件包)。您可以使用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-runshellScript.

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

    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 EC2Linux 实例上进行挂载要么使用 EFS 挂载帮助程序在 Amazon EC2 EC2Mac 实例上进行挂载.

  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 文件系统。

先决条件

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

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

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

  • 从另一个安装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 文件系统资源策略的更多信息,请参阅。基于资源的策略.

  • 安装 botocore。当在另一个 VPC 中装载文件系统时无法解析文件系统 DNS 名称时,EFS 客户端使用 botocore 来检索挂载目标 IP 地址。有关更多信息,请参阅 。安装 botocore中的amazon-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 对等来连接位于相同的 VPCAmazon 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 位于另一个 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 文件系统。