Запуск и настройка NFS

Network File System (NFS) — протокол сетевого доступа к файловым системам
NFS предоставляет клиентам прозрачный доступ к файлам и файловой системе сервера. В отличие от FTP, протокол NFS осуществляет доступ только к тем частям файла, к которым обратился процесс, и основное достоинство его в том, что он делает этот доступ прозрачным. Это означает, что любое приложение клиента, которое может работать с локальным файлом, с таким же успехом может работать и с NFS файлом, без каких либо модификаций самой программы.

Если nfs server не установлен в системе устанавливаем его 

yum install nfs-utils nfs-utils-lib

Добавляем в автозагрузку и запускаем 

chkconfig nfs on 
service rpcbind start
service nfs start

Также на необходимо установить клиент nfs на машине с которой будет происходить подключение к серверу 

yum install nfs-utils nfs-utils-lib

Существует файл конфигурации: /etc/exports в котором прописываются файловые системы (директории) которые необходимо разрешить монтировать удаленно по протоколу NFS. Каждая строка в нем - указание на экспортируемую файловую систему и доступ к ней. Шаблон записи таков:

[ файловая система ] [ кому разрешить к ней доступ ] [ ключи опций ]

 

Пример:

/home/share 192.168.0.6(rw,no_root_squash)

Директорию в данном примере разрешено примонтировать на хост 192.168.0.6 в режиме write-read.

Чтобы запись в файле начала работать выполним:

# exportfs -r

Узнаем список экспорта файловых систем:

# exportfs

(exportfs - программа для работы с NFS на основе файла exports)

/home/share        192.168.0.6
Задать хосты которым разрешено монтировать директории:
  • Указать IP-адрес или hostname;
  • Указать *, что будет означать любые адреса или поддомены ( *.example.com или *.*.example.com);
  • В необходимых местах возможно использовать знак "?" - он заменяет любой символ (но не работает для IP адресов)
  • Использовать маски подсетей, пример 192.168.1.10/27;
  • NIS-группы ( @mywork ).
Часто используемые опции файла конфигурации
ro Только чтение
rw Чтение и запись
root_squash Не разрешает пользователю root получать root-привилегии в удаленной файловой системе, все действия будут сделаны от лица пользователя nobody
no_root_squash Пользователь root в локальной системе получает такие же права в удаленной. Стоит использовать эту опцию только в случае острой необходимости. Используется для бездисковых клиентов
all_squash Все запросы происходят от анонимного пользователя, что способствует повышению безопасности. Актуально для публичных разделов
anonuid/anongid Позволяет задать UID и GID пользователя от лица которого будут выполняться все запросы
sync Синхронный режим работы, ответы на запросы происходят только после того, как данные будут надежно записаны на диск. Надежность выше, производительность меньше
async Асинхронный режим работы, ответы на запросы происходят сразу, не дожидаясь записи на диск. Надежность ниже, производительность выше
insecure Разрешать запросы с портов более чем 1024
no_subtree_check Если экспортируется подкаталог файловой системы, но не вся файловая система, сервер, проверяет, находится ли запрошенный файл в экспортированном подкаталоге. Эта проверка называется проверкой подкаталога. Отключение проверки уменьшает безопасность, но увеличивает скорость передачи данных

 

Теперь давайте на машине с адресом 192.168.0.6 примонтируем сетевую файловую систему /home/share.

Создадим каталог куда будет происходит монтирование:

$ mkdir /home/user_name/nfs

Монтирование происходит при помощи команды mount ( под root естественно ).

# mount -t nfs 192.168.0.6:/home/share /home/user_name/nfs

где -t тип монтируемой файловой системы - <хост>:<ресурс экспорта> <точка монтирования в локальной системе>.

По умолчанию монтирование проходит в режиме - rw ( с помощью опции -o можно указать дополнительные ключи опций монтирования).

Данную строку можно поместить в файл /etc/fstab, что даст возможность пристарте компьютера автоматически подмонтировать ФС.

192.168.0.6:/home/share /home/user_name/nfs nfs defaults

Обсуждение