如何在NFS上使用扩展文件属性?

时间:2014-07-08 10:27:58

标签: linux mount nfs xattr

我有一个 NFS_Server - NFS_Client 系统。 我的客户端已挂载到NFS_Server 目录。 我想使用扩展文件属性(xattr)通过NFS_Client挂载目录更改NFS_Server目录文件的属性。

当我尝试从客户端设置属性时,它给出以下答案:

root @ ubuntu:/ mnt / nfs / var / nfs#setfattr -n user.comment -v "some comment" test.txt setfattr: nfs.txt: 权限被拒绝

我的问题是:

  • 是否可以通过NFS使用扩展文件属性?

  • 如果可能,我该怎么做?

更新

服务器端:

$ more  /etc/exports file has:    
/var/nfs        192.168.56.123(rw,sync,no_subtree_check)

客户方:

$ root@ubuntu:/# mount -t nfs
192.168.56.130:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,vers=4,addr=192.168.56.130,clientaddr=192.168.56.123)
谢谢......

4 个答案:

答案 0 :(得分:6)

您可以使用fuse_xattrs(融合文件系统层)来模拟NFS共享上的扩展属性(xattrs)。基本上你必须这样做:

  1. 挂载NFS共享。例如:/mnt/shared_data
  2. 安装保险丝xattr层: $ fuse_xattrs /mnt/shared_data /mnt/shared_data_with_xattrs
  3. 现在/mnt/shared_data上的所有文件都可以通过支持xattrs的/mnt/shared_data_with_xattrs访问。扩展属性将存储在sidecar文件中。扩展属性不会作为扩展属性存储在服务器文件系统中,它们将存储在sidecar文件中。

    可悲的是,这只是一种解决方法。

    免责声明:我是fuse_xattrs的作者。

答案 1 :(得分:4)

(这篇文章很旧,但在查找此功能时我遇到过这篇文章,它并不代表当前状态。)

正如其他人所提到的,NFS中不支持扩展属性。但是,在有proposed standard (RFC 8276)的情况下,人们对此非常感兴趣。

答案 2 :(得分:1)

nfs不支持扩展属性。在nfs内核模块中没有用户属性的处理程序。有关更多信息,请阅读nfsv4的RFC。

答案 3 :(得分:0)

Linux 5.9 中的 NFS 代码终于提供了对用户扩展属性(用户 xattrs)的支持。

Linux 5.9 的 NFS 服务器更新支持 NFS 上的用户扩展属性。这是通过 IETF 的 RFC 8276 概述的功能,用于处理 NFSv4 中的文件系统扩展属性。 “此功能允许使用 NFSv4 客户端查询和操作扩展属性(以下也称为 xattrs)。Xattrs 由文件系统提供,用于将不由文件系统解释的不透明元数据与文件和目录相关联。这种支持是存在于许多现代本地文件系统中。提供了新的文件属性以允许客户端查询服务器以获取 xattr 支持,该支持包括在文件系统对象上获取和设置 xattr 的新操作。"

来源:https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.9-NFS-Server-User-Xattr