nfs-kernel-server exportfs

Network File System (NFS) — протокол сетевого доступа к файловым системам. Удаленный диск

Алгоритм настройки

  1. Установить службу
  2. Создать каталоги для публикации
    1. Настроить права для каталогов в соответствии с требованиями
  3. Добавить запись о каталогах в файл /etc/exports
    1. Указать полный путь до каталога
    2. Указать адреса с которых можно подключаться к данному каталогу
    3. Указать настройки публикации каталога
  4. Применение изменений

Настройка

Установка

nfs-kernel-server

Для работы с NFS необходимо установить пакеты:

  • nfs-kernel-server - служба nfs сервера

Создание каталогов для публикации

  1. Создайте в файловой системе каталоги которые планируете использовать в качестве nfs-ресурсов.
  2. Назначьте права для созданных каталогов

Добавление записи в /etc/exports

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

В простейшем случае, файл /etc/exports является единственным файлом, требующим редактирования для настройки NFS-сервера.  Данный файл управляет следующими аспектами:

  • Какие клиенты могут обращаться к файлам на сервере

  • К каким иерархиям каталогов на сервере может обращаться каждый клиент

  • Как пользовательские имена клиентов будут отображаться на локальные имена пользователей

Каждая строка файла exports имеет следующий формат:

точка_экспорта клиент1(опции) [клиент2(опции) ...]
  • точка_экспорта - абсолютный путь экспортируемой иерархии каталогов
  • клиент1 - имя одного или более клиентов или ip-адрессов, разделенные пробелами, которым разрешено монтировать точку_экспорта
  • опции - описывают правила монтирования для клиента казанного перед опциями.
#  cat /etc/exports
 
/archiv1        files(rw,sync) 10.0.0.1(ro,sync) 10.0.230.1/24(ro,sync)

В данном примере компьютерам files и 10.0.0.1 разрешен доступ к точке экспорта /archiv1, при этом, хосту files на чтение/запись, а для хоста 10.0.0.1 и подсети 10.0.230.1/24 доступ только на чтение.

ещё пример:

/opt/sites      192.168.7.22(rw,sync,subtree_check)
/opt/public     *(ro,sync,subtree_check)

Описания хостов в /etc/exports допускается в следующем формате:

  • Имена отдельных узлов описываются, как files или files.DOMAIN.local.

  • Описание маски доменов производится в следующем формате: *DOMAIN.local включает все узлы домена DOMAIN.local.

  • Подсети задаются в виде пар адрес IP/маска. Например: 10.0.0.0/255.255.255.0 включает все узлы, адреса которых начинаются с 10.0.0.

  • Задание имени сетевой группы @myclients имеющей доступ к ресурсу (при использовании сервера NIS)

Опции экспорта иерархий каталогов

В файле exports используются следующие общие опции (сначала указаны опции применяемые по-умолчанию в большинстве систем, в скобках - не по-умолчанию):

  • auth_nlm (no_auth_nlm) или secure_locks (insecure_locks) - указывает, что сервер должен требовать аутентификацию запросов на блокировку (с помощью протокола NFS Lock Manager (диспетчер блокировок NFS)).

  • nohide (hide) - если сервер экспортирует две иерархии каталогов, при этом одна вложенна (примонтированна) в другую. Клиенту необходимо явно смонтировать вторую (дочернюю) иерархию, иначе точка монтирования дочерней иерархии будет выглядеть как пустой каталог. Опция nohide приводит к появлению второй иерархии каталогов без явного монтирования. 

  • ro (rw) - Разрешает только запросы на чтение (запись). (в конечном счете - возможно прочитать/записать или нет определяется на основании прав файловой системы, при этом сервер не способен отличить запрос на чтение файла от запроса на исполнение, поэтому разрешает чтение, если у пользователя есть права на чтение или исполнение.)

  • secure (insecure) - требует, чтобы запросы NFS поступали с защищенных портов (< 1024), чтобы программа без прав root не могла монтировать иерархию каталогов.

  • subtree_check (no_subtree_check) - Если экспортируется подкаталог фаловой системы, но не вся файловая система, сервер проверяет, находится ли запрошенный файл в экспортированном подкаталоге. Отключение проверки уменьшает безопасность, но увеличивает скорость передачи данных.

  • sync (async) - указывает, что сервер должен отвечать на запросы только после записи на диск изменений, выполненных этими запросами. Опция async указывает серверу не ждать записи информации на диск, что повышает производительность, но понижает надежность, т.к. в случае обрыва соединения или отказа оборудования возможна потеря информации.

  • wdelay (no_wdelay) - указывает серверу задерживать выполнение запросов на запись, если ожидается последующий запрос на запись, записывая данные более большими блоками. Это повышает производительность при отправке больших очередей команд на запись. no_wdelay указывает не откладывать выполнение команды на запись, что может быть полезно, если сервер получает большое количество команд не связанных друг с другом.

Экспорт символических ссылок и файлов устройств. При экспорте иерархии каталогов, содержащих символические ссылки, необходимо, чтобы объект ссылки был доступен клиентской (удаленной) системе, то есть должно выполняться одно из следующих правил:

В клиентской  файловой системе должен существовать объект ссылки, необходимо экспортировать и смонтировать объект ссылки

Файл устройства относится к интерфейсу ядра Linux. При экспорте файла устройства экспортируется этот интерфейс. Если клиентская система не имеет устройства такого же типа, то экспортированное устройство не будет работать. В клиентской системе, при монтировании NFS объектов можно использовать опцию nodev, чтобы файлы устройств в монтируемых каталогах не использовались.

Опции по умолчанию в разных системах могут различаться, их можно посмотреть в файле /var/lib/nfs/etab. После описания экспортированного каталога в /etc/exports и перезапуска сервера NFS все недостающие опции (читай: опции по-умолчанию) будут отражены в файле /var/lib/nfs/etab.

Применение изменений

exportfs

  1. Перезапустить службу
service nfs-kernel-server restart
  1. Выполнить команду exportfs -a

Просмотр опубликованных ресурсов

  1. За просмотр опубликованных ресурсов используется команда showmount:
showmount  -e 192.168.1.1
 
Export list for 192.168.1.1:
/data/share1 192.162.1.0/24
/data/share2 192.162.2
showmount -e localhost

Export list for localhost:
/opt/public *
/opt/sites  192.168.7.22