루트 대신 nfsv4 폴더를 직접 마운트하는 방법

루트 대신 nfsv4 폴더를 직접 마운트하는 방법

CentOS 8 실행

server side: /etc/exports:
/home/share *(ro)

/home 및 /home/share는 root.root가 소유하며 디렉터리에 대해 755 권한, 파일에 대해 644 권한을 갖습니다.

 client side:
 mount -t nfs4 server:/ /sharefolder

fs의 루트를 마운트하는 대신 /home/share를 /sharefolder에 직접 마운트하려면 어떻게 해야 합니까? "mount -t nfs4 server:/home/share /sharefolder"를 시도하면 "작업이 허용되지 않음" 오류가 발생합니다.

답변1

mount -t nfs4 server:/home/share /sharefolder클라이언트측 명령이 올바른 것 같고 방금 테스트한 대로 설정이 제대로 작동합니다.

물론 루트로 명령을 입력하거나 sudo함께 사용해야 합니다. "작업이 허용되지 않음" 오류 메시지는 실수로 루트가 아닌 사용자로 명령을 실행했거나 공유 이름을 잘못 입력했음을 나타냅니다.

을 내보내고 마운트하는 경우에도 server:/home/shareNFSv4 서버는 자동 생성을 수행해야 합니다.가상 수출및 .//home그러나 이는 NFS 서버의 실제 /또는 가 아니라 /home실제로 내보낸 디렉터리에 도달하는 데 필요한 최소한의 하위 디렉터리만 포함하는 가상 읽기 전용 디렉터리입니다. 공유가 마운트되면 /proc/fs/nfsd/exportsNFS 서버에서 다음을 볼 수 있습니다.

cat /proc/fs/nfsd/exports
# Version 1.1
# Path Client(Flags) # IPs
/home   *(ro,insecure,no_root_squash,sync,no_wdelay,no_subtree_check,v4root,uuid=e4c0fcd4:00b94db3:b63bd9a8:0e705e29,sec=390003:390004:390005:1)
/home/share     *(ro,root_squash,sync,wdelay,no_subtree_check,uuid=e4c0fcd4:00b94db3:b63bd9a8:0e705e29,sec=1)
/       *(ro,insecure,no_root_squash,sync,no_wdelay,no_subtree_check,v4root,fsid=0,uuid=e4c0fcd4:00b94db3:b63bd9a8:0e705e29,sec=390003:390004:390005:1)

답변2

약간의 테스트 후에 문제를 재현할 수 있었고 방화벽 문제인 것으로 밝혀졌습니다. 방화벽이 비활성화되어 있는지 확인하고 nfs나중에 공유가 작동하는지 확인하십시오.

다음을 사용한다고 가정합니다 firewalld.

sudo systemctl stop firewalld

예상대로 작동한다고 판단되면 nfs방화벽 구성을 변경해야 합니다. nfs다른 데몬 프로세스에 의존하므로 nfs가 올바르게 작동하려면 뿐만 nfs아니라 mountdrpc-bind

sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --reload

특정 영역에만 이러한 서비스를 허용하려면 다음을 추가하여 영역을 지정할 수도 있습니다.--zone=nfszone

이 솔루션을 철저하게 테스트하지 않았으므로 모든 기능(예: 파일 잠금)이 작동하려면 추가 포트를 열어야 할 수도 있습니다.https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/storage_administration_guide/s2-nfs-nfs-firewall-config

관련 정보