サーバーの再起動後、NFS マウント コマンドがクライアント上で無期限にハングします。
このコマンドを実行しています:mount -t nfs -v 10.17.25.27:/DATA/projects/assets-db/log-apache test
私のNFSサーバーは: 10.17.25.27
、クライアントIPは10.17.25.152
NFS の syslog デバッグを有効にしましたが、次のエラーが表示されます:
Aug 31 16:26:06 SEFRAPP05155 kernel: NFS call setclientid_confirm auth=UNIX, (client ID 9ee5cc5a6d8c0000)
Aug 31 16:26:06 SEFRAPP05155 kernel: NFS reply setclientid_confirm: -10008
Aug 31 16:26:06 SEFRAPP05155 kernel: NFS call setclientid auth=UNIX, 'Linux NFSv4.0 10.17.25.152/10.17.25.27 tcp'
Aug 31 16:26:06 SEFRAPP05155 kernel: NFS reply setclientid: 0
Aug 31 16:26:06 SEFRAPP05155 kernel: NFS call setclientid_confirm auth=UNIX, (client ID 9ee5cc5a6e8c0000)
Aug 31 16:26:06 SEFRAPP05155 kernel: NFS reply setclientid_confirm: -10008
Aug 31 16:26:06 SEFRAPP05155 kernel: --> nfs_put_client({8})
Aug 31 16:26:06 SEFRAPP05155 kernel: NFS: <-- nfs40_walk_client_list status = -10008
Aug 31 16:26:06 SEFRAPP05155 kernel: --> nfs4_create_server()
Aug 31 16:26:06 SEFRAPP05155 kernel: --> nfs4_init_server()
Aug 31 16:26:06 SEFRAPP05155 kernel: --> nfs4_set_client()
Aug 31 16:26:06 SEFRAPP05155 kernel: --> nfs_get_client(10.17.25.27,v4)
Aug 31 16:26:06 SEFRAPP05155 kernel: <-- nfs_found_client found nfs_client ffff8801e93a0400 for 10.17.25.27
Aug 31 16:26:06 SEFRAPP05155 kernel: <-- nfs4_set_client() = 0 [new ffff8801e93a0400]
Aug 31 16:26:06 SEFRAPP05155 kernel: <-- nfs4_init_server() = 0
Aug 31 16:26:06 SEFRAPP05155 kernel: --> nfs4_get_rootfh()
...
Aug 31 16:26:08 SEFRAPP05155 kernel: NFS call setclientid_confirm auth=UNIX, (client ID 9ee5cc5a6f8c0000)
Aug 31 16:26:08 SEFRAPP05155 kernel: NFS reply setclientid_confirm: -10008
Aug 31 16:26:08 SEFRAPP05155 kernel: NFS call setclientid auth=UNIX, 'Linux NFSv4.0 10.17.25.152/10.17.25.27 tcp'
Aug 31 16:26:08 SEFRAPP05155 kernel: NFS reply setclientid: 0
Aug 31 16:26:08 SEFRAPP05155 kernel: NFS call setclientid_confirm auth=UNIX, (client ID 9ee5cc5a708c0000)
Aug 31 16:26:08 SEFRAPP05155 kernel: NFS reply setclientid_confirm: -10008
Aug 31 16:26:08 SEFRAPP05155 kernel: --> nfs_put_client({9})
Aug 31 16:26:08 SEFRAPP05155 kernel: NFS: <-- nfs40_walk_client_list status = -10008
Aug 31 16:26:08 SEFRAPP05155 kernel: nfs4_get_rootfh: getroot error = 512
Aug 31 16:26:08 SEFRAPP05155 kernel: <-- nfs4_get_rootfh() = -512
Aug 31 16:26:08 SEFRAPP05155 kernel: --> nfs_free_server()
Aug 31 16:26:08 SEFRAPP05155 kernel: --> nfs_put_client({8})
Aug 31 16:26:08 SEFRAPP05155 kernel: <-- nfs_free_server()
Aug 31 16:26:08 SEFRAPP05155 kernel: <-- nfs4_create_server() = error -512
...
Aug 31 16:26:08 SEFRAPP05155 kernel: NFS call setclientid_confirm auth=UNIX, (client ID 9ee5cc5a6f8c0000)
Aug 31 16:26:08 SEFRAPP05155 kernel: NFS reply setclientid_confirm: -10008
Aug 31 16:26:08 SEFRAPP05155 kernel: NFS call setclientid auth=UNIX, 'Linux NFSv4.0 10.17.25.152/10.17.25.27 tcp'
Aug 31 16:26:08 SEFRAPP05155 kernel: NFS reply setclientid: 0
Aug 31 16:26:08 SEFRAPP05155 kernel: NFS call setclientid_confirm auth=UNIX, (client ID 9ee5cc5a708c0000)
Aug 31 16:26:08 SEFRAPP05155 kernel: NFS reply setclientid_confirm: -10008
Aug 31 16:26:08 SEFRAPP05155 kernel: --> nfs_put_client({9})
Aug 31 16:26:08 SEFRAPP05155 kernel: NFS: <-- nfs40_walk_client_list status = -10008
Aug 31 16:26:08 SEFRAPP05155 kernel: nfs4_get_rootfh: getroot error = 512
Aug 31 16:26:08 SEFRAPP05155 kernel: <-- nfs4_get_rootfh() = -512
Aug 31 16:26:08 SEFRAPP05155 kernel: --> nfs_free_server()
Aug 31 16:26:08 SEFRAPP05155 kernel: --> nfs_put_client({8})
Aug 31 16:26:08 SEFRAPP05155 kernel: <-- nfs_free_server()
Aug 31 16:26:08 SEFRAPP05155 kernel: <-- nfs4_create_server() = error -512
Aug 31 16:26:09 SEFRAPP05155 kernel: NFS call setclientid_confirm auth=UNIX, (client ID 9ee5cc5a708c0000)
Aug 31 16:26:09 SEFRAPP05155 kernel: NFS reply setclientid_confirm: -10008
Aug 31 16:26:09 SEFRAPP05155 kernel: NFS call setclientid auth=UNIX, 'Linux NFSv4.0 10.17.25.152/10.17.25.27 tcp'
Aug 31 16:26:09 SEFRAPP05155 kernel: NFS reply setclientid: 0
Aug 31 16:26:09 SEFRAPP05155 kernel: NFS call setclientid_confirm auth=UNIX, (client ID 9ee5cc5a718c0000)
Aug 31 16:26:09 SEFRAPP05155 kernel: NFS reply setclientid_confirm: -10008
Aug 31 16:26:09 SEFRAPP05155 kernel: --> nfs_put_client({8})
Aug 31 16:26:09 SEFRAPP05155 kernel: NFS: <-- nfs40_walk_client_list status = -10008
こういった種類のログ ラインが繰り返されるのを目にします。
rpcinfo -p 10.17.25.27
クライアントで実行すると、次のように表示されます。
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 662 status
100005 1 udp 892 mountd
100024 1 tcp 662 status
100005 1 tcp 892 mountd
100005 2 udp 892 mountd
100005 2 tcp 892 mountd
100005 3 udp 892 mountd
100005 3 tcp 892 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 32768 nlockmgr
100021 3 udp 32768 nlockmgr
100021 4 udp 32768 nlockmgr
100021 1 tcp 32768 nlockmgr
100021 3 tcp 32768 nlockmgr
100021 4 tcp 32768 nlockmgr
NFS バージョン 3 でのマウントは機能しますが、バージョン 4 の機能が必要なので、このプロトコルの古いバージョンにダウングレードすることはできません。
CentOS 7.2
カーネルをオンにしています3.10.0-514.26.2.el7.x86_64
答え1
NFS が突然ダウンした原因はわかりませんでしたが、再起動後、クライアントはエクスポートされたファイルシステムをマウントできませんでした。すべてのサーバーを再起動し、マシン間のすべてのポートを開こうとしましたが、何も効果がありませんでした。
3.10.0-514.26.2.el7.x86_64
しかし、カーネルをバージョン1.0から1.1にアップグレードしたら、再び動作するようになりました。3.10.0-862.11.6.el7.x86_64