추가 정보:

추가 정보:

내 오류는 다음과 같습니다

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에 나열됩니다.

아치리눅스 서버에서 좀 더 자세한 오류정보를 찾아봐야겠네요. 그러나 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/exportsIP 주소 대신 호스트 이름을 사용하는 것입니다. 나는 이것을 변경했습니다 :

/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

관련 정보