<<< Headline | Index | http | bash | basics | x11 | net | vpn | humor | sles | cXX | php | db | perl | soft | unsorted | hw | ppp | tips | linux | fbsd | mail
[Timeline] [View Photos] [rtfm] [Search] [Index by Title] [Index by Date]
basics => NFS: == post:basics/posts/NFS


  Конфигурация сервера nfs
   Настройка компьютера с ОС FreeBSD для работы в качестве сервера NFS требует добавления всего одной строки в файл /etc/rc.conf:
   nfs_server_enable="YES"
   Убедитесь также, что параметр portmap_enable имеет значение "YES" (как и было по умолчанию, если вы не изменили его). Демон portmap необходим для функционирования
системы NFS, поскольку NFS-серверу требуется механизм сообщения клиентам о том, к какому порту подключаться. Службы UDP работают с единственным "подключением" к порту, поэтому, хотя начальные соединения с сервером NFS выполняются через порт 2049, они сопоставляются службами RPC (удаленные вызовы процедур) с новыми, неиспользуемыми портами сервера. Поддержку служб RPC и предоставляет демон portmap. Учтите, что службы portmap весьма небезопасны и подвержены частным взломам, поэтому не стоит предоставлять доступ к серверу NFS из Internet, не защитив его брандмауэром.
 После установки опции nfs_server_enable и перезагрузки, ОС FreeBSD запускает два вида процессов-демонов (точнее, три, с учетом portmap) после прочтения содержимого файла /etc/exports, задающего ресурсы, предоставляемые в общий доступ через NFS.

Демон NFS (nfsd)
  Демон сервера NFS, эквивалентный по назначению демонам sshd или httpd, называется nfsd. Несколько процессов nfsd запускаются при инициализации сети (по умолчанию - четыре); эти процессы должны обслуживать подключения клиентов NFS, каждый процесс - для одного клиента. В стандартной конфигурации к серверу NFS одновременно может подключаться не более четырех клиентов. Это количество можно изменить с помощью параметров nfs_server_flags в файле /etc/rc.d:
   nfs_server_flags="-u -t -n 4"
   Если nfsd - программа, обеспечивающая подключение для каждого отдельного монтирования ресурса NFS, то вторая программа службы отвечает за прослушивание сети в ожидании новых запросов клиентов NFS (поступающих по протоколу TCP к порту 2049). Это программа mountd, демон монтирования. Она запускается автоматически вместе с процессами nfsd в ходе процедуры начальной настройки сети при загрузке, если параметр nfs_server_enable имеет значение "YES". Демон mountd принимает запросы на подключение к NFS и передает их процессам nfsd. Он также следит за общими ресурсами NFS, указанными в файле /etc/exports; как будет вскоре продемонстрировано, для перезапуска служб NFS после изменения файла
/etc/exports необходимо послать сигнал HUP демону mountd. Полезных опций запуска демона mountd немного. Стандартные установки в файле /etc/defaults/rc.conf, которые можно переопределить в файле /etc/rc.conf, имеют следующий вид:
    mountd_flags="-r"
   Опция -r позволяет демону mountd обслуживать обычные файлы, а не только каталоги, для совместимости с некоторыми бездисковыми рабочими станциями, загружающимися с помощью службы NFS. Опция -l позволяет регистрировать все запросы монтирования NFS, а опция -n обеспечивает возможность монтирования общих ресурсов NFS на удаленные системы вроде ПК с ОС Windows, не поддерживающие модель владения и прав доступа ОС UNIX.
   Опции -maproot=<имя пользователя> или -maproot=<идентификатор пользователя> в файле /etc/exports позволяют сопоставить права владения так, что пользователь с соответствующим именем или идентификатором на клиентской машине получит полные права доступа пользователя root на общем ресурсе. Например, следующая запись предоставляет всю
файловую систему сервера NFS любому хосту в сети 64.41.131 так, что пользователь frank на клиентах будет иметь полный доступ на чтение и запись ко всем файлам:
   /  -maproot=frank    -network  64.41.131  -mask  255.255.255.0
   После внесения изменений в файл /etc/exports необходимо перезапустить процесс mountd. Для этого следует указать идентификатор соответствующего процесса, содержащийся в файле /var/run/mountd.pid:
   >  kill  -HUP   'cat   /var/run/mountd.pid'
Нельзя задавать несколько строк экспорта для точек монтирования в одном разделе или физической файловой системе. Это позволяет предотвратить проблемы в случае конфликта прав
доступа к различным общим ресурсам в пределах одной файловой системы. Клиенты NFS не могут отдельно обращаться к файловой системе, смонтированной в каталог уже смонтированного
общего ресурса, причем одни и те же права доступа должны применяться для всех общих ресурсов в одной физической файловой системе. Следующая конфигурация недопустима:
/home/frank 64.41.131.102
/home/joe 64.41.131.102
А вот т ак правильно :
/home/frank       /home/joe      64.41.131.102
   Для получения списка всех имеющихся общих ресурсов и прав доступа к ним можно использовать программу showmount. Вот как можно проверить, правильно ли файл /etc/exports настроен:
   # showmount -e
   Exports list on localhost:
   /usr                          Everyone
   /home/frank                    64.41.131.102
   /home/joe                      64.41.131.102
   /                              6 4.41.131.0

   Для настройки клиентской машины NFS включите следующую строку в файл /etc/rc.conf:
   nfs_client_enable="YES"
   Наиболее простой способ запуска служб NFS - перезагрузка системы. Однако если необходимо запустить эти службы, а перезагрузка нежелательна, выполните следующие команды от имени пользователя root (команду portmap можно не вводить, если соответствующий демон уже работает):
   # portmap
   # nfsd -u -t -n 4
   # mountd -r
   Затем используйте команду showmount -e, чтобы проверить, правильно ли экспортированы общие ресурсы NFS.

  Конфигурация клиента nfs
   Демон nfsiod не обязателен для функционирования клиента NFS, но помогает ускорить работу. Он позволяет выполнять операции чтения и записи NFS асинхронно, так что
"опережающее чтение" и "запись с задержкой " выполняются в фоновом режиме и не приходится ждать завершения каждого последовательного шага процесса. Как и в случае с демоном nfsd, должно работать столько процессов nfsiod, сколько общих ресурсов NFS смонтировано на клиентской машине. Количество процессов *nfsiod* (по умолчанию - 4), можно задать с помощью параметра nfs_client_flags в файле /etc/rc.conf:
   nfs_client_flags="-n 4"
  Больше никаких опций у демона nfsiod нет. Для запуска его без перезагрузки машины выполните команду:
  # nfsiod -n 4

   Монтирование общего ресурса NFS выполняется с помощью команды mount_nfs, являющейся сокращенным вариантом стандартной команды mount -t nfs
  # mount_nfs spots:/home /home2
   Общие ресурсы NFS можно монтировать множеством различных способов; соответствующие опции описаны на странице справочного руководства man mount_nfs. Чаще всего используются опция -Т, требующая использования транспортного протокола TCP вместо UDP (полезно при монтировании по глобальным сетям), и опции -s и -х <секунд>, благодаря которым точка монтирования устаревает и исчезает в случае сбоя или по истечении указанного периода времени (так называемое "мягкое" монтирование).
   # mount_nfs -s -х 60 spots:/home /home2
   Задание опции -b приводит к тому, что команда mount пытается связаться с сервером и, если это сделать не удается, запускает порожденный процесс, выполняющий повторные попытки подключиться, пока продолжается процесс загрузки. Точно также при попытке монтирования общего ресурса из командной строки с опцией -b, запускается порожденный фоновый процесс, а вы сразу же получаете приглашение командного интерпретатора.
   Демон автоматического монтирования, *amd*, делает работу с общими ресурсами NFS еще удобнее. Этот демон позволяет монтировать общие ресурсы NFS (на самом деле все типы
файловых систем) динамически, при переходе в каталог, в который должен быть смонтирован ресурс, не вводя вообще никаких команд монтирования. ОС FreeBSD обеспечивает простой способ настройки демона amd. Добавьте следующую строку в файл /etc/rc.conf:
   amd_enable="YES"
   При загрузке системы с таким параметром демон amd запускается с опциями, задаваемыми параметром amd_flags, стандартное значение которого обеспечивает автоматическое монтирование по имени всего содержимого каталогов /host или /net, которые автоматически создаются демоном amd.

Проблема
root@ctrl1 ~ # mount 10.5.0.12:/data/tinderbox/portstrees/backup.bacula-amd64-1.0.0.2010-05-05/ports /usr/ports/
[udp] 10.5.0.12:/data/tinderbox/portstrees/backup.bacula-amd64-1.0.0.2010-05-05/ports: RPCPROG_NFS: RPC: Program not registered
Решение
root@node1 ~ # /etc/rc.d/nfsd stop
Stopping nfsd.
root@node1 ~ # /etc/rc.d/mountd stop
Stopping mountd.
root@node1 ~ # /etc/rc.d/rpcbind stop
Stopping rpcbind.
root@node1 ~ # /etc/rc.d/rpcbind start
Starting rpcbind.
root@node1 ~ # /etc/rc.d/mountd start
Starting mountd.
root@node1 ~ # /etc/rc.d/nfsd start
NFS on reserved port only=YES
Starting nfsd.

basics/posts/NFS -- Last updated 2010-06-02 Wednesday 16:42:27 Edit

© copyright 2010
Design by: lev