Problemas ao exportar o FUSE via NFS

8

Eu tenho um sistema de arquivos FUSE auto-escrito que montei no meu servidor NFS no ponto de montagem /export/example/mount . Então eu exporto um diretório pai do FUSE via NFS. O /etc/exports contém as opções nohide,crossmnt,subtree_check,ro,no_root_squash e permite acesso gratuito a todos:

/export/example *(nohide,crossmnt,subtree_check,ro,no_root_squash)

Eu posso montar essa exportação no meu cliente NFS e acessá-la. Assim que eu acessar o FUSE dentro do NFS, meu cliente trava até eu umount o NFS (e eu preciso usar a opção -f para realizar isso).

Eu tentei montar o FUSE como meu usuário de trabalho e como root. Os resultados são os mesmos.

O servidor está executando um Ubuntu 12.04, o cliente um SuSE 9.3. O FUSE é escrito em Python e funciona localmente sem nenhum problema. Somente a exportação via NFS falha. Não tenho restrições de segurança, pois tudo isso está em uma rede privada com apenas usuários confiáveis.

Alguém tem uma ideia do que poderia causar o meu problema ou (melhor ainda) como resolver o problema?

Pensei em substituir o NFS pelo SSHFS para solucionar o problema, mas isso não funciona, pois o sistema do cliente é muito antigo para suportar o SSHFS (já que é baseado no FUSE, e o FUSE não é suportado).

    
por Alfe 14.11.2013 / 12:38

2 respostas

6

A maioria das distribuições Linux vem com um kernel que não permite exportar um sistema de arquivos FUSE montado usando NFSv2 ou NFSv3. Suas escolhas são: 1. Implemente seu sistema de arquivos no espaço do kernel. 2. Exporte-o no NFSv4, o que requereria um fsid =

Eu mesmo uso 2. Na ilustração abaixo, os comandos começam com # são executados no servidor, os comandos iniciam com $ e são executados no cliente.

Esta é a configuração do meu servidor, como você pode ver Estou exportando um ponto de montagem do FUSE:

# mount | tail -n1
convmvfs on /mnt/gb2312 type fuse.convmvfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
# grep gb2312 /etc/exports 
/mnt/gb2312     192.168.0.0/16(no_subtree_check,fsid=0)

Aqui está o que eu fiz no meu cliente:

$ sudo mount -t nfs4 server:/ /mnt/
$ ls /mnt
Downloads  IMAGES  Library  lost+found

Para verificar se sua falha é causada pela exportação do fusível no NFS v2 / v3, exporte esse ponto de montagem especificamente sem o NFS v4 (fsid) e veja se há um erro:

# exportfs -a
exportfs: /mnt/gb2312 requires fsid= for NFS export

Se no servidor você exportar o ponto de montagem umount e montá-lo com o fusível posteriormente, você deverá ver no seu log se você tentar usar o cliente nfs:

# tail /var/log/syslog
Aug 18 03:54:31 server rpc.mountd[17183]: Cannot export /mnt/gb2312, possibly unsupported filesystem or fsid= required
Aug 18 04:00:52 server rpc.mountd[17183]: Caught signal 15, un-registering and exiting.
    
por 18.08.2014 / 06:10
0

por padrão, a exportação de sub-montagens sobre nfs é desativada. O curso de ação recomendado é também exportar a submontagem e fazer com que o cliente a monte também.

    
por 30.11.2013 / 09:45