mount.nfs4:マウント中にサーバーへのアクセスが拒否されました(以前は同じ構成が正しく機能していた場合)。

mount.nfs4:マウント中にサーバーへのアクセスが拒否されました(以前は同じ構成が正しく機能していた場合)。

再起動されたサーバーにnfsフォルダセットを再マウントしようとしましたが、「サーバーアクセス拒否」エラーが発生しました。クライアントサーバー(clientserver.co.local)で、次を実行します。

[root@clientserver ~]# mount -t nfs -vvvv 172.18.4.97:/datalake/raw/org /datalake/org/raw/
mount.nfs: timeout set for Wed Dec 30 19:41:35 2020
mount.nfs: trying text-based options 'vers=4.1,addr=172.18.4.97,clientaddr=172.18.4.98'
mount.nfs: mount(2): Permission denied
mount.nfs: trying text-based options 'vers=4.0,addr=172.18.4.97,clientaddr=172.18.4.98'
mount.nfs: mount(2): Permission denied
mount.nfs: trying text-based options 'addr=172.18.4.97'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 172.18.4.97 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying 172.18.4.97 prog 100005 vers 3 prot UDP port 20048
mount.nfs: mount(2): Permission denied
mount.nfs: access denied by server while mounting 172.18.4.97:/datalake/raw/org

上記のエラーを受け取ります。 (他のバージョンのnfsをすべて試しましたが、まだ失敗しました。)どのセキュリティスタイルを使用するのかわかりません(以前に指定したことはありません。SSSDを使用してWindows ADアカウントをクライアントとnfsサーバーに接続するため、これがデフォルトであると仮定します) )。とにかく、-o sec=sysオプション-o sec=krb5の両方を試してみました。同じ結果が得られます。

tcmpdumpインストールコマンド中にパケットトラフィック監視を実行しました(提案に従って)。ここ)、しかしログを解釈する方法がわかりません(助けになれば最後の10行のような内容を投稿できます)。

クライアントのホストされたnfsserver.co.localサーバーからネットワークのインストールを確認すると、次のようになります。

[root@clientserver ~]# showmount -e
Export list for clientserver.co.local:
[root@clientserver ~]# showmount -e 172.18.4.97
Export list for 172.18.4.97:
/datalake/raw/org/HI_BRFSS               clientserver.co.local,otherclient.co.local
/datalake/raw/org                        clientserver.co.local,otherclient.co.local
/datalake/analytics/org                  clientserver.co.local,otherclient.co.local


[root@clientserver ~]# service nfs status
Redirecting to /bin/systemctl status nfs.service
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
   Active: active (exited) since Wed 2020-12-30 18:32:09 HST; 11min ago
  Process: 93274 ExecStopPost=/usr/sbin/exportfs -f (code=exited, status=0/SUCCESS)
  Process: 93271 ExecStopPost=/usr/sbin/exportfs -au (code=exited, status=0/SUCCESS)
  Process: 93266 ExecStop=/usr/sbin/rpc.nfsd 0 (code=exited, status=0/SUCCESS)
  Process: 93307 ExecStartPost=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exited, status=0/SUCCESS)
  Process: 93290 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
  Process: 93288 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
 Main PID: 93290 (code=exited, status=0/SUCCESS)
    Tasks: 0
   CGroup: /system.slice/nfs-server.service

Dec 30 18:32:09 clientserver.co.local systemd[1]: Starting NFS server and services...
Dec 30 18:32:09 clientserver.co.local systemd[1]: Started NFS server and services.

だからすべてが私が想像していたのと同じです(showmountマウントしたいnfsフォルダが表示されます)。

コマンドの実行後にmountストリームファイルに表示されるのは、/var/log/messages次のメッセージです。

Jan  4 18:37:12 clientserver gssproxy: gssproxy[2557]: (OID: { 1 2 840 113554 1 2 2 }) Unspecified GSS failure.  Minor code may provide more information, Client 'host/[email protected]' not found in Kerberos database

これが何を意味するのかはわかりませんが、gssproxy.confファイルを確認すると次のようになります。

[root@mclientserver ~]# cat /etc/gssproxy/gssproxy.conf 
[gssproxy]

過去に(nfsマウントがまだ機能しているとき)これと対話した記憶がないので、これが何を意味するのかわかりません。

Windows ADアカウントをコンピュータに接続するためにSSSD(設定なし)を使用しますが、これがここに関連しているのか、それとも別のものかはわかりません。とにかくsssd.confは次のようになります

[root@clientserver ~]# cat /etc/sssd/sssd.conf 

[sssd]
domains = co.local
config_file_version = 2
services = nss, pam

[domain/co.local]
ad_domain = co.local
ad_server = adserver.CO.local
ad_backup_server = adserverbackup.CO.local
krb5_realm = CO.LOCAL
realmd_tags = manages-system joined-with-samba 
cache_credentials = False
enumerate = true
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = False
use_fully_qualified_names = False
override_homedir = /home/%u
access_provider = ad

しかし、それ以外はコマンドエラーで見た以外にログに多くの情報がないようです...

[root@clientserver ~]# grep mount -rnw /var/log/messages* -e "nfs"
grep: mount: No such file or directory
/var/log/messages:2782:Jan  4 17:21:23 clientserver kernel: FS-Cache: Netfs 'nfs' registered for caching
/var/log/messages:2844:Jan  4 17:21:24 clientserver mount: mount.nfs: access denied by server while mounting nfsserver.co.local:/datalake/analytics/org
/var/log/messages:2845:Jan  4 17:21:24 clientserver mount: mount.nfs: access denied by server while mounting nfsserver.co.local:/datalake/raw/org
/var/log/messages-20201227:3590:Dec 23 17:46:04 clientserver kernel: FS-Cache: Netfs 'nfs' registered for caching
[root@clientserver ~]# 
[root@clientserver ~]# 
[root@clientserver ~]# 
[root@clientserver ~]# grep mount -rnw /var/log/messages* -e "mount"
grep: mount: No such file or directory
/var/log/messages:2380:Jan  4 17:20:55 clientserver kernel: XFS (dm-3): Ending clean mount
/var/log/messages:2530:Jan  4 17:21:07 clientserver kernel: XFS (sda1): Ending clean mount
/var/log/messages:2537:Jan  4 17:21:07 clientserver kernel: XFS (dm-5): Ending clean mount
/var/log/messages:2844:Jan  4 17:21:24 clientserver mount: mount.nfs: access denied by server while mounting nfsserver.co.local:/datalake/analytics/org
/var/log/messages:2845:Jan  4 17:21:24 clientserver mount: mount.nfs: access denied by server while mounting nfsserver.co.local:/datalake/raw/org
/var/log/messages:2846:Jan  4 17:21:24 clientserver systemd: datalake-org-analytics.mount mount process exited, code=exited status=32
/var/log/messages:2847:Jan  4 17:21:24 clientserver systemd: Failed to mount /datalake/org/analytics.
/var/log/messages:2850:Jan  4 17:21:24 clientserver systemd: Unit datalake-org-analytics.mount entered failed state.
/var/log/messages:2851:Jan  4 17:21:24 clientserver systemd: datalake-org-raw.mount mount process exited, code=exited status=32
/var/log/messages:2852:Jan  4 17:21:24 clientserver systemd: Failed to mount /datalake/org/raw.
/var/log/messages:2853:Jan  4 17:21:24 clientserver systemd: Unit datalake-org-raw.mount entered failed state.
/var/log/messages:3014:Jan  4 17:21:27 clientserver dracut: Executing: /usr/sbin/dracut --hostonly --hostonly-cmdline --hostonly-i18n -o "plymouth dash resume ifcfg" --mount "/dev/mapper/centos_mapr001-root /sysroot xfs defaults,x-systemd.device-timeout=0" --no-hostonly-default-device -f /boot/initramfs-3.10.0-862.6.3.el7.x86_64kdump.img 3.10.0-862.6.3.el7.x86_64
/var/log/messages-20201227:3669:Dec 23 17:47:35 clientserver systemd: mapr.mount mounting timed out. Stopping.
/var/log/messages-20201227:3823:Dec 23 17:47:37 clientserver systemd: Unit mapr.mount entered failed state.
[root@clientserver ~]#
[root@clientserver ~]#
[root@clientserver ~]#
[root@clientserver ~]# tail -n 15 /var/log/dmesg
[  148.561016] piix4_smbus 0000:00:01.3: SMBus Host Controller at 0x700, revision 0
[  148.643519] sd 0:0:0:0: Attached scsi generic sg0 type 0
[  148.643580] sd 0:0:1:0: Attached scsi generic sg1 type 0
[  148.643639] sd 0:0:2:0: Attached scsi generic sg2 type 0
[  148.643846] sd 0:0:3:0: Attached scsi generic sg3 type 0
[  148.643907] sd 0:0:4:0: Attached scsi generic sg4 type 0
[  148.643962] sd 0:0:5:0: Attached scsi generic sg5 type 0
[  148.644030] sr 1:0:0:0: Attached scsi generic sg6 type 5
[  148.718917] ppdev: user-space parallel port driver
[  148.723858] Adding 8900604k swap on /dev/mapper/centos_mapr001-swap.  Priority:-1 extents:1 across:8900604k FS
[  148.865301] XFS (sda1): Mounting V5 Filesystem
[  149.497874] XFS (sda1): Ending clean mount
[  150.110208] XFS (dm-5): Mounting V5 Filesystem
[  150.190558] XFS (dm-5): Ending clean mount
[  150.966314] type=1305 audit(1609816868.676:4): audit_pid=2500 old=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:auditd_t:s0 res=1

pingクライアントの名前とIPアドレスを介してnfsserverシステムにアクセスできます(nfsserverシステムでは、その逆も同様です)。

SE Linuxの設定を確認してください...

[root@clientserver /]$ sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      31

私はこれを設定しませんでしたが(または実際にSE Linuxに関する多くの経験があります)、「許し」はこれがファイアウォールの問題ではないと思うようにします。

ポートの問題により、この問題が発生する可能性があると聞きました。使ってrpcinfoみる

[root@clientserver ~]# rpcinfo -p
   program vers proto   port  service
    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  34584  status
    100024    1   tcp  53605  status
    100005    1   udp  20048  mountd
    100005    1   tcp  20048  mountd
    100005    2   udp  20048  mountd
    100005    2   tcp  20048  mountd
    100005    3   udp  20048  mountd
    100005    3   tcp  20048  mountd
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    3   udp   2049  nfs_acl
    100021    1   udp  36667  nlockmgr
    100021    3   udp  36667  nlockmgr
    100021    4   udp  36667  nlockmgr
    100021    1   tcp  39608  nlockmgr
    100021    3   tcp  39608  nlockmgr
    100021    4   tcp  39608  nlockmgr

しかし、私はこれが正常であることがわかるほど、ネットワーキングについて十分に知りません。

nfsserverサーバーを見ると、次のようになります。

[root@nfsserver ~]# cat /etc/exports
/datalake/analytics/org         otherclient(rw,no_root_squash,sync) clientserver(rw,root_squash,sync)
/datalake/raw/org               otherclient(rw,no_root_squash,sync) clientserver(ro,root_squash,sync)
/datalake/raw/org/HI_BRFSS      otherclient(ro,no_root_squash,sync) clientserver(ro,root_squash,sync)
[root@nfsserver ~]# exportfs -rav
exporting otherclient.co.local:/datalake/raw/org/HI_BRFSS
exporting clientserver.co.local:/datalake/raw/org/HI_BRFSS
exporting otherclient.co.local:/datalake/raw/org
exporting clientserver.co.local:/datalake/raw/org
exporting otherclient.co.local:/datalake/analytics/org
exporting clientserver.co.local:/datalake/analytics/org


[root@nfsserver ~]# systemctl status nfs
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
   Active: active (exited) since Wed 2020-12-30 18:38:00 HST; 22min ago
  Process: 135417 ExecStopPost=/usr/sbin/exportfs -f (code=exited, status=0/SUCCESS)
  Process: 135414 ExecStopPost=/usr/sbin/exportfs -au (code=exited, status=0/SUCCESS)
  Process: 135412 ExecStop=/usr/sbin/rpc.nfsd 0 (code=exited, status=0/SUCCESS)
  Process: 135447 ExecStartPost=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exited, status=
0/SUCCESS)
  Process: 135430 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
  Process: 135428 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
 Main PID: 135430 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/nfs-server.service

Dec 30 18:38:00 nfsserver.co.local systemd[1]: Starting NFS server and services...
Dec 30 18:38:00 nfsserver.co.local systemd[1]: Started NFS server and services.

繰り返しますが、すべてが必要に応じて構成されているようです。 (特定の設定を提案するいくつかの答えを見ましたが、そのままにしておくことを好み、/etc/exportsこの設定はこれまで機能しました。)そして、nfsserverファイルのDNS名をIPに変更して/etc/exports実行しても、exportfs -rav状況は変わりませんでした。

もっと経験のある人がここで何が間違っているのか知っていますか?この問題を改善するための追加のデバッグ提案/情報。

ベストアンサー1

NFSサーバーにシステムドライブの空き容量が不足している場合:

  1. mount.nfs: access denied by server while mounting顧客に関するメッセージが届きます。
  2. nfsサービスが良く見え、合格しました。systemctl status nfs-kernel-server
  3. ログにエラーが表示されないことがあります(スペースが不足しているため、ログに明らかなエラーがある可能性があります)。

症状が非常に似ているため、この回答を投稿します(pingに応答して正常に見えるサーバーに正常なNFSサーバーリソースをマウントしようとすると、突然説明できない「アクセス拒否」エラーが発生しました)。

スペースが不足している場合の回避策は、ログ、Dockerコンテナなど、一般的なものです。

おすすめ記事