nfs 디렉토리는 마운트할 수 있지만 하위 디렉토리는 마운트할 수 없습니까?

nfs 디렉토리는 마운트할 수 있지만 하위 디렉토리는 마운트할 수 없습니까?

이상한 문제가 있습니다. NFS를 통해 디렉토리를 마운트할 수 있지만 해당 디렉토리의 하위 디렉토리는 마운트할 수 없습니다. 예를 들어. 호스트 서버(CentOS Linux 버전 7.4.1708(코어))에는 다음 디렉터리가 있습니다.

[root@hwdatalake datalake]# pwd
/datalake

[root@hwdatalake datalake]# ls -lha .
total 8.0K
drwxrwx---. 14 root    etlusers     4.0K Dec 24 10:03 .
dr-xr-xr-x. 18 root    root          240 Dec 12 10:24 ..
dr-xr-x---.  2 root    root           29 Dec 16 11:08 CUPSS_HI
dr-xr-x---.  2 root    root           29 Dec 16 11:16 CUPSS_NAT
dr-xr-x---.  2 root    root           26 Dec 16 11:17 NAT_BRFSS

그리고/etc/exports

/datalake       airflowetl(rw,fsid=0,root_squash,sync)
/datalake/HI_BRFSS      airflowetl(ro,root_squash,sync)

airflowetl 서버(CentOS Linux 버전 7.4.1708(코어))라는 클라이언트에서 nfs 서버의 최상위 디렉터리를 성공적으로 마운트할 수 있습니다.

[root@airflowetl airflow]# mount -v hwdatalake.co.local:/datalake /dlnfs
mount.nfs: timeout set for Mon Dec 30 13:04:59 2019
mount.nfs: trying text-based options 'vers=4.1,addr=172.18.4.97,clientaddr=172.18.4.69'=

하지만 또한 보았다

[root@airflowetl airflow]# umount /dlnfs
[root@airflowetl airflow]# showmount -e hwdatalake
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

하위 디렉터리를 마운트하려고 하면

[root@airflowetl airflow]# mount -v hwdatalake.co.local:/datalake/HI_BRFSS /dlnfs
mount.nfs: timeout set for Mon Dec 30 13:12:55 2019
mount.nfs: trying text-based options 'vers=4.1,addr=172.18.4.97,clientaddr=172.18.4.69'
mount.nfs: mount(2): Permission denied
mount.nfs: trying text-based options 'vers=4.0,addr=172.18.4.97,clientaddr=172.18.4.69'
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: portmap query failed: RPC: Remote system error - No route to host
mount.nfs: trying text-based options 'vers=4.0,addr=172.18.4.97,clientaddr=172.18.4.69'

그러나 이전 디렉터리에는 설치가 가능했고 명백한 방화벽 설정이 구성되어 있었습니다...

firewall-cmd --permanent --zone=public --add-service=ssh
firewall-cmd --permanent --zone=public --add-service=nfs
firewall-cmd --reload

무엇을 해야할지 잘 모르겠습니다. 더 많은 경험을 가진 사람이 추가 디버깅 팁을 갖고 있거나 여기서 무엇이 잘못되었는지 알고 있습니까?

답변1

몇번의 검색 끝에,

showmount -e hwdatalake
RPC: Remote system errorRPC: Port mapper failure - RPC: Timed out.

했다...

firewall-cmd --permanent --zone=public --add-service=mountd
firewall-cmd --permanent --zone=public --add-service=rpc-bind
firewall-cmd --reload

rpc 서비스가 방화벽에 걸렸는지 확인하면 문제가 해결되고 showmount하위 수준 디렉터리가 마운트될 수 있습니다.

이것을 사용했습니다기사(이전에 비슷한 기사가 사용되었습니다.여기이 단계는 생략됩니다)

관련 정보