无法通过NFS导出FUSE


8

我有一个自行编写的FUSE文件系统,该文件系统安装在mountpoint的NFS服务器上/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,我的客户端就会挂起,直到我umountNFS 挂起(并且我需要使用option -f来完成该操作)。

我尝试将FUSE作为我的工作用户和root用户挂载。结果是一样的。

服务器正在运行Ubuntu 12.04,客户端正在运行SuSE 9.3。FUSE是用Python编写的,可以在本地正常工作。仅通过NFS导出失败。我没有安全限制,因为所有这些都位于仅具有受信任用户的专用网络上。

是否有人知道会导致我麻烦的原因,或者(甚至更好)如何解决该问题?

我曾考虑过用SSHFS替换NFS来解决此问题,但是由于客户端系统太旧而无法支持SSHFS(因为它基于FUSE,并且不支持FUSE),因此无法正常工作。


您是否尝试过allow_other将sshfs挂载的选项?
skarap 2014年

是的,我做到了。不幸的是无济于事。但是与此同时,我们用旧系统关闭了旧硬件,因此这个问题不再引起人们的兴趣。我应该关闭它... ;-)
Alfe

您找到解决方案了吗?5年后,我遇到了同样的问题。nfs客户端(即使使用nfs4)也无法看到安装在NFS服务目录的子目录中的保险丝(s3fs)分区...
Matthieu G

你用了crossmnt吗?保险丝侧(s3fs)是否允许其他用户使用(也有安装选项)。不要忘记,保险丝是用户空间(仅供一个用户使用),而nfs是多用户。
Alfe

Answers:


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中的导出保险丝引起的,请专门导出没有NFS v4(fsid)的安装点,然后查看是否出现错误:

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

如果在服务器上导出了已挂载的挂载点,并在以后用保险丝将其挂载,那么如果您尝试使用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。通过NFS进行FUSE的整个想法只是允许客户端访问它自己无法运行的FUSE的功能。
2013年

您需要导出/ exports / example / mount并从客户端安装它。
hildred
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.