Montagem do Amazon EFS a partir do OSX

2

Senhores, Eu segui as instruções sobre este excelente post, mas não consegui me conectar. O sistema de arquivos elásticos (EFS) é montado fora do AWS

Eu uso o CoreOS em um cluster do Mesos. Temos um EFS conectado a todos os nós do cluster para que eles possam compartilhar dados, scripts, etc. Temos um túnel de VPN para o AWS VPC para que possamos nos conectar a partir do escritório.

Meus usuários gostariam de enviar alguns scripts para o EFS e obter os resultados de computação para que eles gostariam de montar o NFS localmente. Então eu inicio um haproxy como recomendado no artigo acima.

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"

A configuração é essa no caso de não estar claro:

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

Que inicia o haproxy com um túnel para o EFS, conforme proposto no tópico acima mencionado. Eu sei que está funcionando porque eu posso montar o EFS usando o Haproxy IP em uma segunda pasta em um nó de cluster (ou seja, / testing) e quando eu escrevo um arquivo para / testing eu posso vê-lo em todos os nós na pasta / shared . Por exemplo:

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!

Então, o problema é que quando eu quero montar do OSX eu recebo:

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

Eu sei que o HaProxy está escutando, porque eu posso fazer no OSX:

grodriguez:/ Guimo$ telnet 100.100.100.68 2049
Trying 100.100.100.68...
Connected to 100.100.100.68.
Escape character is '^]'.

Portanto, ele se conecta ao serviço usando o telnet, mas não se conecta usando o nfs.

O grupo de segurança é bastante liberal e, além disso, eu não teria conectado usando telnet se não funcionasse. Então o serviço está trabalhando naquela porta.

Eu li que poderia tentar procurar os serviços mountd e nfs, mas nada. Talvez o EFS esteja escondendo eles. Talvez seja por isso que a OSX reclama pelo serviço que faltava.

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

Mas, ainda assim, se o túnel não funcionar, por que os agentes devem se conectar com sucesso?

BTW. Eu também tentei o jeito AWS de se conectar, mas o OSX também tem problemas.

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

Qualquer ajuda apreciada.

Atenciosamente, Guimo

Editar: Caso não esteja claro na minha nota abaixo. Eu comecei um debian usando o docker para mac, então eu instalei o suporte ao nfs4 no container, então eu conectei ao túnel HaProxy. Tudo correu bem e eu posso ver o meu arquivo testing.txt.

Então eu acho que este é um problema da OSX especificamente e nada a ver com a solução acima, que é incrível.

    
por G Rodriguez 31.08.2016 / 12:50

1 resposta

5

Para quem procura respostas para esse tipo de pergunta, o comentário de Michael resolveu meu problema.

Temos conexão direta com a AWS e depois de adicionar a regra de entrada correta (sub-rede do TCP 2049 office) ao grupo de segurança, posso montar o EFS no meu macbook local.

sudo mount -t nfs -o vers=4 -o tcp -w x.x.x.x:/ efs
    
por 12.01.2017 / 20:26