跳至内容

如何挂载或卸载 Amazon EFS 文件系统?

4 分钟阅读
0

我想挂载、自动挂载 Amazon Elastic File System (Amazon EFS) 文件系统,或执行 Amazon Elastic File System (Amazon EFS) 文件系统的本地挂载。或者,我想卸载 EFS 文件系统。

解决方法

注意: 要挂载您的 EFS 文件系统,请使用 Amazon EFS 客户端 amazon-efs-utils 或 NFS 实用程序包 nfs-utils。有关 NFS 实用程序包的信息,请参阅 Mankier 网站上的 Package nfs-utils(nfs-utils 软件包)。

使用 Amazon EFS 客户端挂载 Amazon EFS 文件系统

为您的发行版安装 Amazon EFS 客户端

要安装 amazon-efs-utils,请根据您的发行版运行以下命令之一:

Amazon Linux 1、Amazon Linux 2 和 Amazon Linux 2023 (AL2023):

sudo yum install -y amazon-efs-utils

没有 yum 的 AL2023 亚马逊机器映像 (AMI):

sudo dnf install -y amazon-efs-utils

Ubuntu 和 Debian:

sudo apt-get update
sudo apt-get -y install git binutils rustc cargo pkg-config libssl-dev
git clone https://github.com/aws/efs-utils
cd efs-utils
./build-deb.sh
sudo apt-get -y install ./build/amazon-efs-utils*deb

注意: 一些 Ubuntu 和 Debian 发行版的软件包存储库中不包含 rustcargo,或者可能包含 1.70 之前的版本。如果 apt-get install 命令因为 Rust 工具链缺失或过时而失败,则在运行 build-deb.sh 之前运行以下命令:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
. "$HOME/.cargo/env"

OpenSUSE 或 SUSE Linux Enterprise Server (SLES):

sudo zypper refresh
sudo zypper install -y git rpm-build make rust cargo openssl-devel
git clone https://github.com/aws/efs-utils
cd efs-utils
make rpm
sudo zypper --no-gpg-checks install -y build/amazon-efs-utils*rpm

所有其他发行版:

sudo yum -y install git rpm-build make rust cargo openssl-devel
git clone https://github.com/aws/efs-utils
cd efs-utils
make rpm
sudo yum -y install build/amazon-efs-utils*rpm

将您的 Amazon EFS 文件系统连接到您的 Amazon EC2 实例

完成以下步骤:

  1. 打开 Amazon EFS 控制台
  2. 在导航窗格中,选择 File systems(文件系统)。
  3. 选择您的 EFS 文件系统。
  4. 要查看 Mount(挂载)命令,请选择 Attach(连接)。
  5. 使用 SSH 或会话管理器(AWS Systems Manager 的一项功能)连接到您的 Amazon Elastic Compute Cloud (Amazon EC2) 实例。
  6. 要创建挂载点目录并将 EFS 文件系统挂载到这些目录中,请运行以下命令:
    sudo mkdir -p /mnt/efs
    sudo mkdir -p /mnt/efs-ap
    sudo mount -t efs -o tls fs-12345678:/ /mnt/efs
    sudo mount -t efs -o tls,accesspoint=fsap-12345678 fs-01233210 /mnt/efs-ap
    注意:fs-12345678fs-01233210 替换为您的 EFS 文件系统 ID。将 fsap-12345678 替换为您的 EFS 接入点 ID。

使用 NFS 实用程序包挂载 Amazon EFS 文件系统

为您的发行版安装 NFS 实用程序包

要安装 nfs-utils 软件包,请根据您的发行版运行以下命令之一:

RHEL 和 CentOS:

sudo yum -y install nfs-utils

不包含 yum 的 Linux 捆绑包:

sudo dnf install -y nfs-utils

Ubuntu:

sudo apt install nfs-common

将您的 Amazon EFS 文件系统连接到您的 Amazon EC2 实例

  1. 打开 Amazon EFS 控制台
  2. 在导航窗格中,选择 File systems(文件系统)。
  3. 选择您的 EFS 文件系统。
  4. 要查看 Mount(挂载)命令,请选择 Attach(连接)。
  5. 使用 SSH 或会话管理器连接到您的 EC2 实例。
  6. 要将 EFS 文件系统挂载到本地目录,请运行以下命令:
    sudo mkdir -p /mnt/efs  #creating the efs-mount-point
    sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-DNS:/   /mnt/efs
    注意:mount-target-DNS 替换为虚拟私有云 (VPC) 中 EFS 挂载目标的 DNS 名称。
    或者,要使用 IP 地址挂载文件系统,请运行以下命令:
    sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-ip:/  /mnt/efs
    注意:mount-target-ip 替换为您的 VPC 中 EFS 挂载目标的 IP 地址。

自动挂载 Amazon EFS 文件系统

您可以为正在运行的或新的 EC2 实例挂载 EFS 文件系统。

使用正在运行的 EC2 实例

如果您已有一个正在运行的 EC2 实例,请使用 /etc/fstab 来自动挂载您的 EFS 文件系统。

完成以下步骤:

  1. 要启动 Vim 文本编辑器,请运行以下命令:

    vim /etc/fstab
  2. 要在启动时自动挂载 EFS 文件系统,请根据您的配置运行 efs 类型条目或 nfs4 类型条目命令。
    对于 amazon-efs-utils 软件包,运行以下命令:

    fs-########:/ /mnt/efs efs _netdev,nofail,noresvport,tls,iam 0 0

    对于 nfs-utils 软件包,运行以下命令:

    fs-########.efs.REGION.amazonaws.com:/ /mnt/efs nfs4 defaults,_netdev,nofail 0 0

    注意:fs-######## 替换为您的 EFS 文件系统 ID。

  3. 要在不重启的情况下立即应用配置,请运行以下命令:

    mount -a

有关使用挂载助手的挂载选项,请参阅 Automatically mounting EFS file systems(自动挂载 EFS 文件系统)。

注意: 要挂载您的 EFS 文件系统,您可以使用与客户端实例不同的可用区中的挂载目标的 IP 地址。这种挂载方法可能会产生跨可用区的数据传输费用并导致延迟。

**使用新的 EC2 实例 **

如果创建新的 EC2 实例,则使用 Amazon EC2 启动实例向导来自动挂载您的 EFS 文件系统。配置 EC2 实例时,请执行以下操作:

  • File systems(文件系统)下,选择您的文件系统。文件系统 ID 旁边的路径是 EC2 实例使用的挂载点。您可以根据需要更改此路径。
  • 请注意,AWS 会在 Advanced details(高级详细信息)部分自动生成用户数据,以挂载 EFS 文件系统。
  • 选择默认安全组以确保 EC2 实例可以访问您的 EFS 文件系统。要允许 SSH 访问,请编辑默认安全组。然后,添加一个规则,将其 Type(类型)设置为 SSH,将其 Protocol(协议)设置为 TCP,将其 Port Range(端口范围)设置为 22,将其 Source(源)设置为 Anywhere (0.0.0.0/0)

或者,要在自定义 AMI 上挂载 EFS 文件系统或使用特定选项进行挂载,请运行以下命令以添加自定义用户数据:

RHEL 和 CentOS:

#!/bin/bash
sudo mkdir -p /mnt/efs
sudo yum -y install nfs-utils

Ubuntu:

#!/bin/bash
sudo mkdir -p /mnt/efs
sudo apt install nfs-common
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-ip:/ /mnt/efs

然后,启动您的 EC2 实例。

在本地挂载 Amazon EFS 文件系统

要在本地服务器上挂载 EFS 文件系统,您必须在 Amazon EFS 和本地服务器之间建立连接。要在本地服务器和 Amazon Virtual Private Cloud (Amazon VPC) 之间建立连接,请使用 AWS Direct Connect 和 AWS VPN。然后,运行以下命令来安装 NFS 客户端并挂载您的文件系统:

sudo yum -y install nfs-utils (Red Hat Linux)
sudo apt-get -y install nfs-common (Ubuntu)
sudo mkdir -p /mnt/efs
sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-IP:/ /mnt/efs

卸载 Amazon EFS 文件系统

要卸载文件系统,请运行以下 umount 命令:

sudo umount /mnt/efs

如果挂载点繁忙,请运行以下带有 -l 参数的 umount 命令:

sudo umount -l /mnt/efs

相关信息

Package management tool(软件包管理工具)

Tutorial: Mounting with on-premises Linux clients(教程:使用本地 Linux 客户端进行挂载)

在启动包含用户数据输入的 EC2 实例时运行命令

AWS 官方已更新 6 个月前