루트 대신 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

관련 정보