Montar para exportar NFS de montagem autofs mostra conteúdo vazio

6

Eu uso o autofs para montar alguns arquivos iso na pasta / mnt / iso:

Fedora-13-x86_64-DVD.iso
Fedora-14-x86_64-DVD.iso
Fedora-15-x86_64-DVD.iso

O autofs está funcionando bem e consigo ver o conteúdo dos arquivos iso:

# ls /mnt/iso/fedora.13/
# ls /mnt/iso/fedora.14/
# ls /mnt/iso/fedora.15/

Depois de terminar o teste autofs. Forço a desmontar todas as pastas iso:

# umount -l /mnt/iso/*

Eu então exporto o / mnt / iso em / etc / exports:

/mnt/iso        192.168.0.0/24(ro,insecure,crossmnt,all_squash)

O serviço NFS também está funcionando bem. Eu posso montar o / mnt / iso de outra máquina via cliente nfs:

# mount -t nfs4 <nfs-server>:/mnt/iso /mnt

Eu posso ver todas as montagens iso na pasta / mnt /:

# ls /mnt
dr-xr-xr-x 15 nobody nobody 4096 2011-06-11 10:23 .
drwxr-xr-x 24 root   root   4096 2011-02-08 08:45 ..
drwxr-sr-x  7 nobody nobody 4096 2010-05-13 09:06 fedora.13
drwxr-sr-x  7 nobody nobody 4096 2010-10-22 02:32 fedora.14
drwxrwsr-x  7 nobody nobody 4096 2011-05-14 03:50 fedora.15

No entanto, quando tento listar o conteúdo de cada pasta:

#  ls /mnt/fedora.13

Nada é mostrado na tela. Usando o comando como este

#  ls /mnt/fedora.13/*

prompt

ls: cannot access /mnt/fedora.13/*: No such file or directory

O único caso de sucesso em listar o conteúdo das pastas iso na máquina cliente do nfs é usando as seguintes etapas:

Desmontar o compartilhamento do nfs da máquina do cliente:

# umount /mnt

usando ls para mostrar todas as sub-árvores de / mnt / iso no servidor nfs:

# ls /mnt/iso/*

O autofs montará todos os arquivos iso automaticamente.

Monte a pasta nfs na máquina do cliente:

# mount -t nfs4 <nfs-server>:/mnt/iso /mnt

Relacione as sub-árvores de / mnt:

# ls /mnt/*

Você pode então ver todo o conteúdo na máquina cliente do nfs.

No entanto, isso anula a finalidade do autofs, já que preciso mostrar o conteúdo uma vez na máquina autofs primeiro.

Alguém tem alguma ideia? Eu estou usando o seguinte:

  1. Fedora 13 x86_64
  2. autofs-5.0.5-28
  3. nfs-utils-1.2.2.2-2
por Chau Chee Yang 11.06.2011 / 08:00

1 resposta

6

Eu acho que você tem um carrinho antes do problema do cavalo aqui, quando você exporta um sistema de arquivos usando o NFS, ele é travado no diretório de origem. Você está tentando não ter o diretório de origem disponível naquele momento e apenas colocar algo lá por meio de uma montagem mais tarde.

Isso não funcionará, porque, uma vez que você dê ao NFS o controle sobre algo para compartilhar, ele sempre compartilhará essa coisa, mesmo que ela acabe sob uma camada de montagens.

Digamos que você configure um diretório com um arquivo 'frog' e exporte-o com nfs:

[server] $ mkdir /mnt/test && touch /mnt/test/frog
[server] $ echo '/mnt/test *(ro)' >> /etc/exports
[server] $ exportfs -a

Então você monta em um cliente em algum lugar, você verá o arquivo frog como esperado:

[client] $ mkdir /mnt/test
[client] $ mount -t nfs server:/mnt/test /mnt/test
[client] $ ls $/mnt/test
frog

Agora, digamos que você monte algo sobre essa pasta no servidor:

[server] $ mkdir /mnt/test2 && touch /mnt/test2/fish
[server] $ mount -o bind /mnt/test2 /mnt/test
[server] $ ls /mnt/test
fish

Spiffy. Mas o que está servindo nfs?

[client] $ ls /mnt/test
frog

Você não pode nem chegar ao sapo do arquivo no servidor porque ele tem uma coisa diferente montada em cima dele, mas o NFS está servindo abaixo disso!

Para encurtar a história, se você quiser exportar seus sistemas de arquivos via NFS, precisará instalá-los corretamente no momento em que o NFS for inicializado e exportá-los, e eles precisarão fique por perto. A exportação de sistemas de arquivos que são montados usando o autofs nunca funcionará corretamente. Você precisará montar permanentemente esses ISOs para exportá-los via NFS.

    
por 11.06.2011 / 10:28