NFS 마운트 - Proxmox 컨테이너에서 "작업이 허용되지 않음"

NFS 마운트 - Proxmox 컨테이너에서 "작업이 허용되지 않음"

단순 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 -avexportfs -s

nfs 클라이언트에서 간단한 mount 192.168.1.1:/bkup /bkup마운트는 {nfs 서버와 일치하도록 IP 주소를 변경하고 이에 따라 폴더 이름을 변경}해야 합니다.

반품a와 a를 실행하여 service firewalld stop각각 setenforce 0방화벽을 끄고 selinux를 끄십시오 . 나는 selinux가 일반적으로 nfs를 차단한다고 생각하지 않지만, 마운트가 작동하도록 한 번에 한 단계씩... 내가 여기서 언급한 것은 항상 최소한 nfs가 작동하도록 하는 것입니다. 도움이 되길 바랍니다.

관련 정보