NFS. Настройка сервера
Проверка работоспособности служб NFS
Теперь необходимо проверить, правильно ли запущены mountd и nfsd. Сначала это делается с помощью команды rpcinfo -p. Вывод программы должен показать что-то похожее на следующее:
100000 4 tcp 111 rpcbind 100000 3 tcp 111 rpcbind 100000 2 tcp 111 rpcbind 100000 4 udp 111 rpcbind 100000 3 udp 111 rpcbind 100000 2 udp 111 rpcbind 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100005 3 udp 1023 mountd 100005 3 tcp 1023 mountd 100005 1 udp 1023 mountd 100005 1 tcp 1023 mountd
Как видно, rpcbind успешно анонсирует службы.
Если в ответ на rpcinfo -p мы получили сообщение
rpcinfo: can't con
или
RPC_PROG_NOT_REGISTERED
или нечто похожее вместо ожидаемого - стало быть, rpcbind не доступен (отключен). Возможно, в файлах /etc/hosts.allow или /etc/hosts.deny есть настройки, запрещающие программе rpcbind отвечать нам.
Для перезапуска служб NFS можно завершить выполнение демонов nfsd, mountd и rpcbind, и потом запустить их вновь в таком порядке: rpcbind, затем mountd и nfsd. Программе nfsd может быть передан числовой аргумент - число потоков, которые следует запустить при старте. Программа "распараллелится" в указанном количестве потоков.
Более стандартным выходом является запуск скрипта
/etc/init.d/nfs.server
вначале с параметром stop, затем с параметром start.
При штатной работе mountd и nfsd запускаются на сервере NFS при старте системы из стартовых скриптов. Это можно проверить командами
ps -ef | grep mountd ps -ef | grep nfsd
Программа rpcbind объявляет свои службы независимо от того, продолжают ли работать программы, ранее зарегистрировавшиеся и (возможно) прекратившие работу вследствие аварии.
Следовательно, вышеприведенная проверка с помощью ps обязательна, если служба NFS перестала работать.
Не забудьте перед настройкой сервера NFS изучить страницы руководства, рассказывающие о rpcbind, mountd, nfsd, dfstab.
Блокировка файлов на NFS-сервере
Для того чтобы несколько процессов не конфликтовали при доступе к одному и тому же файлу, обычно используется механизм блокировки файла. Подробнее о блокировках сказано в документации по системным функциям lockf() и flock(). В NFS механизм блокировки реализован посредством двух демонов: lockd и statd.
Оба демона запускаются на сервере NFS после mountd и nfsd.
Программа lockd устанавливает и снимает блокировку файлов по запросу, а демон statd следит за состоянием блокировок и работоспособностью NFS-сервера.
В сети демон statd сервера NFS обменивается информацией с демонами statd на других компьютерах. Демон lockd посылает запросы демону statd для установления статуса компьютеров, взаимодействующих с ним.
Если компьютер, за которым следит statd, перестает отвечать и перезапускается, удаленный statd сообщает об этом локальному, следящему за ним, и локальный демон информирует об этом программы, которые работали через это соединение. Если прекращает работу локальный сервис и затем следует его перезапуск, то statd информирует об этом другие компьютеры.
Дисковые квоты в NFS
Если на сервере NFS установлены дисковые квоты для отдельных пользователей, то для того, чтобы пользователь "издалека" мог узнать свою дисковую квоту, запускается демон rquotad.
Вообще говоря, установка дисковых квот (независимо от NFS) выполняется следующим образом:
- В файле /etc/vfstab для файловой системы, для которой будет применяться квотирование, устанавливается параметр монтирования quota. Не забудьте демонтировать и снова смонтировать соответствующую файловую систему, если хотите, чтобы параметр оказал воздействие на работу файловой системы немедленно!
- Затем создается файл quotas в корне этой файловой системы (например, если речь идет о файловой системе /export/home, то файл будет называться /export/home/quotas ).
- С помощью команды edquota устанавливаются квоты для каждого из пользователей в отдельности.
- Выполняется команда quotaon.
Для выключения поддержки квот достаточно выполнить команду
quotaoff
Для проверки квот в файловых системах надо выполнить команду
quota username