【问题标题】:Using same AWS EFS to share multiple directories使用同一个 AWS EFS 共享多个目录
【发布时间】:2019-07-29 19:26:24
【问题描述】:
我创建了一个文件系统 EFS 并安装在 /var/www/html/media 上的 EC2 实例上。我想使用相同的 EFS 文件系统来挂载另一个目录 /var/www/html/var。
这可能吗?
我愿意:
fs-296e0282.efs.us-west-2.amazonaws.com:/media /var/www/html/media nfs4 defaults
fs-296e0282.efs.us-west-2.amazonaws.com:/var /var/www/html/var nfs4 defaults
但这似乎不可能。
【问题讨论】:
标签:
amazon-web-services
amazon-efs
【解决方案1】:
文件挂载系统下可以挂载两个不同的目录。最初,为了访问您的 efs,只需使用命令在您的实例下挂载一个 EFS 根目录
Sudo mount -t efs fs-id:/ /home/efs
然后在 /home/efs 文件夹下创建子目录,例如让我们在 /home/efs 下有两个子目录,即 media 和 var
现在您可以通过在 /etc/ 下的 fstab 文件中添加以下内容,在 /var/www/html/media 和 /var/www/html/var 中挂载两个目录
fs-id:/media /var/www/html/media efs defaults,_netdev 0 0
fs-id:/var /var/www/html/var efs defaults,_netdev 0 0
然后重新启动您的实例。 /var/www/html/media 中的任何更改都会反映在 fs-id:/media 文件夹中,同样适用于 var 文件夹也希望这会有所帮助。
【解决方案2】:
您的 EFS id:fs-357f69c8
您想挂载到以下文件夹的 EC2 机器中
/efs
/var/www/html/data
/var/www/html/api/upload
/var/www/html/uploadetfiles
所以,首先,创建文件夹
sudo mkdir /efs
sudo mkdir /var/www/html/data
sudo mkdir /var/www/html/api/upload
sudo mkdir /var/www/html/uploadetfiles
对于在 EC2 中的挂载命令将是
sudo mount -t efs -o tls fs-357f69c8:/ /efs
sudo mount -t efs -o tls fs-357f69c8:/ /var/www/html/data
sudo mount -t efs -o tls fs-357f69c8:/ /var/www/html/api/upload
sudo mount -t efs -o tls fs-357f69c8:/ /var/www/html/uploadetfiles
注意:
你的机器应该安装了efs-utils
构建和安装 RPM:
sudo yum -y install git rpm-build make
sudo git clone https://github.com/aws/efs-utils
cd efs-utils
sudo make rpm
sudo yum -y install build/amazon-efs-utils*rpm
构建和安装 Debian 软件包:
sudo apt-get update
sudo apt-get -y install git binutils
sudo git clone https://github.com/aws/efs-utils
cd efs-utils
sudo ./build-deb.sh
sudo apt-get -y install ./build/amazon-efs-utils*deb
希望这会奏效