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

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

使用 EFS 挂载帮助程序自动重新挂载 EFS 文件系统

使用 EFS 挂载帮助程序将 EC2 Linux 实例上的 /etc/fstab 配置为在实例重新启动时自动重新挂载 EFS 文件系统。

创建 EC2 实例时附加 EFS 文件系统以启用重启时自动挂载

此方法使用 EFS 挂载帮助程序挂载文件系统,以更新 EC2 实例上的 /etc/fstab 文件。挂载帮助程序是 amazon-efs-utils 工具集的一部分。

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

注意

Amazon EFS 文件系统不支持在实例启动时在运行 macOS Big Sur 或 Monterey 的 Amazon EC2 Mac 实例上挂载。

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

注意

不能将 Amazon EFS 与基于 Microsoft Windows 的 Amazon EC2 实例结合使用。

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

将 EC2 实例配置为在启动时自动挂载 EFS 文件系统
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 选择 Launch Instance(启动实例)

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

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

  5. Step 3: Configure Instance Details (步骤 3:配置实例详细信息) 中,请提供以下信息:

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

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

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

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

  6. 选择下一步:添加存储

  7. 选择 Next: Add Tags

  8. 命名您的实例,然后选择下一步:配置安全组

  9. Step 6: Configure Security Group (步骤 6:配置安全组) 中,将 Assign a security group (分配安全组) 设置为 Select an existing security group (选择现有安全组)。选择默认安全组以确保它能够访问您的 EFS 文件系统。

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

    • 类型:SSH

    • 协议:TCP

    • 端口范围:22

    • 源:任何位置 0.0.0.0/0

  10. 选择审核并启动

  11. 选择启动

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

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

/etc/fstab 与 EFS 挂载帮助程序结合使用,以自动重新挂载 EFS 文件系统

/etc/fstab 文件包含有关文件系统的信息。命令 mount -a 在实例启动期间运行,用于挂载 /etc/fstab 中列出的所有文件系统。在此过程中,您将在 EC2 Linux 实例上手动更新 /etc/fstab,以便该实例在实例重启时使用 EFS 挂载帮助程序自动重新挂载 EFS 文件系统。

注意

Amazon EFS 文件系统不支持在运行 macOS Big Sur 或 Monterey 的 Amazon EC2 Mac 实例上使用 /etc/fstab 和 EFS 挂载帮助程序自动挂载。相反,可以将 NFS 与 /etc/fstab 结合使用,在运行 macOS Big Sur 和 Monterey 的 EC2 Mac 实例上自动挂载文件系统。

此方法使用 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 客户端

先决条件

在成功实施此过程之前,需要满足以下要求:

更新 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 接入点的自动挂载:

    • 要使用 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,iam,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 SDK 中获取此 ID。

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 不应在启动时运行。