Não é possível montar o compartilhamento NFS4

2

Eu tenho dois diretórios exportados de um servidor NFS. Na minha máquina cliente do NFS, posso montar um dos diretórios, usando a sintaxe padrão, como NFS4. No entanto, o outro diretório só será montado se eu especificar explicitamente "vers = 3". Se eu não usar essa sintaxe, recebo o erro "mount.nfs: acesso negado pelo servidor durante a montagem do nat149app: / var / fea / jobs".

Ambas as caixas são RHEL 6.1.

No servidor:

[root@nat149app fea]# cat /etc/exports
# /var/fea/jobs   -rw,async,no_root_squash xxx.xxx.1.0/24
# /usr/local      -ro,async,no_root_squash xxx.xxx.1.0/24
/var/fea/jobs   xxx.xxx.1.0/24(rw,async,no_root_squash)
/usr/local      xxx.xxx.1.0/24(ro,async,no_root_squash)

No cliente:

[root@nat145app ~]# mount
/dev/sda4 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/sda5 on /home type ext4 (rw)
/dev/sda3 on /usr type ext4 (rw)
/dev/sda6 on /var type ext2 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

[root@nat145app ~]# mount nat149app:/usr/local /usr/local

[root@nat145app ~]# mount nat149app:/var/fea/jobs /var/fea/jobs
mount.nfs: access denied by server while mounting nat149app:/var/fea/jobs

[root@nat145app ~]# ll /var/fea
total 20K
drwxrwx--T   4 root feausers 4.0K Nov 29 13:25 ./
drwxr-xr-x. 22 root root     4.0K Nov 29 13:25 ../
drwxrwx--T   2 root feausers 4.0K Nov 29 13:25 jobs/
drwxrwx--T   2 root feausers 4.0K Nov 29 13:26 temp/

[root@nat145app ~]# mount -o vers=3 nat149app:/var/fea/jobs /var/fea/jobs

[root@nat145app ~]# mount
/dev/sda4 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/sda5 on /home type ext4 (rw)
/dev/sda3 on /usr type ext4 (rw)
/dev/sda6 on /var type ext2 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nat149app:/usr/local on /usr/local type nfs (rw,vers=4,addr=139.69.1.149,clientaddr=139.69.1.145)
nat149app:/var/fea/jobs on /var/fea/jobs type nfs (rw,vers=3,addr=139.69.1.149)

Eu tentei isso com ambos rw e ro. Eu também tentei sem a permissão "o + t" nos diretórios. E eu também tentei isso usando entradas em / etc / fstab. Não faz diferença.

    
por scott8035 29.11.2011 / 21:42

2 respostas

2

Pelo que eu sei, o NFS v4 requer que todos os diretórios exportados estejam dentro de uma única "raiz" (que tem fsid=0 definido em / etc / exports). Por exemplo:

/srv/nfs              xxx.xxx.1.0/24(ro,root_squash)
/srv/nfs/usr-local    xxx.xxx.1.0/24(ro,root_squash)
/srv/nfs/fea-jobs     xxx.xxx.1.0/24(rw,root_squash)

que são então montados como:

mount -t nfs4 nat149app:/usr-local /usr/local
mount -t nfs4 nat149app:/fea-jobs /var/fea/jobs

Geralmente montagens de ligação são usadas para configurar /srv/nfs (ou /exports ou similar); por exemplo:

mount --bind /usr/local /srv/nfs/usr-local
mount --bind /var/fea/jobs /srv/nfs/fea-jobs

(para fstab, /usr/local /srv/nfs/usr-local none bind 0 0 )

Na sua configuração atual, /usr/local está sendo usado como a raiz NFS (com nat149app:/usr/local sendo aceito apenas para compatibilidade; o endereço real é nat149app:/ ) e o servidor nega acesso a tudo que estiver fora dela.

Veja seção 7 - Espaço de nome do servidor NFS de RFC 3530 - NFS versão 4 .

    
por 29.11.2011 / 22:45
1

Para resolver este erro eu, depois de seguir o guia do Ubuntu , eu fiz um

apt-get purge nfs-kernel-server
apt-get install nfs-kernel-server

5 vezes antes de deixar os arquivos de configuração padrão e funcionou (NFSv4).

Aqui está o servidor nfs / etc / exports:

/export                 172.20.50.0/24(ro,fsid=0,insecure,no_root_squash,no_subtree_check,async)
/export/companybackup   172.20.50.0/24(rw,nohide,insecure,no_root_squash,no_subtree_check,async)
/export/p1backup        172.20.50.0/24(rw,nohide,insecure,no_root_squash,no_subtree_check,async)
/export/p2backup        172.20.50.0/24(rw,nohide,insecure,no_root_squash,no_subtree_check,async)
/export/p3backup        172.20.50.0/24(rw,nohide,insecure,no_root_squash,no_subtree_check,async)

Nas exportações, o no_root_squash permite que o usuário root do seu servidor grave no compartilhamento, o assíncrono oferece o melhor IO (embora não seja confiável), e o restante simplifica as permissões.

e o servidor nfs / etc / fstab:

/dev/VG/LV                 /mnt/bigLV ext4    noatime 0       0
/mnt/bigLV                 /export/companybackup   none    bind    0       0
/mnt/bigLV/backups/p1      /export/p1backup        none    bind    0       0
/mnt/bigLV/backups/p2      /export/p2backup        none    bind    0       0
/mnt/bigLV/backups/p3      /export/p3backup        none    bind    0       0

Finalmente, o fstab do cliente:

172.20.50.29:/p1backup        /mnt/p1backup       nfs4    _netdev,auto,rw,hard,intr       0           0

para atualizar as montagens do fstab:

sudo mount -a
    
por 10.02.2012 / 00:14