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 stopsetenforce 0selinuxをオフにします。私はselinuxが通常nfsをブロックしているとは思わないが、マウントが動作するように一度に1ステップずつ...私がここで言及したのは、常に少なくともnfsが動作するようにすることです。お役に立てば幸いです。

関連情報