先生们,我遵循这个优秀的职位的指示,但没有连接。 弹性文件系统(EFS)在AWS之外安装
我在一个Mesos集群中使用CoreOS。 我们有一个EFS连接到集群中的所有节点,以便他们可以共享数据,脚本等。我们有一个到AWS VPC的VPN隧道,所以我们可以从办公室连接。
我的用户想上传一些脚本到EFS,并得到计算结果,所以他们想在本地安装NFS。 所以我按照上面的文章推荐haproxy。
sudo docker run -d --net=host haproxy /bin/bash -c "echo -e 'listen fs-1e7bb658-us-east-1\n bind :2049\n mode tcp\n option tcplog\n timeout tunnel 300000\n server fs-1e7bb658-us-east-1a us-east-1a.fs-1e7bb658.efs.us-east-1.amazonaws.com:2049 check inter 60000 fastinter 15000 downinter 5000' > /haproxy.cfg && haproxy -f /haproxy.cfg"
configuration是这样的情况下,它不明确:
listen fs-1e7bb658-us-east-1 bind :2049 mode tcp option tcplog timeout tunnel 300000 server fs-1e7bb658-us-east-1a us-east-1a.fs-1e7bb658.efs.us-east-1.amazonaws.com:2049 check inter 60000 fastinter 15000 downinter 5000
在上面提到的主题中提出了一个通向EFS的haproxy。 我知道它正在工作,因为我可以挂载EFS使用Haproxy IP到群集节点(即/testing)中的第二个文件夹,当我写一个文件/testing我可以看到它在/共享文件夹中的所有节点。 例如:
sudo mount 100.100.100.68:/ /testing # Mount using haproxy echo "testing123!" > /testing/testing.txt # write to a file cat /shared/testing.txt # get from any node in the cluster >>> testing123!
所以问题是,当我想从OSX挂载时,我得到:
grodriguez:/ Guimo$ sudo mount 100.100.100.68:/ /sharedfiles mount_nfs: can't mount / from 100.100.100.68 onto /sharedfiles: RPC prog. not avail
我知道HaProxy正在听,因为我可以从OSX做到:
grodriguez:/ Guimo$ telnet 100.100.100.68 2049 Trying 100.100.100.68... Connected to 100.100.100.68. Escape character is '^]'.
所以它使用telnet连接到服务,但不会使用nfs连接。
安全组是相当自由的,除此之外,如果它不工作,我不会使用telnet连接。 所以这个服务在那个港口工作。
我读我可以尝试寻找mountd和nfs服务,但没有。 也许EFS正在隐藏它们。 也许这就是为什么OSX抱怨缺less的服务。
grodriguez:/ Guimo$ rpcinfo -p 100.100.100.68 program vers proto port 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper 100024 1 udp 45358 status 100024 1 tcp 60755 status 100021 1 udp 43439 nlockmgr 100021 3 udp 43439 nlockmgr 100021 4 udp 43439 nlockmgr 100021 1 tcp 34893 nlockmgr 100021 3 tcp 34893 nlockmgr 100021 4 tcp 34893 nlockmgr
但是,如果隧道不起作用,为什么代理能成功连接?
BTW。 我也尝试了AWS的方式来连接,但是OSX也有问题。
grodriguez:/ Guimo$ mount -t nfs4 -o nfsvers=4.1 100.100.100.68:/ /sharedfiles mount: exec /System/Library/Filesystems/nfs4.fs/Contents/Resources/mount_nfs4 for /sharedfiles: No such file or directory
任何帮助赞赏。
问候,Guimo
编辑:如果从我下面的注释不清楚。 我使用docker for mac启动了一个debian,然后我在容器中安装了nfs4支持,然后连接到HaProxy隧道。 一切顺利,我可以看到我的testing.txt文件。
所以我想这是一个OSX的问题,特别是与上述解决scheme无关的是真棒。
对于那些正在寻找这类问题的答案的人来说,迈克尔的评论解决了我的问题。
我们已经直接连接到AWS,并且在向安全组添加正确的入站规则(TCP 2049 office subnet)之后,我可以将EFS挂载到本地的macbook。
sudo mount -t nfs -o vers=4 -o tcp -w xxxx:/ efs