我创建了一个EC2实例和一个EFS,并且能够在该实例上正确安装EFS。
如果服务器重新引导,我需要自动安装。
根据documentation,我在/etc/fstab
fs-xxxxxxxx:/ /mnt/efs efs defaults,_netdev 0 0
使用EFS文件系统ID代替xxxxxxxx
但是当我重新启动服务器时,EFS没有挂载,我保存以重新挂载
我该怎么办?还是我想念东西
答案 0 :(得分:5)
我将在此处发布更详细的解决方案,因为该线程似乎显示在搜索引擎相关查询的顶部附近。
有两种安装Amazon EFS的方法:“ Amazon EFS安装帮助器”( amazon-efs-utils )和“ NFS客户端”( nfs-utils )
以下示例显示了如何使用每种方法手动和自动安装。在使用之前,将文本 [value] 替换为您自己的值。
===============
要手动使用“ Amazon EFS挂载帮助器”进行挂载,请发出以下命令格式:
sudo mount -t efs [fs-XXXXXXXX]:/ /path/to/mount/dir
=====
要自动使用“ Amazon EFS挂载助手”进行挂载,请将以下行插入/ etc / fstab
[fs-XXXXXXXX]:/ /path/to/mount/dir efs defaults,_netdev 0 0
=====
要手动安装“ NFS客户端”,请发出以下两种命令格式之一:
在单击以在EFS Web控制台下查看有问题的弹性文件系统ID时,请使用“ Amazon EC2安装指令(来自本地VPC)”中给出的命令指令。
sudo mount -t nfs4 -o nfsvers=4.1,rsize=XXXXXXX,wsize=XXXXXXX,hard,timeo=XXX,retrans=X,noresvport [fs-XXXXXXXX].efs.[REGION].amazonaws.com:/ /path/to/mount/dir
OR
sudo mount -t nfs4 -o defaults,_netdev [fs-XXXXXXXX].efs.[REGION].amazonaws.com:/ /path/to/mount/dir
=====
要自动安装“ NFS客户端”,请将以下行插入/ etc / fstab
[fs-XXXXXXXX].efs.[REGION].amazonaws.com:/ /path/to/mount/dir nfs4 defaults,_netdev 0 0
===============
鉴于上述示例格式,您注意到问题了吗?
您考虑,您已经安装了“ Amazon EFS挂载帮助器”,但是根据您在第一条评论回复中发布的手动挂载命令格式(而不是开头的帖子),您实际上只有“ NFS”客户”安装在您的系统上。您正在/ etc / fstab中使用“ Amazon EFS挂载帮助器”格式自动挂载,但是对您有用的手动挂载命令是“ NFS客户端”格式。由于您的系统未安装“ Amazon EFS挂载助手”,因此它无法理解/ etc / fstab中的自动挂载格式,因此自动挂载对您不起作用。
您上面发布的对您有用的手动安装命令仅适用于“ NFS客户端”,而不适用于“ Amazon EFS安装帮助器”。
mount -t nfs4 -o nfsvers = 4.1 ...
请注意,上面的-t参数是nfs4
,它是“ NFS客户端”的格式。如果您使用的是“ Amazon EFS挂载助手”,则-t参数应为efs
。
要解决此问题,您可以使用Amazon EFS挂载助手( amazon-efs-utils )或NFS客户端( nfs-utils ),但是命令格式(在CLI或/ etc / fstab中),并且所使用的安装客户端应保持一致。
换句话说:
CLI和/ etc / fstab中的“ Amazon EFS挂载助手” <=> efs
“ NFS客户端” <=> nfs4
===============
安装客户端软件的安装说明:
=====
如果要使用“ Amazon EFS挂载帮助器”,请按照以下针对Amazon Linux和其他发行版的安装说明进行操作:
https://docs.aws.amazon.com/efs/latest/ug/using-amazon-efs-utils.html
=====
如果要使用“ NFS客户端”,请在EC2实例上使用以下安装说明:
在Red Hat Enterprise Linux或SUSE Linux实例(包括Amazon Linux)上,使用以下命令:
sudo yum install -y nfs-utils
在Ubuntu实例上,使用以下命令:
sudo apt-get install nfs-common
=====
一旦安装了安装客户端软件,请使用上面发布的相应安装说明。
答案 1 :(得分:0)
为了使用efs文件系统类型,我相信您需要安装amazon-efs-utils软件包。这将安装其他依赖项。
答案 2 :(得分:0)
要使用NFS4解决此问题,请按照以下说明进行操作:
在您的AWS账户上,注意以下事项:
1)转到EFS管理屏幕,您应该在EFS_WHATEVER ...旁边有一个小三角形,单击向下以展开。
2)注意,在屏幕中间有一个“ DNS名称”,它会显示类似“ fs-1234567c.efs.us-west-1.amazonaws.com”的内容,请注意,是您稍后将使用的安装点。
3)默认情况下,如果您刚刚创建了新实例,则必须允许服务器看到它,由于防火墙阻止了您的连接,因此尝试连接将冻结。允许向下滚动直到看到安全组,这就像sg-abcdef
4)进入EC2服务器,选择要其访问EFS的服务器,然后单击其“安全组”,它将带您进入安全组管理屏幕,记下其安全组ID(这是sg-12345)
4)现在,清除VPC管理屏幕的筛选器以查看所有SG ...
5)输入您的EFS安全组(即sg-abcdef),然后单击搜索按钮,这将弹出EFS ACL
6)单击“入站规则”->“编辑”。
7)单击“添加”,然后从列表中选择“ EFS”,输入服务器的SG(即sg-12345),并根据需要将其描述为“服务器XXX访问权限”。
8)现在服务器应该可以看到EFS挂载了,
9)进入您的服务器并通过以ROOT身份运行来安装必要的组件:
apt-get install nfs-common
10)现在,要测试MOUNT,请创建一个新目录...类似于:mkdir / mnt / heider
11)使用以下命令挂载FS:
mount -t nfs4 -o nfsvers = 4.1,rsize = 1048576,wsize = 1048576,hard,timeo = 600,retrans = 2,noresvport fs-1234567c.efs.us-west-1.amazonaws.com:/ / mnt / heider
请注意,如上所述,您的fs-12345c .....来自您的DNS名称。
12)如果这项工作很好,请转到下一步,否则请修改以上内容以查看是否遗漏了任何内容。
13)现在要自动安装它,您需要:
14)编辑/ etc / fstab
15)添加以下内容:
fs-1234567c.efs.us-west-1.amazonaws.com:/ / mnt / heider nfs4默认值,_netdev 0 0
16)保存文件并退出
17)在Linux命令shell中输入: 挂载-a
这将测试安装,如果安装成功,那么重新启动会自动安装。
18)这将自动安装。
19)重新启动以进行测试,所有内容均应存在。
我希望这会有所帮助。
答案 3 :(得分:-1)
遇到此问题的任何人
代替
masterseq
使用
fs-xxxxxxxx:/ /mnt/efs efs defaults,_netdev 0 0
这对我来说很好,它会自动挂载在新创建的实例上