使用 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 文件系统出现问题,可以与Support 人员共享这些日志。Amazon有关挂载文件系统的更多信息,请参阅挂载 EFS 文件系统

注意

亚马逊 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,则装载助手会将其解析为挂载目标elastic network interface (ENI) 的本地 IP 地址,而无需调用外部资源。

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

您可以在 Amazon EFS 控制台中查找所有这些属性的值。文件系统 DNS 名称可在 “连接” 屏幕中找到。

当将传输中数据的加密声明为 Amazon EFS 文件系统的挂载选项时,装载助手会初始化一个客户端stunnel进程和一个名为 Supervisor 的进程amazon-efs-mount-watchdog。该amazon-efs-mount-watchdog进程监控 TLS 挂载的运行状况,并在首次通过 TLS 挂载 EFS 文件系统时自动启动。此过程由您的 Linux 发行版upstartsystemd取决于您的 Linux 发行版管理,并由launchd macOS Big Sur 发行版管理

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

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

亚马逊 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 文件系统的内置日志记录。您可以与SuAmazon pport 人员共享这些日志以进行故障排除。

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

注意

看门狗进程确保每个坐骑的 stunnel 进程都在运行,并在卸载 Amazon EFS 文件系统时停止眩晕。如果 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 地址。

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

    注意

    在创建挂载目标后,我们建议您等待 90 秒,然后再挂载您的文件系统。这种等待可让 DNS 记录在文件系统Amazon Web Services 区域所在的位置完全传播。

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

  • 要从不同的可用区装载具有 One Zone 存储类别的文件系统,请执行以下操作:

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

    • 挂载目标 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) 中。还必须将其配置为使用提供的 DNS 服务器Amazon。有关亚马逊 DNS 服务器的信息,请参阅亚马逊 VPC 用户指南中的 DHCP 选项集

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

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

使用以下方法将 EFS 安装到多个 EC2 实例Amazon Systems Manager

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

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

  2. 版本 1.28.1 或更高版本的 Amazon EFS 客户端(amazon-efs-utils 软件包)安装在 EC2 实例上。您可以使用Amazon Systems 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. 在 “命令” 搜索字段Amazon-RunShellScript中输入。

  5. 选择 Amazon-RunShellScript

  6. 命令参数中,输入要用于要装载的每个 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 Linux 实例上挂载使用 EFS 挂载助手在 Amazon EC2 Mac 实例上挂载

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

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

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

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

您可以使用 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 中的 Amazon EC2 实例可以访问另一个 VPC 中的 EFS 文件系统,即使 VPC 属于不同的账户。

先决条件

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

  • 在装载 EFS 文件系统的计算实例上安装 Amazon EFS 客户端,这是一amazon-efs-utils组实用程序的一部分。您可以使用中amazon-efs-utils包含的 EFS 挂载助手来挂载文件系统。有关安装 amazon-efs-utils 的说明,请参阅使用 amazon-efs-utils 工具

  • 允许在ec2:DescribeAvailabilityZones IAM 策略中针对您附加到实例的 IAM 角色执行操作。我们建议您将Amazon托管策略附加AmazonElasticFileSystemsUtils到 IAM 实体,为该实体提供必要的权限。

  • 从另一个文件系统装载时Amazon Web Services 账户,更新文件系统资源策略以允许对其他主体 ARNelasticfilesystem:DescribeMountTarget 执行操作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 地址。有关更多信息,请参阅在amazon-efs-utils自述文件中安装 botocor e。

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

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

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

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

为确保文件系统的高可用性,我们建议您始终使用与 NFS 客户端位于同一可用区中的 EFS 挂载目标 IP 地址。如果您要挂载另一个账户中的 EFS 文件系统,请确保 NFS 客户端和 EFS 装载目标位于相同的可用区 ID 中。此要求适用,因为AZ名称可能因账户而异。

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

  1. 连接到 EC2 实例:

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

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

    有关更多信息,请参阅适用于 Linx 实例的 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 区域

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

#region = us-east-1

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

从同一 VPCAmazon Web Services 账户 中的另一个挂载

使用共享 VPC,您可以挂载一个 Amazon EFS 文件系统,该文件系统Amazon Web Services 账户由另一个 Amazon EC2 实例中的一个实例拥有Amazon Web Services 账户。有关设置共享 VPC 的更多信息,请参阅 Amazon VPC 对等指南中的使用共享 VPC

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