NFS 서버는 /etc/exports에 있는 호스트를 내보내지 않습니다.

NFS 서버는 /etc/exports에 있는 호스트를 내보내지 않습니다.

/etc/exportsCentOS 7.2에서 실행 중인 NFS 서버가 있고 내 보내야 하지만 내보내지 않는 파일에서 선언한 서버(경로/클라이언트 호스트)에 문제가 있습니다 .

/etc/exports파일:

/mnt/data/ host1(rw,all_squash,anonuid=1001,anongid=1001)
/mnt/data/ host2(rw,all_squash,anonuid=1001,anongid=1001)
/mnt/data/ host3(rw,all_squash,anonuid=1001,anongid=1001)
/mnt/data/ host3(rw,all_squash,anonuid=1001,anongid=1001)

nfs 서버를 다시 시작했는데 exportfs -a결과 가 cat /var/lib/nfs/etab정확했습니다.

/mnt/data   host1(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=1001,anongid=1001,sec=sys,rw,secure,root_squash,all_squash)
/mnt/data   host2(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=1001,anongid=1001,sec=sys,rw,secure,root_squash,all_squash)
/mnt/data   host3(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=1001,anongid=1001,sec=sys,rw,secure,root_squash,all_squash)
/mnt/data   host4(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=1001,anongid=1001,sec=sys,rw,secure,root_squash,all_squash)

하지만 다음을 실행할 때 showmount -ehost1이 표시되지 않습니다 .

/mnt/data host2 host3 host4

/mnt/data실제로 나는 host1에서 마운트 할 수 없습니다 :

[root@host1 ~]# mount -a
mount.nfs: access denied by server while mounting nfs-server:/mnt/data/

호스트 2, 3, 4는 정상적으로 마운트됩니다.

PS: 자세한 내용은 다음을 참조하세요.

  • host1...hostn은 NFS 서버를 확인하고 ping할 수 있습니다.
  • 테스트를 위해 SElinux가 비활성화되었습니다.
  • 서버와 클라이언트 모두 방화벽이 없습니다(가상 머신은 서로 복제되어 있음).

편집하다:

당신의 답변에 감사드립니다.

strace별로 표시되지 않습니다.

stat("/run", {st_mode=S_IFDIR|0755, st_size=960, ...}) = 0
stat("/run/mount/utab", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
getcwd("/root", 4095)                   = 6
readlink("/root/nfs-server:", 0x7ffe3a9ee090, 4096) = -1 ENOENT (No such file or directory)
readlink("/mnt", 0x7ffe3a9edf70, 4096)  = -1 EINVAL (Invalid argument)
readlink("/mnt/data", 0x7ffe3a9edf70, 4096) = -1 EINVAL (Invalid argument)
stat("/sbin/mount.nfs", {st_mode=S_IFREG|S_ISUID|0755, st_size=113400, ...}) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fd1b08f6b50) = 51633
wait4(-1, mount.nfs: access denied by server while mounting nfs-server:/mnt/data/
[{WIFEXITED(s) && WEXITSTATUS(s) == 32}], 0, NULL) = 51633
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=51633, si_status=32, si_utime=0, si_stime=0} ---
close(1)                                = 0
close(2)                                = 0
exit_group(0)                           = ?
+++ exited with 0 +++

Host1 측에서 서비스를 실행할 때 nfsv4.0-svc서비스가 실행되고 있지 않은 것을 확인했습니다.

[root@host1 ~]# ps -aux --forest | grep nfs
root      1199  0.0  0.0      0     0 ?        S<   Feb15   0:00  \_ [nfsiod]

그리고 성공적으로 마운트된 다른 호스트에서 실행 중입니다./mnt/data

[root@host2 ~]$ ps -ef | grep nfs
root      1296     2  0 févr.15 ?     00:00:00 [nfsiod]
root      1302     2  0 févr.15 ?     00:00:00 [nfsv4.0-svc]

하지만 이것이 원인인지 결과인지는 모르겠습니다(즉, nfsv4.0-svc설치가 성공했기 때문에 실행 중입니다...): pb의 소스가 될 수 있을까요?

답변1

내 마지막 게시물에 대한 답장을 받지 못해 죄송합니다. 저는 stackexchange를 처음 접했습니다.

마침내 문제를 발견했습니다. showmount -e또는 를 실행할 때 showmount -e [nfs-server DNS]표시된 내보내기가 좋지 않습니다.

그러나 런타임 showmount -e localhost정도 에는 showmount -e [nfs-server IP]올바른 내보내기(host1 포함)가 표시됩니다.

따라서 nfs-server IP를 사용하여 호스트 1에서 마운트를 실행하면 문제가 해결되었습니다(복제된 VM의 DNS 기반 자동화에는 너무 나빴습니다...).

우리는 Azure 또는 인프라에서 실행 중이므로 이 DNS 문제가 발생할 수 있습니다.

감사해요.

알렉스.

관련 정보