이상한 문제가 있습니다. 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
하위 수준 디렉터리가 마운트될 수 있습니다.