Как использовать расширенные атрибуты файлов в NFS?

У меня есть система NFS_Server — NFS_Client. Мой клиент подключен к каталогу NFS_Server. Я хочу изменить атрибут файлов каталога NFS_Server через смонтированный каталог NFS_Client, используя Расширенные атрибуты файлов (xattr).

Когда я попытался установить атрибут со стороны клиента, он дает следующий ответ:

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)

Спасибо...


person Celik    schedule 08.07.2014    source источник
comment
Если вы запустите эту команду setfattr как владелец файла вместо root, вы получите сообщение об ошибке?   -  person Mark Plotnick    schedule 08.07.2014
comment
мой владелец также root, и он также выдает то же сообщение об ошибке. Вы пробовали это? то что я хочу возможно или?   -  person Celik    schedule 08.07.2014
comment
Можете ли вы указать параметры экспорта, которые вы используете на сервере, и параметры монтирования, которые вы используете на клиенте, а также дистрибутив клиента и сервера? Это нам очень поможет.   -  person Mark Plotnick    schedule 08.07.2014
comment
Я добавил кое-что в часть обновления, есть то, что вы хотите?   -  person Celik    schedule 08.07.2014
comment
Вы делаете какое-либо сопоставление идентификаторов NFS на сервере? Файл конфигурации для этого /etc/idmapd.conf. По умолчанию сервер NFS преобразует root на клиенте в nobody на сервере, поэтому я думаю, что запуск setfattr от имени пользователя root может привести к ошибке отказ в доступе.   -  person Mark Plotnick    schedule 08.07.2014
comment
Мне очень жаль, я думал, что ваша проблема связана только с сопоставлением идентификаторов, но дело не только в этом. Похоже, что ядро ​​Ubuntu не поддерживает пользовательские xattr в файловых системах NFS. Если вы измените параметры экспорта, чтобы включить no_root_squash, что позволит root на клиенте NFS быть root на сервере, сообщение об ошибке setfattr изменится с Отказано в доступе на Операция не поддерживается. mount примет параметр acl, но не вариант user_xattr для файловой системы NFS.   -  person Mark Plotnick    schedule 09.07.2014
comment
спасибо тебе за помощь...   -  person Celik    schedule 09.07.2014


Ответы (4)


Вы можете использовать fuse_xattrs (уровень файловой системы fuse) для эмуляции расширенных атрибутов (xattrs) в общих ресурсах NFS. В основном вы должны сделать:

  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. Расширенные атрибуты будут храниться в дополнительных файлах. Расширенные атрибуты не будут храниться в файловой системе сервера как расширенные атрибуты, они будут храниться в дополнительных файлах.

К сожалению, это всего лишь обходной путь.

отказ от ответственности: я являюсь автором fuse_xattrs.

person fbarriga    schedule 22.05.2017
comment
Не могли бы вы принять запросы на вытягивание от @loloiccl? Они выглядят важными. github.com/fbarriga/fuse_xattrs/pulls - person tu-Reinstate Monica-dor duh; 04.04.2019

(Эта статья устарела, но я наткнулся на эту статью, когда искал эту функцию, и она не отражает текущее состояние.)

Как уже упоминалось, в NFS нет поддержки расширенных атрибутов. Однако к нему существует значительный интерес, поскольку существует предлагаемый стандарт (RFC 8276). .

person Drew    schedule 14.12.2017
comment
Хотя это может ответить на вопрос, было бы предпочтительнее включить сюда основные части ответа и предоставить ссылку для ссылка. - person Tom Aranda; 14.12.2017
comment
Извините, я не знаю, что вы ищете @TomAranda - я предоставляю ссылку, основная часть ответа заключается в том, что в NFS нет поддержки расширенных атрибутов. У меня также есть не просто ссылка — ссылка описывается как предлагаемый стандарт (подразумевается, что это предлагаемый стандарт для поддержки расширенных атрибутов). Я даже описал ссылку с номером RFC на случай, если ссылка сгниет, что кажется действительно маловероятным в данном случае. Можете ли вы уточнить? - person Drew; 15.12.2017
comment
Похоже, Linux 5.9 наконец-то будет поддерживать расширенные пользовательские атрибуты для NFS. PR сервера: lkml.org/lkml/2020/8/9/137 , PR клиента: lkml.org/lkml/2020/8/14/712 - person corford; 05.10.2020

Расширенные атрибуты не поддерживаются nfs. В модуле ядра nfs нет обработчика пользовательских атрибутов. Для получения дополнительной информации см. RFC для nfsv4.

person Sandeep Parmar    schedule 22.02.2015
comment
Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если связанная страница изменится. - person AlvaroAV; 23.02.2015
comment
какая ссылка @AlvaroAV? Можешь поделиться? - person Celik; 20.10.2015
comment
Поддержка NFS для расширенных атрибутов файлов (xattr) была добавлена ​​в Linux 5.9 (выпущена 11 октября 2020 г.) - person Erik Sjölund; 25.12.2020

Код NFS в Linux 5.9 наконец-то представил поддержку расширенных атрибутов пользователя (user xattrs).

Обновления сервера NFS для Linux 5.9 поддерживают расширенные пользователем атрибуты в NFS. Это функциональность, описанная в RFC 8276 IETF для обработки расширенных атрибутов файловой системы в NFSv4. Эта функция позволяет запрашивать расширенные атрибуты (далее также называемые xattrs) и управлять ими с помощью клиентов NFSv4. Xattrs предоставляются файловой системой для связывания непрозрачных метаданных, не интерпретируемых файловой системой, с файлами и каталогами. Такая поддержка присутствует во многих современных локальных файловых системах. Предоставляются новые атрибуты файлов, позволяющие клиентам запрашивать у сервера поддержку xattr, причем эта поддержка состоит из новых операций для получения и установки xattr для объектов файловой системы.

Источник: https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.9-NFS-Server-User-Xattr

person GoodMirek    schedule 09.06.2021