Экспорт NFS v4 добавляет дополнительные параметры, не указанные в /etc/exports.

Вопрос или проблема

Это кажется тривиальным, но я потерял слишком много времени на поиск и чтение руководств. Сервер RHEL 7.9.

У меня есть простой каталог, экспортируемый на nfs v4 с использованием /etc/exports, с конкретными параметрами.

[ ~]# cat /etc/exports

/path/to/my/share/ remoteserver.host.com(rw,no_root_squash,sync,insecure) 
[ ~]#

Это экспортируется с помощью: ]# exportfs -ra

Однако, если я просматриваю информацию об экспорте в подробном режиме, я вижу гораздо больше опций, которые нарушают планируемые операции с долями. Да, я знаю, что могу быть более явным в /etc/exports, но мне интересно понять, откуда это берется, потому что это новая проблема, которая только что возникла.

 ~]# exportfs -v
/path/to/my/share/
                remoteserver.host.com(sync,wdelay,hide,no_subtree_check,sec=sys,rw,insecure,no_root_squash,no_all_squash)
[ ~]#

Вы можете увидеть дополнительные опции, и в моем случае, в частности, hide создает проблемы.

Я проверил: /etc/nfsmount.conf, но он полностью закомментирован.

По документации; акцент на последнюю строку мой:

Настройки по умолчанию:

  • ro
    Экспортируемая файловая система доступна только для чтения. Удаленные хосты не могут изменять данные, совместно используемые на файловой системе. Чтобы разрешить хостам вносить изменения в файловую систему (т.е. читать и записывать), укажите опцию rw.
  • sync
    Сервер NFS не ответит на запросы до тех пор, пока изменения, внесенные предыдущими запросами, не будут записаны на диск. Чтобы разрешить асинхронную запись, укажите параметр async.
  • wdelay
    Сервер NFS будет задерживать запись на диск, если подозревает, что другой запрос на запись неизбежен. Это может повысить производительность, так как уменьшает количество обращений к диску отдельными командами записи, тем самым сокращая нагрузку на запись. Чтобы отключить это, укажите no_wdelay. no_wdelay доступно только если указан параметр по умолчанию sync.
  • root_squash
    Это предотвращает получение удаленными (а не локальными) пользователями root-привилегий; вместо этого сервер NFS назначает им идентификационный номер пользователя nfsnobody. Это эффективно “сворачивает” полномочия удаленного пользователя root к самому низкому уровню локальных пользователей, препятствуя возможным несанкционированным записям на удаленный сервер. Чтобы отключить root squashing, укажите no_root_squash.

[ … ]

Каждый параметр по умолчанию для каждой экспортированной файловой системы должен быть явно переопределен.

Когда запускается exportfs, он читает /etc/exports и записывает /var/lib/nfs/etab с помощью функции xtab_export_write. Эта функция вызывает putexportent для каждого экспорта. Эта функция записывает форматированную строку для каждой экспортной записи. Просто это написано так, что она всегда выводит определенные опции, такие как те, которые вас интересуют, если только флаги для их исключения не установлены при разборе /etc/exports.

.

Ответ или решение

Теория

Ваша ситуация касается конфигурации сервера NFS версии 4 на операционной системе RHEL 7.9. NFS (Network File System) — это протокол распределенной файловой системы, который позволяет пользователям и программам на клиентских машинах обращаться к файлам на удаленных серверах. Конфигурация экспорта каталогов в NFS осуществляется с помощью файла /etc/exports. Опции, задаваемые в этом файле, определяют, как данные будут предоставляться удалённым серверам.

Вы указали конкретные параметры для экспорта: rw,no_root_squash,sync,insecure. Однако вы заметили, что, посмотрев информацию об экспорте через exportfs -v, список опций оказался гораздо шире, включая опции hide, и это вызывает проблемы.

Это может быть вызвано рядом причин, суть которых заключается в механизме, как NFS обрабатывает экспортированные каталоги: по умолчанию, если не заданы все возможные опции, сервер NFS будет добавлять недостающие из них автоматически.

Пример

Выделим каждый из дополнительных параметров:

  • sync: Обеспечивает синхронные записи на диск, то есть сервер не ответит до завершения записи. Это уже указано вами.
  • wdelay: Сервер может задерживать запись данных на диск, ожидая дополнительных записей, что снижает нагрузку на диск. Это поведение по умолчанию.
  • hide: Делает скрытыми подкаталоги, поэтому клиент их не видит. Это может быть проблемой в вашем случае.
  • no_subtree_check: Ускоряет доступ, отключая проверку иерархии файловой системы.
  • sec=sys: Использует базовую аутентификацию по пользователю. Также применяется по умолчанию.
  • no_all_squash: Противоположность root_squash, не преобразует всех пользователей к nfsnobody.

Все эти параметры добавляются автоматически, если противоположные им явно не указаны в /etc/exports. Например, отключение hide осуществляется установкой no_hide.

Применение

Перейдем к практическому решению вашей проблемы. Если определенные опции, такие как hide, нежелательны в вашей конфигурации, вам следует указывать противоположные значения в /etc/exports:

/path/to/my/share/ remoteserver.host.com(rw,no_root_squash,sync,insecure,no_hide,no_wdelay,no_subtree_check)

Это указание должно предотвратить автоматическое добавление параметра hide и других аналогичных опций. После изменения файла /etc/exports, выполните команду exportfs -ra для обновления экспортированных директорий без перезагрузки сервера NFS.

Также, раз стоит вопрос о документальном сопровождении, вам может быть полезно в будущем обращаться к технической документации Red Hat, которая часто обновляется и предоставляет последние рекомендации и лучшие практики.

Если ваши изменения не привели к желаемому результату, убедитесь, что нет конфликтов с другими конфигурационными файлами или автоматическими скриптами настройки, которые могут воздействовать на /etc/exports. Убедитесь также, что пакеты nfs-utils полностью обновлены до последней версии, совместимой с вашей системой RHEL.

В завершение, несмотря на кажущуюся тривиальность проблемы, важно помнить, что детали конфигурации критичны для корректной работы распределённых сетей хранения, и именно доскональное понимание каждой опции поможет избежать нежелательных последствий.

Оцените материал
Добавить комментарий

Капча загружается...