it-swarm-ja.com

NFS4共有をマウントできません

NFSサーバーからエクスポートされた2つのディレクトリがあります。 NFSクライアントマシンでは、デフォルトの構文を使用して、ディレクトリの1つをNFS4としてマウントできます。ただし、他のディレクトリは、「vers = 3」を明示的に指定した場合にのみマウントされます。その構文を使用しないと、「mount.nfs:nat149app:/ var/fea/jobsのマウント中にサーバーによってアクセスが拒否されました」というエラーが発生します。

どちらのボックスもRHEL6.1です。

サーバー上:

[[email protected] 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)

クライアントの場合:

[[email protected] ~]# 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)

[[email protected] ~]# mount nat149app:/usr/local /usr/local

[[email protected] ~]# mount nat149app:/var/fea/jobs /var/fea/jobs
mount.nfs: access denied by server while mounting nat149app:/var/fea/jobs

[[email protected] ~]# 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/

[[email protected] ~]# mount -o vers=3 nat149app:/var/fea/jobs /var/fea/jobs

[[email protected] ~]# 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)

私はこれをrwとroの両方で試しました。また、ディレクトリの「o + t」許可なしで試してみました。また、/ etc/fstabのエントリを使用してこれを試しました。違いはありません。

2
scott8035

私の知る限り、NFS v4では、エクスポートされたすべてのディレクトリが単一の「ルート」(/ etc/exportsにfsid=0が設定されている)内にある必要があります。例えば:

/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)

次に、次のようにマウントされます。

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

通常、バインドマウントは、/srv/nfs(または/exportsなど)を設定するために使用されます。例えば:

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

(fstabの場合、/usr/local /srv/nfs/usr-local none bind 0 0

現在の構成では、/usr/localがNFSルートとして使用されており(nat149app:/usr/localは互換性のためにのみ受け入れられます。実際のアドレスはnat149app:/です)、サーバーはその外部のすべてへのアクセスを拒否します。

セクション7-NFSサーバー名前空間 of RFC 3530-NFSバージョン4

2
user1686

このエラーを自分でトラブルシューティングする際に、 buntuのガイド に従った後、私は

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

デフォルトの構成ファイルをそのままにして動作する前に5回(NFSv4)。

これが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)

エクスポートでは、no_root_squashを使用すると、サーバーのrootユーザーが共有に書き込むことができ、asyncを使用すると、最高のIO(信頼性が低い))が得られ、残りはアクセス許可が簡素化されます。

および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

最後に、クライアントのfstab:

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

fstabからマウントを更新するには:

Sudo mount -a
1
Brad