
단순 NFS 공유를 마운트하려고 하는데 "작업이 허용되지 않음"이라는 메시지가 계속 표시됩니다.
NFS 서버에는 다음과 같은 공유가 있습니다.
/mnt/share_dir 192.168.7.101(ro,fsid=0,all_squash,async,no_subtree_check) 192.168.7.11(ro,fsid=0,all_squash,async,no_subtree_check)
두 클라이언트 모두에 대해 공유가 활성화된 것으로 나타납니다.
# exportfs -s
/mnt/share_dir 192.168.7.101(ro,async,wdelay,root_squash,all_squash,no_subtree_check,fsid=0,sec=sys,ro,secure,root_squash,all_squash)
/mnt/share_dir 192.168.7.11(ro,async,wdelay,root_squash,all_squash,no_subtree_check,fsid=0,sec=sys,ro,secure,root_squash,all_squash)
클라이언트 192.168.7.101이 공유를 볼 수 있습니다.
$ sudo showmount -e 192.168.7.10
Export list for 192.168.7.10:
/mnt/share_dir 192.168.7.101
192.168.7.101의 마운트 대상:
# ls -lah /mnt/share_dir/
total 8.0K
drwxr-xr-x 2 me me 4.0K Aug 28 19:21 .
drwxr-xr-x 3 root root 4.0K Aug 28 19:21 ..
nfs
공유를 마운트하려고 하면 클라이언트가 "Operation not allowed"라는 메시지를 사용하거나 입력합니다 nfs4
.
$ sudo mount -vvv -t nfs 192.168.7.10:/mnt/share_dir /mnt/share_dir
mount.nfs: timeout set for Sun Aug 28 21:56:03 2022
mount.nfs: trying text-based options 'vers=4.2,addr=192.168.7.10,clientaddr=192.168.7.101'
mount.nfs: mount(2): Operation not permitted
mount.nfs: trying text-based options 'addr=192.168.7.10'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 192.168.7.10 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying 192.168.7.10 prog 100005 vers 3 prot UDP port 46169
mount.nfs: mount(2): Operation not permitted
mount.nfs: Operation not permitted
fsid=0
내보내기 옵션을 설정했는데 insecure
작동하지 않습니다.
클라이언트의 RPC정보:
# rpcinfo -p 192.168.7.10
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100005 1 udp 59675 mountd
100005 1 tcp 37269 mountd
100005 2 udp 41354 mountd
100005 2 tcp 38377 mountd
100005 3 udp 46169 mountd
100005 3 tcp 39211 mountd
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049
100003 3 udp 2049 nfs
100227 3 udp 2049
100021 1 udp 46745 nlockmgr
100021 3 udp 46745 nlockmgr
100021 4 udp 46745 nlockmgr
100021 1 tcp 42571 nlockmgr
100021 3 tcp 42571 nlockmgr
100021 4 tcp 42571 nlockmgr
다른 클라이언트를 사용하세요.192.168.7.11, 아무런 문제 없이 공유를 마운트할 수 있었습니다.
어떤 문제나 잘못된 구성도 볼 수 없으며 어디에서도 수정 사항을 찾을 수 없습니다. 방해가 되는 방화벽이 없으며 서버와 클라이언트 모두 Debian 11을 사용합니다.
무슨 일이 일어났는지 아세요?
답변1
이 문제를 발견했습니다.
기본적으로 Proxmox에서 Debian 권한이 없는 컨테이너를 만들었습니다. 이는 NFS를 사용할 수 없음을 의미합니다. 지금까지 Proxmox 컨테이너를 사용할 때 이러한 제한 사항을 인식하지 못했습니다.
컨테이너 내부의 NFS 공유에 액세스할 수 있도록 다음 제안을 따랐습니다.프록시모쿠스 포럼.
먼저 Proxmox 호스트에 NFS 공유를 마운트했습니다(문제 없음). 그런 다음 Proxmox에서 '바인드 마운트" 이 NFS 파티션을 내 컨테이너에 바인딩합니다.
# pct set 903 -mp0 /mnt/host_dir,mp=/mnt/guest_dir
이것이 최선의 접근 방식인지는 확실하지 않지만 이제 컨테이너 내에서 NFS 공유에 액세스할 수 있습니다.
또 다른 가능성은 컨테이너를 다시 만드는 것입니다.특권NFS를 활성화합니다.
답변2
저는 RHEL 7.9를 사용하고 있는데 어쨌든 21세기가 된 지 22년이 된 NFS에 실망했습니다...
내 경험에 따르면 를 편집하면 /etc/nfs.conf
일반적 /etc/sysconfig/nfs
으로 마운트하면 버전 3이 지연됩니다. 저에게는 RHEL 7.9에서 다른 배포판에 대해서는 말할 수 없지만 NFS v4.1이 작동하도록 하려면 두 파일 중 하나에서 아무것도 변경할 수 없었고 기껏해야 v4.1만 작동할 수 있었습니다. NFS v4.2가 /etc/nfs.conf
.
/etc/nfs.conf
따라서 mountd 및 statd 포트 번호 와 같은 nfs 서버와 클라이언트 간의 모든 세부 정보가 일치하는지 확인하십시오 /etc/sysconfig/nfs
. 기본적으로 NFS4의 경우 포트 2049에서 모두 발생해야 합니다. nfs 서버와 클라이언트 사이에 포트 번호 차이가 있는 경우 마운트가 발생하지 않습니다.
참고로 최소 요구사항은 다음과 같습니다.
nfs 서버에서 /etc/exports
인증 한 다음 /bkup *(rw,no_root_squash)
.exportfs -av
exportfs -s
nfs 클라이언트에서 간단한 mount 192.168.1.1:/bkup /bkup
마운트는 {nfs 서버와 일치하도록 IP 주소를 변경하고 이에 따라 폴더 이름을 변경}해야 합니다.
반품a와 a를 실행하여 service firewalld stop
각각 setenforce 0
방화벽을 끄고 selinux를 끄십시오 . 나는 selinux가 일반적으로 nfs를 차단한다고 생각하지 않지만, 마운트가 작동하도록 한 번에 한 단계씩... 내가 여기서 언급한 것은 항상 최소한 nfs가 작동하도록 하는 것입니다. 도움이 되길 바랍니다.