next up previous contents index
Next: Настройка клиента NFS Up: NFS Previous: Введение   Contents   Index

Установка сервера NFS

До того, как мы сможем что-нибудь сделать с помощью NFS, необходимо настроить сервер NFS.

Первой из необходимых программ является portmapper - это преобразователь номеров портов DARPA в вызовы соответствующих программ RPC.

Запустите portmapper. Он называется либо portmap, либо rpc.portmap и должен находиться в директории /usr/sbin (на некоторых машинах он называется rpcbind). Вы можете запустить его вручную, но он должен запускаться при каждом старте машины. Поэтому необходимо создать/отредактировать rc-скрипты. Содержание rc-скриптов объясняется более подробно в справочной странице init. Они обычно находятся в директориях /etc/rc.d, /etc/init.d или /etc/rc.d/init.d. Если там есть скрипт, названный inet, то его и нужно редактировать. Запустив portmap, убедитесь, что он действительно запущен с помощью команд ps aux и затем rpcinfo -p. Удаленный доступ к программе portmapper определяется содержимым файлов /etc/hosts.allow и /etc/hosts.deny. Если rpcinfo -p не работает, но portmapper запущен, то проверьте указанные файлы.

Следующие программы, которые Вам нужно запустить - это mountd и nfsd. Но предварительно нужно отредактировать другой файл. Это файл /etc/exports. Допустим требуется, чтобы файловая система /mn/eris/local, которая находится на машине eris была доступна для машины названной apollon. Тогда нужно поместить в файл /etc/exports на машине eris следующие строки:

/mn/eris/local apollon(rw)

Вышеприведенные строки дают машине apollon право на чтение/запись в каталог /mn/eris/local. Вместо rw мы можем указать ro, что предоставит доступ только для чтения (если Вы ничего не поместите, то по умолчанию будет доступ только для чтения.) Существуют другие опции, которые Вы можете задать. Они все перечислены в справочной странице по exports, которую Вы должны прочитать. Существуют также лучшие способы, чем перечисление всех машин в файле exports. Вы, например, можете использовать сетевые группы, если у Вас используется система NIS (или NYS) (NIS также известен как YP), и всегда использовать шаблоны (wild cards) доменов и подсетей IP как списки машин, которым разрешено что-то монтировать. Но Вы должны учитывать, кто может получить доступ к серверу неавторизованным способом, если Вы используете такой подход.

Файл exports имеет синтаксис, отличный от синтаксиса, который используют другие системы UNIX.

Сейчас Вы готовы к запуску программ mountd (она также может называться rpc.mountd) и nfsd (который может быть назван rpc.nfsd). Обе эти программы читают данные из файла exports.

Если Вы отредактировали файл /etc/exports, то Вы должны быть уверены, что nfsd и mountd знают о том, что файл изменен. Традиционный способ получить уверенность - запустить программу exportfs. Во многих дистрибутивах Linux программа exportfs отсутствует. Если это так, то Вы можете создать такой скрипт:

#!/bin/sh killall -HUP /usr/sbin/rpc.mountd killall -HUP /usr/sbin/rpc.nfsd echo re-exported file systems \begin{verbatim} Сохраните его в файле, скажем \verb|/usr/sbin/exportfs|, и не забудьте выполнить для файла команду \verb|chmod Цa +rx|. Сейчас, после того как получен файл \verb|exports|, Вы должны запустить программу \verb|exportfs|, имея права администратора. Затем Вы должны проверить, запущены ли правильно \verb|mountd| и \verb|nfsd|. Сначала это делается с помощью команды \verb|rpcinfo -p|. Программа должна показать что-то похожее на следующее: \begin{verbatim} program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100005 1 udp 745 mountd 100005 1 tcp 747 mountd 100003 2 udp 2049 nfs 100003 2 tcp 2049 nfs

Как видите, portmapper предоставил свои сервисы и mountd и nfsd запущены. Если Вы получили сообщение

rpcinfo: can't contact portmapper: RPC:Remote system error - Connection refused, RPC_PROG_NOT_REGISTERED

или нечто подобное вместо приведенного выше, то portmapper не запустился или что-то записано неверно в файле /etc/hosts(allow,deny) - что запрещает программе portmapper отвечать. Если Вы получили сообщение No remote programs registered., то либо portmapper не может ``общаться'' с вами, либо не в порядке что-то еще. Завершите выполнение nfsd, mountd и portmapper и попытайтесь выполнить заново стартовую последовательность.

После проверки запуска portmapper, Вы также можете выполнить проверку его работы с помощью команды ps. portmapper будет продолжать объявлять свои сервисы открытыми даже после того, как программы расширяющие его возможности завершили работу. Так что проверка с помощью ps может быть необходимой, если Вам кажется, что что-то не работает. Конечно, дополнительно нужно исправить системные rc-файлы для запуска mountd и nfsd при загрузке. Очень вероятно, что эти скрипты уже существуют на машине, и понадобится только раскомментировать нужные разделы или активизировать их на нужном уровне запуска.



Alex Otwagin 2002-12-16