NFS経由でFUSEをエクスポートできない


8

mountpoint上のNFSサーバーにマウントする自己記述型のFUSEファイルシステムを持っています/export/example/mount。次に、NFSを介してFUSEの親ディレクトリをエクスポートします。/etc/exportsオプションが含まれていますnohide,crossmnt,subtree_check,ro,no_root_squashし、誰でも自由にアクセスすることができます:

/export/example *(nohide,crossmnt,subtree_check,ro,no_root_squash)

このエクスポートをNFSクライアントにマウントしてアクセスできます。NFS内のFUSEにアクセスするとすぐにumount、NFSになるまでクライアントがハングします(それを行うにはオプション-fを使用する必要があります)。

FUSEを作業ユーザーおよびrootとしてマウントしてみました。結果は同じです。

サーバーはUbuntu 12.04、クライアントはSuSE 9.3を実行しています。FUSEはPythonで記述されており、ローカルで問題なく動作します。NFS経由のエクスポートのみが失敗します。これはすべて信頼できるユーザーのみのプライベートネットワーク上にあるため、セキュリティ制限はありません。

誰かが私の問題を引き起こす可能性のあるアイデアや、問題を解決する方法を知っていますか?

問題を回避するためにNFSをSSHFSで置き換えることを考えましたが、クライアントシステムが古すぎてSSHFSをサポートできないため(FUSEに基づいており、FUSEはサポートされていないため)、それは機能しません。


allow_othersshfsマウントのオプションを試しましたか?
skarap 14

はい、そうしました。役に立たない、残念ながら。しかし、その間、古いハードウェアを古いシステムでオフに切り替えたので、この質問はもう興味深いものではありません。私はおそらくそれを閉じるべきです... ;-)
Alfe

解決策は見つかりましたか?5年後、私は同じ問題を抱えました。NFSで処理されるディレクトリのサブディレクトリにマウントされたヒューズ(s3fs)パーティションが、nfsクライアントでも(nfs4を使用しても)表示されない...
Matthieu G

使用しましたcrossmntか?そして、ヒューズ側(s3fs)は他のユーザーによる使用を許可しますか(これにはマウントオプションもあります)。nfsがマルチユーザーであるのに対し、fuseはユーザースペース(1人のシングルユーザーが使用することを意味する)であることを忘れないでください。
Alfe、

回答:


7

ほとんどのLinuxディストリビューションには、NFSv2またはNFSv3を使用してFUSEマウントされたファイルシステムをエクスポートできないカーネルが付属しています。選択肢は次のとおりです。1.ファイルシステムをカーネル空間に実装します。2. NFSv4にエクスポートします。これには、fsid =が必要です。

私は自分自身を使用しています。2。下の図では、コマンド#はサーバーで実行され、コマンド$はクライアントで実行されます。

これは私のサーバー構成です。FUSEマウントポイントをエクスポートしています。

# mount | tail -n1
convmvfs on /mnt/gb2312 type fuse.convmvfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
# grep gb2312 /etc/exports 
/mnt/gb2312     192.168.0.0/16(no_subtree_check,fsid=0)

これは私が私のクライアントでしたことです:

$ sudo mount -t nfs4 server:/ /mnt/
$ ls /mnt
Downloads  IMAGES  Library  lost+found

NFS v2 / v3でfuseをエクスポートしたことが障害の原因であることを確認するには、NFS v4(fsid)を使用せずにそのマウントポイントをエクスポートし、エラーが発生するかどうかを確認します。

# exportfs -a
exportfs: /mnt/gb2312 requires fsid= for NFS export

サーバーでマウントポイントをumountでエクスポートし、後でfuseを使用してマウントした場合、nfsクライアントを使用しようとすると、ログに表示されます。

# tail /var/log/syslog
Aug 18 03:54:31 server rpc.mountd[17183]: Cannot export /mnt/gb2312, possibly unsupported filesystem or fsid= required
Aug 18 04:00:52 server rpc.mountd[17183]: Caught signal 15, un-registering and exiting.

0

デフォルトでは、nfsを介したサブマウントのエクスポートはオフになっています。推奨される処置は、サブマウントもエクスポートし、クライアントにもマウントさせることです。


はい、わかっていますが、私が書いたように、サブマウントの内容をエクスポートできるようにするマウントオプションのさまざまな組み合わせを試しました。実際、プレーンマウントされたISOイメージでは、これは問題なく機能します。私のFUSEでのみ失敗します。また、ホストが古すぎてFUSEをサポートしていないため、クライアントにFUSEをマウントできません。そのFUSE-via-NFSの全体的なアイデアは、クライアントが自身で実行できないそのFUSEの機能にアクセスできるようにすることです。
Alfe

/ exports / example / mountをエクスポートして、クライアントからマウントする必要があります。
2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.