Европейский Университет в Санкт-Петербурге
Опубликован: 04.07.2008 | Доступ: свободный | Студентов: 876 / 162 | Оценка: 4.30 / 3.78 | Длительность: 18:28:00
Лекция 7:

Настройка сервера и клиента NFS

< Лекция 6 || Лекция 7: 1234 || Лекция 8 >

Запуск службы экспорта файловых систем

Сервис NFS предоставляется двумя программами, которые обрабатывают соответствующие RPC-запросы. Это программы mountd и nfsd.

Программа mountd обрабатывает запросы на удаленное монтирование файловых систем. Для получения списка экспортируемых каталогов применяют команду showmount –e, которая обращается к mountd за информацией:

showmount -e
export list for sunny:
/nfst (everyone)

Для того, чтобы на сервере NFS узнать, какие системы подсоединили к себе разделяемые каталоги этого сервера, следует дать команду showmount без параметров:

showmount
www.eu.spb.ru

Программа nfsd – это обработчик файлового запроса удаленного клиента NFS к файловой системе сервера NFS.

Параметры службы NFS настраиваются в файле /etc/default/nfs, а запуск и остановка службы осуществляется, соответственно, командами

/etc/init.d/nfs.server start

и

/etc/init.d/nfs.server stop

В Solaris 10 служба NFS запускается и останавливается также, как и другие службы – командой svcadm enable nfs/server и svcadm disable nfs/server соответственно. О новом механизме работы со службами, появившемся в Solaris 10, более подробно рассказано в "лекции 13" .

В файле /etc/default/nfs следует указать достаточное количество потоков, которые можно параллельно запускать для обслуживания одновременных запросов к файлам через NFS. За это отвечает параметр NFSD_SERVERS.

Значение этого параметра не должно быть меньшим максимального количества одновременных обращений к разделяемым файловым системам NFS на сервере. Слишком маленькое число потоков вызовет задержки в работе клиентов, поскольку им придется становиться в очередь на обработку запросов. В то же время, излишне большое число приведет к нерациональному расходу памяти NFS-сервера. Оптимальное число определяется из опыта, и единственное, что можно сказать определенно: оно не должно быть больше удвоенного общего количества компьютеров сети, которые настроены для работы через NFS. По умолчанию это число равно 16, что для нагруженных серверов NFS очевидно мало.

Если из-за слишком большого количества потоков nfsd загрузка процессора возрастет до 100%, имеет смысл уменьшить число этих потоков. С одной стороны, идеально иметь 2 потока на каждого активного клиента, постоянно обращающегося к ресурсам NFS, с другой – на один процессор рекомендуется запускать не более 16 потоков, если это достаточно медленный процессор типа тех, что установлены в системах SPARCstation 5, и не более.

В моей тестовой системе Solaris на компьютере x86 монтирование каталога сервера одним клиентом NFS привело к увеличению занимаемой nfsd памяти всего на 8 Кб, так что в современных системах имеет смысл ожидать скорее некоторого снижения производительности за счет нагрузки на процессор или кэширования больших файлов экспортируемых каталогов, чем нехватки памяти из-за слишком большого количества потоков nfsd.

Перед запуском mountd и nfsd следует убедиться, что в /etc/dfs/dfstab указаны все каталоги, которые вы собираетесь экспортировать, а также разумно настроены параметры безопасности.

Аутентичность пользователей NFS

Работа с общим диском, разделяемым между многими пользователями сети, предполагает, что в пределах сети существует общее пространство имен пользователей, т.е. пользователь gregory на любом клиентском (в терминах NFS) компьютере имеет то же реальное имя и (что важнее) тот же идентификатор, что и пользователь gregory на сервере NFS. Это достигается использованием централизованной аутентификации (например, с помощью PAM и сервера аутентификации или с помощью NIS+). Кроме этого, важно ограничить права пользователя root при доступе через NFS, т.к. пользователь root на любом компьютере в любой системе UNIX имеет идентификатор 0, но от имени пользователя root на разных компьютерах могут работать разные люди.

Для ограничения доступа пользователя root на сервере NFS любые файловые запросы от имени пользователей root клиентских компьютеров выполняются от имени nobody. Можно указать, пользователям root каких компьютеров мы предоставляем привилегированный доступ от имени root и через NFS.

По умолчанию файловая система экспортируется с правами чтения и записи для тех, кто ее смонтирует. Однако, права доступа к конкретным каталогам могут запрещать запись в них; фактически права доступа к удаленной файловой системе определяются комбинацией прав, данными при монтировании системы и прав доступа к каталогам; силу имеют более строгие права (например, нельзя записать файл в каталог, если нет права записи в каталог ИЛИ если право есть, но файловая система экспортируется в режиме read-only – только для чтения).

Рассмотрим для примера файл /etc/dfs/dfstab системы Solaris:

share -F nfs -o rw=@212.231.110, ro=@192.168.4 /home
share -F nfs -o ro=212.231.110@,root=212.231.110.112 /usr/share/man

Файловая система /home экспортируется с возможностью чтения и записи для компьютеров сети 212.231.110, и только чтения – для компьютеров сети 192.168.4. Файловая система /usr/share/man экспортируется для чтения для компьютеров сети 212.231.110. Пользователю root с компьютера 212.231.110.112 разрешен доступ с правами суперпользователя к этой файловой системе.

Полный список доступных режимов и настроек при указании экспортируемой файловой системы доступен в man share и man share_nfs, а некоторые из них обсуждаются ниже, в разделе "параметры экспорта в /etc/dfs/dfstab ".

Сервер NFS и бездисковые станции

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

Под "корневой файловой системой" мы здесь понимаем определенный заранее каталог на сервере NFS, играющий роль корневой файловой системы для бездисковой станции. Собственный корневой каталог сервера не следует экспортировать вообще.

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

Табл. 7.1 демонстрирует соответствие экспортируемых на сервере каталогов и точек монтирования на бездисковых рабочих станциях.

Обычным пользователям сервера доступ к каталогу /export, как правило, запрещают, ибо этот каталог предназначен только для монтирования его клиентами, и управление этим каталогом осуществляет администратор, работая от имени root.

Каталог /export/root следует экспортировать с правами пользователей на чтение и запись.

Параметр nosuid запрещает клиентам устанавливать бит setuid для файлов на смонтированной файловой системе NFS. Этот параметр может быть полезен для случаев, когда файл принадлежит пользователю root клиента или пользователю, чей uid совпадает с uid наделенного большими правами пользователя в какой-либо из систем сети (особенно – сервера NFS).

Вместо того, чтобы использовать при монтировании каталога /export/root параметр nosuid, может быть достаточно запретить пользователям сервера NFS доступ к этому каталогу.

Параметр ro обеспечивает монтирование каталога только для чтения для всех клиентов. Например, каталог с системными исполняемыми файлами пользователям менять незачем, и его рекомендуется экспортировать только для чтения.

Таблица 7.1. Соответствие каталогов сервера NFS и точек монтирования бездисковых рабочих станций
Экспортируемые каталоги на сервере Импортируемые каталоги на бездисковом компьютере Пояснение Параметры монтирования
/export/root/<hostname> / Корневой каталог -o nosuid
/export/exec/<platformname> /usr Каталог выполняемых файлов (Shared Product Object Tree – SPOT) Содержимое этого каталога зависит от аппаратной платформы, разным платформам должны монтироваться разные каталоги -o ro
/export/home/<hostname> /home возможно, потребуется -o nosuid
/export/share /usr/share -o ro
/export/swap/<hostname> Применяется на бездисковых клиентах в качестве удаленного пространства подкачки

При экспорте каталога /export/home можно пойти двумя путями:

  • экспортировать каталог /home сервера, так, чтобы дать возможность пользователям работать на сервере интерактивно в своем домашнем каталоге и монтировать этот же каталог по сети при работе на других компьютерах;
  • экспортировать каталог /export/home сервера с тем, чтобы пользователи на сервере не имели домашних каталогов (или же, что менее удобно, имели разные домашние каталоги при работе на сервере и при работе на остальных компьютерах сети).

В первом случае следует обязательно указать параметр nosuid для монтирования этого каталога через NFS.

< Лекция 6 || Лекция 7: 1234 || Лекция 8 >
Александр Тагильцев
Александр Тагильцев

Где проводится профессиональная переподготовка "Системное администрирование Windows"? Что-то я не совсем понял как проводится обучение.

Андрияна Ланге
Андрияна Ланге
Россия, г. Москва