使用腻子将其挂载在Red Hat EC2实例上时无法解析EFS的DNS名称

时间:2018-10-26 14:42:36

标签: amazon-web-services amazon-ec2 redhat efs

我遇到一个问题,无法使用DNS名称在Red Hat ec2实例上安装我的EFS。它引发错误 mount.nfs4:无法解析服务器us-east-1a.fs-c2aXXXX.efs.us-east-1.amazon aws.com:名称或服务未知

我正在按照AWS提供的说明进行操作。我尝试了以下两种方法来做,并且都抛出了相同的错误。我可以确认DNS名称正确。

第一---

mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-c2aXXXX.efs.us-east-1.amazonaws.com:/ efs

第二个-

mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 $(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone).fs-c2a7XXXX.efs.us-east-1.amazonaws.com:/ /efs

但是,如果我使用IP而不是DNS名称,则可以很好地安装它。所以下面的命令有效。

mount -t nfs4 -o 
nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport 10.38.X.XX:/ /efs

我可以使用IP代替DNS,只要我能够安装它就可以。

现在我的问题是,一旦我停止并再次启动该实例,我的坐骑就消失了。即使将以下条目添加到 / etc / fstab 中,它也不会自动挂载。

10.38.X.XXX:/ /efs efs defaults,_netdev 0 0

有人可以帮助我解决DNS问题或告诉我如何使用Ips自动挂载吗?

预先感谢盖兹。

3 个答案:

答案 0 :(得分:2)

要从命令行附加到EFS,请使用此模板作为模板,将fs-12345678替换为您的ID:

$ sudo mount -t efs fs-12345678:/ /efs

在您的/etc/fstab中使用它(不要在其后添加.efs.us-east-1.amazonaws.com

fs-12345678:/ /efs efs vers=4.1,rw,tls,_netdev,relatime,acl,nofail 0 0

fstab版本还打开了用于数据传输的加密。查阅资源以获取更多信息

资源

https://docs.aws.amazon.com/efs/latest/ug/mounting-fs.html https://docs.aws.amazon.com/efs/latest/ug/troubleshooting-efs-mounting.html#automount-fails

答案 1 :(得分:0)

新的 efs-utils dns 似乎存在问题。一种解决方法是挂载选定的可用区挂载目标 (this is probably still in development)。

为了解决这个问题,我尝试像这样在 /etc/hosts 文件中为 efs 添加条目;

[efs-az-private-ip] [efs hostname (e.g;fs-xx.efs.us-east-1.amazonaws.com)]

答案 2 :(得分:0)

如果你打开了所有的安全组,Network ACL,确认你在一个有效的AZ中,但仍然不能工作;可能是您创建的 VPC 没有启用 DNS 主机名,请确认您有此设置:

vpc

您帐户附带的默认 VPC 已启用此功能,其他人则没有。