挂载、卸载、自动挂载和本地挂载我的 EFS 文件系统的基本步骤是什么?

4 分钟阅读
0

挂载、卸载、自动挂载和本地挂载我的 Amazon Elastic File System(Amazon EFS)文件系统的基本步骤是什么?

解决方法

要挂载 Amazon EFS 文件系统,您可以安装 nfs-utils 程序包或 efs-utils 程序包

使用 efs-utils 工具挂载 EFS

1.    运行以下命令以安装 efs-utils 程序包:

Amazon Linux 或 Amazon Linux 2

$ sudo yum install -y amazon-efs-utils

基于 Ubuntu 和 Debian 的发行版

$ sudo apt-get -y install ./build/amazon-efs-utils*deb./build-deb.sh
$ cd /path/to/efs-utils
$ git clone https://github.com/aws/efs-utils
$ sudo apt-get -y install git binutils
$ sudo apt-get update

其他 Linux 发行版

$ sudo yum -y install git
$ sudo yum -y install rpm-build
$ git clone https://github.com/aws/efs-utils
$ cd /path/efs-utils
$ sudo yum -y install make
$ sudo yum -y install rpm-build
$ sudo make rpm
$ sudo yum -y install ./build/amazon-efs-utils*rpm

2.    安装 efs-utils 程序包后,打开 EFS 控制台

3.    选择 File systems(文件系统)。

4.    选择要挂载的文件系统。

5.    选择 Attach(附加)。

6.    复制 using the EFS mount helper(使用 EFS 挂载助手)下面的命令。

7.    通过 SSH 或 AWS Systems Manager 会话管理器连接到实例,然后运行您在步骤 6 中复制的命令:

$ sudo mkdir -p /mnt/efs
$ sudo mount -t efs -o tls fs-12345678:/ /mnt/efs
$ sudo mount -t efs -o tls,accesspoint=fsap-12345678 fs-01233210 /mnt/efs

**注意:**根据需要通过替换文件系统 ID、挂载点等来编辑前面的命令。

使用 NFS 客户端挂载 EFS

1.    运行以下命令以安装 nfs-utils 程序包:

基于 RHEL 和 CentOS 的发行版

$ sudo yum -y install nfs-utils

基于 Ubuntu 的发行版

$ sudo apt install nfs-common

2.    安装 nfs-utils 程序包后,导航到 EFS 控制台

3.    选择 File systems(文件系统)。

4.    选择要挂载的文件系统。

5.    选择 Attach(附加)。

6.    复制 using the NFS mount helper(使用 NFS 挂载助手)下面的命令。

7.    通过 SSH 或会话管理器连接到实例,然后运行您在步骤 6 中复制的命令:

$ 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

-或者-

运行以下命令以使用 IP 地址进行挂载:

$ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-ip:/  ~/efs-mount-point

**注意:**根据需要通过替换文件系统 ID、挂载点、DNS、IP 地址等来编辑前面的命令。

卸载 EFS 文件系统

运行以下命令以卸载文件系统:

$ umount /mnt/efs

如果挂载点正忙,则在 umount 命令中使用 -l 参数:

$ umount -l /mnt/efs

使用 /etc/fstab 自动挂载文件系统

运行以下命令在 /etc/fstab 中创建一个条目,以便 EFS 挂载在重启时仍然存在:

# vim /etc/fstab

使用 efs-utils

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

使用 NFS 客户端

根据配置的需要修改 fstab 中的参数。

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

有关使用挂载助手的各种挂载选项,请参阅使用 /etc/fstab 和 EFS 挂载助手自动挂载 EFS

**注意:**您可以使用与客户端(Amazon Elastic Compute Cloud(Amazon EC2))不同的可用区中的挂载目标的 IP 地址,挂载文件系统。执行此操作时,请考虑跨可用区数据传输费用和延迟等因素。

使用启动向导在实例启动时挂载 EFS

启动 EC2 实例时,您可以使用启动向导自动添加用于挂载 EFS 的用户数据。

1.    打开 EC2 控制台

2.    选择 Launch instances(启动实例)。

3.    选择 AMI 和实例类型,然后选择 Next: Configure Instance Details(下一步:配置实例详细信息)。

4.    根据您的要求配置各种参数。确保为 EFS 挂载选择所需的 VPC 和子网。

5.    在 Configure instance(配置实例)页面的 File systems(文件系统)下,选择要挂载的 EFS 文件系统。文件系统 ID 旁边显示的路径是 EC2 实例将使用的挂载点。如果需要,您可以更改此路径。在 Advanced details(高级详细信息)部分中自动生成用于挂载 EFS 的用户数据:

#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 上或使用特定选项挂载 EFS,请使用 Advanced details(高级详细信息)部分中的所需命令添加自定义用户数据。有关更多信息,请参阅启动时在 Linux 实例上运行命令

基于 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 nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-ip:/  /mnt/efs

6.    启动实例。

在本地挂载 EFS

要在本地服务器上挂载 EFS,EFS 和本地服务器之间必须存在连接。您可以使用 AWS Direct Connect 和 VPN 来建立这种连接。

在本地服务器和 EFS 的 VPC 之间建立连接后,运行以下命令以安装 NFS 客户端并挂载 EFS:

$ 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

有关更多信息,请参阅通过 AWS Direct Connect 和 VPN 使用 EFS 挂载助手在您的本地 Linux 客户端上挂载


AWS 官方
AWS 官方已更新 2 年前