首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在NFS上使用扩展文件属性?

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

Stack Overflow用户
提问于 2014-07-08 10:27:57
回答 5查看 16.8K关注 0票数 12

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

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

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

我的问题是:

  • 是否可以通过NFS使用扩展文件属性?
  • 如果可能的话,我该怎么做?

更新:

服务器端:

代码语言:javascript
运行
复制
$ more  /etc/exports file has:    
/var/nfs        192.168.56.123(rw,sync,no_subtree_check)

客户端:

代码语言:javascript
运行
复制
$ 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)

谢谢..。

EN

回答 5

Stack Overflow用户

发布于 2017-05-22 01:49:54

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

  1. 安装NFS共享。例如:/mnt/shared_data
  2. 安装保险丝xattr层:$ fuse_xattrs /mnt/shared_data /mnt/shared_data_with_xattrs

现在,/mnt/shared_data上的所有文件都可以在/mnt/shared_data_with_xattrs上访问,并支持xattrs。扩展属性将存储在sidecar文件中。扩展属性不会作为扩展属性存储在服务器文件系统上,而是存储在侧文件中。

遗憾的是,这只是一个解决方案。

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

票数 11
EN

Stack Overflow用户

发布于 2017-12-14 02:58:13

(这篇文章很老了,但是我在寻找这个功能时遇到了这篇文章,它并不代表当前的状态。)

正如其他人所提到的,NFS中不支持扩展属性。然而,只要有一个拟议标准(RFC 8276),人们对它有很大的兴趣。

票数 7
EN

Stack Overflow用户

发布于 2022-06-09 16:05:58

所需要的只是服务器和客户端上的Linux内核版本5.9或更高版本,然后使用NFSVersion4.2或更高版本挂载。当服务器和客户端都支持nfs 4.2时,将自动启用对扩展属性的支持。

我的服务器和客户端上都有5.15.16版本的内核版本,其中包含nfs-utils-2.5.4-r3,它适用于我:

NFS服务器/etc/导出

代码语言:javascript
运行
复制
/  192.168.0.42(rw,subtree_check,no_root_squash)

NFS客户端/etc/fstab

代码语言:javascript
运行
复制
192.168.0.42:/  /mnt/slowpc  nfs  noatime,nodiratime,noauto,hard,rsize=1048576,wsize=1048576,timeo=60,retrans=60  0 0

NFS客户端

代码语言:javascript
运行
复制
# mount | grep /mnt/slowpc
192.168.0.42:/ on /mnt/slowpc type nfs4 (rw,noatime,nodiratime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=60,retrans=60,sec=sys,local_lock=none)
# cd /mnt/slowpc/tmp
# touch file
# printf bar | attr -s foo file
Attribute "foo" set to a 3 byte value for file:
bar
# attr -l file
Attribute "foo" has a 3 byte value for file

NFS服务器

代码语言:javascript
运行
复制
# attr -l /tmp/file
Attribute "foo" has a 3 byte value for /tmp/file

https://lwn.net/Articles/799185/中,需要使用新的挂载选项user_xattr。但是,当前的nfs实用程序不支持该选项。幸运的是,user_xattr可以在可能的情况下自动启用。

代码语言:javascript
运行
复制
# mount -o user_xattr /mnt/test
mount.nfs: an incorrect mount option was specified
# tail -n 1 /var/log/messages
Jan 30 02:51:08 utl01 kernel: nfs: Unknown parameter 'user_xattr'
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24629459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档