在 Ubuntu-12.04 上运行 mhddfs 0.1.38,有两个 NFS 卷从两个不同的服务器导出并安装到此框。我可以成功创建 mhddfs 卷,我可以读取和列出它,但无法在其上创建或编辑任何文件。如果我尝试通过其 NFS 挂载点编辑文件,则没有问题;只有通过 mhddfs 挂载。
user1@mhddfs-1:~$ ls -l /mnt/virtual/
total 4
-rw-rw-r-- 1 user1 user1 1511 May 7 17:50 testfile.txt
user1@mhddfs-1:~$ echo "hello" >> /mnt/virtual/testfile.txt
-bash: /mnt/virtual/testfile.txt: Permission denied
user1@mhddfs-1:~$ echo "hello" >> /mnt/nfs1/testfile.txt
user1@mhddfs-1:~$ ls -l /mnt/virtual/
total 4
-rw-rw-r-- 1 user1 user1 1517 May 7 18:19 testfile.txt
user1@mhddfs-1:~$ mhddfs --version
mhddfs version: 0.1.38
user1@mhddfs-1:~$ tail -1 /etc/fstab
mhddfs#/mnt/nfs1,/mnt/nfs2 /mnt/virtual fuse defaults,allow_other,logfile=/var/log/mhddfs.log,loglevel=0 0 0
user1@mhddfs-1:~$ mount | grep mhddfs
/mnt/nfs1;/mnt/nfs2 on /mnt/virtual type fuse.mhddfs (rw,allow_other)
user1@mhddfs-1:~$
我已经打开日志调试并且唯一相关的条目是:
mhddfs [2015-05-07 17:50:43]: [140344990897920] mhdd_stat: /testfile.txt
mhddfs [2015-05-07 17:50:43]: [140344999290624] mhdd_fileopen: /testfile.txt, flags = 8401
mhddfs [2015-05-07 17:50:43] (info): [140344999290624] mhdd_internal_open: /testfile.txt, flags = 0x8401
mhddfs [2015-05-07 17:50:43] (info): [140344999290624] mhdd_fileopen: error: Permission denied
我看到了先前的答案,其中通过 /etc/fuse.conf 中的条目修复了这个问题,但这对我来说不起作用:
user1@mhddfs-1:~$ cat /etc/fuse.conf
# Set the maximum number of FUSE mounts allowed to non-root users.
# The default is 1000.
#
#mount_max = 1000
# Allow non-root users to specify the 'allow_other' or 'allow_root'
# mount options.
#
user_allow_other
user1@mhddfs-1:~$
我可以写入 NFS 挂载,所以那部分是好的,我只是不能写入 mhddfs 挂载。
有什么想法吗?
答案1
看来这是 nfs-kernel-server 的问题,以及它如何与 fuse 配合使用的问题。它如何向客户端呈现其导出的卷,以及它与 fuse 配合得不好。有人建议尝试使用用户模式 NFS 服务器,如 Ganesha,但即使是 Ganesha 也存在同样的问题。