Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
如何挂载、卸载、自动挂载和在本地挂载 Amazon EFS 文件系统?
我想知道如何挂载、卸载、自动挂载和在本地挂载 Amazon Elastic File System (Amazon EFS) 文件系统。
解决方法
挂载文件系统
要挂载 EFS 文件系统,您可以安装 amazon-efs-utils 软件包。或者,从 Mankier 网站安装 nfs-utils 软件包。
使用 amazon-efs-utils
完成以下步骤:
-
要安装 amazon-efs-utils 软件包,请根据您的发行版运行以下命令之一:
Amazon Linux 1、Amazon Linux 2 和 Amazon Linux 2023$ sudo yum 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
如果您的发行版未提供 rust 或 cargo 软件包,或者提供 1.70 之前的版本,请使用 rustup 安装 rust 和 cargo:
'curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh . "$HOME/.cargo/env"
要构建和安装 RPM,请根据您的发行版运行以下命令之一:
openSUSE 或 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 控制台。
-
在导航窗格中,选择 File systems(文件系统)。
-
选择您的文件系统。
-
选择 Attach(附加)。
-
使用 SSH 或会话管理器(AWS Systems Manager 的一项功能)连接到实例。然后,运行以下命令:
$ 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
**注意:**请将示例值替换为您的值。
使用 nfs-utils
完成以下步骤:
-
要安装 nfs-utils 软件包,请根据您的发行版运行以下命令之一:
基于 RHEL 和基于 CentOS 的发行版$ sudo yum -y install nfs-utils
基于 Ubuntu 的发行版
$ sudo apt install nfs-common
-
打开 Amazon EFS 控制台。
-
在导航窗格中,选择 File systems(文件系统)。
-
选择您的文件系统。
-
选择 Attach(附加)。
-
使用 SSH 或会话管理器连接到实例,然后运行以下命令:
$ 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-DNS:/ ~/efs-mount-point
-or-
要使用 IP 地址进行挂载,请运行以下命令:$ sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-ip:/ ~/efs-mount-point
**注意:**请将示例值替换为您的值。
卸载文件系统
要卸载文件系统,请运行以下命令:
$ umount /mnt/efs
如果挂载点繁忙,请运行带有 -l 参数的 umount 命令:
$ umount -l /mnt/efs
使用 /etc/fstab 自动挂载文件系统
要在 /etc/fstab 中创建一个条目以便 Amazon EFS 挂载在重启时仍然存在,请运行以下命令:
# vim /etc/fstab
使用 amazon-efs-utils
fs-########:/ /mnt/efs efs _netdev,nofail,noresvport,tls,iam 0 0
使用 nfs-utils
在 fstab 中配置您的参数:
fs-########.efs.REGION.amazonaws.com:/ /mnt/efs nfs4 defaults,_netdev,nofail 0 0 # mount -a
有关使用挂载助手的挂载选项,请参阅自动挂载 EFS 文件系统。
**注意:**您可以使用与客户端 Amazon Elastic Compute Cloud (Amazon EC2) 不同的可用区中的挂载目标的 IP 地址进行挂载。这种挂载方法可能会产生跨可用区的数据传输费用并导致延迟。
使用启动向导在实例启动时挂载文件系统
当启动 Amazon EC2 实例时,您可以使用启动向导自动添加用户数据以挂载文件系统。
完成以下步骤:
- 打开 Amazon EC2 控制台。
- 选择 Launch instances(启动实例)。
- 选择亚马逊机器映像 (AMI) 和实例类型,然后选择 Next: Configure Instance Details(下一步:配置实例详细信息)。
- 为您的用例配置参数。确保为 EFS 挂载选择所需的虚拟私有云 (VPC) 和子网。
- 在 Configure instance(配置实例)页面的 File systems(文件系统)下,选择您的文件系统。文件系统 ID 旁边的路径是 EC2 实例使用的挂载点。您可以根据需要更改此路径。
要挂载文件系统,系统会在 Advanced details(高级详细信息)部分中自动生成用户数据:
-or-#cloud-config package_update: true package_upgrade: true runcmd: - yum install -y amazon-efs-utils - apt-get -y install amazon-efs-utils - yum install -y nfs-utils - apt-get -y install nfs-common - file_system_id_1=fs-0cae1679a766bcf49 - efs_mount_point_1=/mnt/efs/fs1 - mkdir -p "${efs_mount_point_1}" - test -f "/sbin/mount.efs" && printf "\n${file_system_id_1}:/ ${efs_mount_point_1} efs tls,_netdev\n" >> /etc/fstab || printf "\n${file_system_id_1}.efs.us-east-1.amazonaws.com:/ ${efs_mount_point_1} nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport,_netdev 0 0\n" >> /etc/fstab - test -f "/sbin/mount.efs" && grep -ozP 'client-info]\nsource' '/etc/amazon/efs/efs-utils.conf'; if [[ $? == 1 ]]; then printf "\n[client-info]\nsource=liw\n" >> /etc/amazon/efs/efs-utils.conf; fi; - retryCnt=15; waitTime=30; while true; do mount -a -t efs,nfs4 defaults; if [ $? = 0 ] || [ $retryCnt -lt 1 ]; then echo File system mounted successfully; break; fi; echo File system not available, retrying to mount.; ((retryCnt--)); sleep $waitTime; done;>
要在自定义 AMI 上挂载 Amazon EFS 文件系统或使用特定选项进行挂载,请运行以下命令以添加自定义用户数据:
基于 RHEL 和基于 CentOS 的发行版
基于 Ubuntu 的发行版#!/bin/bash sudo mkdir -p /mnt/efs sudo yum -y install nfs-utils
有关详细信息,请参阅在启动包含用户数据输入的 EC2 实例时运行命令。#!/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
- 启动实例。
在本地挂载文件系统
要在本地服务器上挂载 Amazon 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) $ mkdir ~/efs $ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-IP:/ ~/efs
有关详细信息,请参阅教程: 使用本地 Linux 客户端进行挂载。

相关内容
- AWS 官方已更新 1 年前