使用 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 文件系统遇到问题,可以与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进程和一个名为的监督进程amazon-efs-mount-watchdog。该amazon-efs-mount-watchdog过程监控 TLS 装载的运行状况,并在首次通过 TLS 装载 EFS 文件系统时自动启动。此过程由upstartsystemd根据您的 Linux 发行版和 macOS Big Sur 发行版launchd进行管理

Stunnel是一个开源多用途网络中继。客户端stunnel进程在本地端口上侦听入站流量,并且 mount Helper 将 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。如果 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 费用。可能还会面临更高的文件系统操作延迟。

  • 对于从不同的可用区装载具有单区存储类的文件系统:

    • 文件系统可用区的名称 — 如果您使用与 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 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 中。还必须将其配置为使用提供的 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 Manager run command。在使用此方法装载 EFS 文件系统之前,需要满足以下先决条件:

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

  2. Amazon EFS 客户端(amazon-efs-utils 软件包)的 1.28.1 或更高版本安装在 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 文件系统

您可以使用适用于 NFS 客户端的 IAM 授权来挂载您的 Amazon EFS 文件系统,也可以使用 EFS 挂载帮助器安装 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 文件系统资源策略的更多信息,请参阅Amazon 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 文件。

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

如果您从与文件系统不同的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 Web Services 账户从属于另一个 VPC 的 Amazon EC2 实例中挂载一个拥有的 Amazon EFS 文件系统Amazon Web Services 账户。有关设置共享 VPC 的更多信息,请参阅 Amazon VPC 对等连接指南中的使用共享 VPC

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