私のエラーは次のとおりです。
mount.nfs4: access denied by server while mounting fileserver:/export/path/one
私の質問は次のとおりです
サーバー(systemdの下)の詳細なログ情報はどこにありますか?
追加情報:
私は尋ねたエマルジョンAskUbuntuのUbuntuクライアントの観点から。私の質問の焦点はArch Linuxサーバーです。特に問題を理解するのに役立つサーバーのログを探しています。
背景は次のとおりです。
私たちの小規模LANはArch Linux NFS v4ファイルサーバーを実行しています。 Ubuntu 15.10と16.04を実行している複数のクライアントがあります。 Ubuntu 14.04を実行しているクライアントがあります。 14.04 クライアントはファイルサーバーに接続できません。他のすべての接続は正常です。設定はすべてのクライアントで同じです。すべてのクライアントはサーバーの/ etc / exportsにリストされています。
ArchiLinuxサーバーでより詳細なエラー情報を探す必要があります。ただし、Journalctl は nfs に関連するコンテンツを表示せず、nfs アクセス拒否エラーに関連するエントリも含めません。
14.04クライアントはファイルサーバーをpingしてSSH経由でログインできます。ユーザー名/ IDとグループの一致。 (クライアントとサーバーで同じユーザーアカウント/ uidを使用しています。uid 1000です。)
追加情報:
$ sudo mount -a (on client)
mount.nfs4: access denied by server while mounting fileserver:/export/path/one
mount.nfs4: access denied by server while mounting fileserver:/export/path/two
クライアントはファイルサーバーにpingを送信できます(またはその逆)。
$ ping fileserver
PING fileserver (192.168.1.1) 56(84) bytes of data.
64 bytes from fileserver (192.168.1.1): icmp_seq=1 ttl=64 time=0.310 ms
クライアントがLANベースのファイルサーバーに正常にログインしました。
$ ssh fileserver
Last login: Tue Aug 16 14:38:26 2016 from 192.168.1.2
[me@fileserver ~]$
ファイルサーバーのマウントがエクスポートされ、rpcinfo
クライアントに公開されます。
$ showmount -e fileserver # on client
Export list for fileserver:
/export/path/one/ 192.168.1.2
/export/path/two/ 192.168.1.2,192.168.1.3
$ rpcinfo -p fileserver (on client)
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 58344 status
100024 1 tcp 58561 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 4 tcp 2049 nfs
100003 4 udp 2049 nfs
エクスポートを直接マウントするときに発生するエラーは次のとおりです。
$ sudo mount -vvv -t nfs4 fileserver:/export/path/one /path/one/
mount: fstab path: "/etc/fstab"
mount: mtab path: "/etc/mtab"
mount: lock path: "/etc/mtab~"
mount: temp path: "/etc/mtab.tmp"
mount: UID: 0
mount: eUID: 0
mount: spec: "fileserver:/export/path/one"
mount: node: "/path/one/"
mount: types: "nfs4"
mount: opts: "(null)"
mount: external mount: argv[0] = "/sbin/mount.nfs4"
mount: external mount: argv[1] = "fileserver:/export/path/one"
mount: external mount: argv[2] = "/path/one/"
mount: external mount: argv[3] = "-v"
mount: external mount: argv[4] = "-o"
mount: external mount: argv[5] = "rw"
mount.nfs4: timeout set for Tue Aug 16 16:10:43 2016
mount.nfs4: trying text-based options 'addr=192.168.1.1,clientaddr=192.168.1.2'
mount.nfs4: mount(2): Permission denied
mount.nfs4: access denied by server while mounting fileserver:/export/path/one
答え1
@pgoetzは根本的な問題を解決したようですが、後でNFSログをキャプチャする方法に関する元の質問に対処します(同様の問題に遭遇しましたが、ロギングに対する答えも見つかりませんでした!)。
NFSサーバーとそのクライアントの詳細なログ記録は、カーネルログを生成することを使用して取得できます(たとえば、ディストリビューションに従ってなどとして表示されますrpcdebug
)。/var/log/messages
/var/log/syslog
一般的な形式は次のとおりですrpcdebug -m [module] -s [flags]
。
-m [module]
:ログするモジュールを指定します。これはnfs
、、、nfsd
またはrpc
ですnlm
。 - サーバーの一般的なNFSログの場合nfsd
クライアントの一般的なNFSログの場合。nfs
-s [flags]
:カーネルが書き込むデバッグフラグを設定します。使用可能なフラグはモジュールによって異なります。
(man rpcdebug
詳細は参照)
したがって、すべてのフラグのロギングを開始するコマンドの例は次のとおりです。
- NFSサーバー:
rpcdebug -m nfsd -s all
- NFSクライアント:
rpcdebug -m nfs -s all
注:これは次のとおりです。非常に長い。正しいロギングレベルを得るためにフラグを調整することができますが、all
フラグから始めると問題の範囲を絞り込むのに役立ちます。
ログエントリの数を減らすには、all
フラグを消去してから追跡する特定のフラグを設定します。たとえば、次のようになります。
$ rpcdebug -m nfsd -c all # clear all flags to stop logging them
$ rpcdebug -m nfsd -s auth proc # set the auth and proc flags instead of logging all flags
答え2
クライアントとサーバーのArch Linuxの両方で同じ問題が発生しました。解決策は、/etc/exports
IPアドレスの代わりにホスト名を使用することです。私はこれを変更しました:
/srv/nfs 192.168.10(rw,fsid=root,no_subtree_check)
/srv/nfs/media 192.168.10(rw,no_subtree_check)
/srv/nfs/share 192.168.10(rw,no_subtree_check)
これに関して:
/srv/nfs iguana(rw,fsid=root,no_subtree_check)
/srv/nfs/media iguana(rw,no_subtree_check)
/srv/nfs/share iguana(rw,no_subtree_check)
これはわずかに異なる問題を引き起こします。
[root@iguana data]# mount -t nfs4 frog:/srv/nfs/media /data/media
mount.nfs4: Protocol not supported
私はNFS4の経験はあまりありません。明らかに、mountコマンドにNFSルートパスを含めないでください。これはついに効果があり、ボリュームをマウントしました。
[root@iguana data]# mount -t nfs4 frog:/media /data/media