Опубликован: 19.10.2005 | Уровень: специалист | Доступ: платный | ВУЗ: Европейский Университет в Санкт-Петербурге
Лекция 8:

NFS. Настройка сервера

< Лекция 7 || Лекция 8: 12345 || Лекция 9 >

Особенности NFS в системах Solaris

В Solaris NFS организован не так, как в других системах UNIX, и это следует иметь в виду при настройке систем в гетерогенных сетях:

  • файл /etc/dfs/dfstab в других системах называется /etc/exports ;
  • в других системах файл /etc/exports является файлом конфигурации, а не скриптом, вызывающим программу share ;
  • в Solaris после изменения параметров монтирования в файле /etc/dfs/dfstab нужно дать команду shareall для вступления изменений в силу; в других системах следует перезапустить mountd и nfsd, обычно для этого можно использовать сценарий, как и в Solaris;
  • Solaris автоматически становится NFS-сервером при загрузке, если в файле /etc/dfs/dfstab указаны экспортированнные каталоги.

Помните, что команда shareall просто выполняет подряд все команды share, содержащиеся в файле /etc/dfs/dfstab. Если этот файл был модифицирован и некоторые команды экспорта каких-то файловых систем были удалены, действие старых команд share, запущенных до модификации файла, продолжится и после выполнения shareall.

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

Если требуется разрешить доступ к разделяемой файловой системе только определенной группе машин, следует указать их список команде share:

share -F nfs -o rw=host1,host2 /home/host12

Параметры экспорта в /etc/dfs/dfstab

При экспорте файловых систем можно передавать командам share ряд параметров, указывающих, в каком режиме следует экспортировать те или иные каталоги. Наиболее важные параметры сведены в табл. 18.2:

Таблица 18.2. Параметры экспорта файловых систем NFS
Параметр Значение
ro только для чтения - для всех
ro=host1, host2 только для чтения и только указанным компьютерам
rw для чтения и записи - для всех
rw=host1, host2 для чтения и записи, но только указанным компьютерам
root=host1, host2 с указанных компьютеров пользователь root получает доступ к файлам на сервере NFS от имени root (иначе - от имени nobody или указанного в параметре anon)
anon=uid идентификатор пользователя, от имени которого сможет работать с файлами на сервере NFS пользователь root удаленного (клиентского) компьютера, по умолчанию - nobody
nosub запрещается монтировать подкаталоги экспортируемого каталога
nosuid запрещается создавать в экспортируемой файловой системе файлы с установленными битами suid и sgid

Например, файл /etc/dfs/dfstab может иметь такой вид для экспорта двух файловых систем:

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

Особенности NFS в Solaris версии 9

В Solaris 9 были добавлены некоторые расширения поддержки NFS, которые улучшили производительность:

  • сняты ограничения на размер пакета; остались только ограничения, налагаемые транспортным протоколом, поэтому для NFS через UDP максимальный размер пакета составляет 32 Кбайт, а для TCP - 1 Мбайт;
  • клиент NFS теперь не занимает большое количество портов UDP. Ранее NFS использовала отдельный порт UDP для каждого запроса. Начиная с Solaris 9, клиент NFS по умолчанию использует только один заранее определенный порт. Однако эта функция настраивается: можно попытаться увеличить число портов, так как это может привести к увеличению производительности;
  • изменен алгоритм выполнения последовательных записей: ранее все запросы на запись выполнялись последовательно клиентом, затем сервером. Введена возможность (для клиента NFS ) разрешить приложению выполнять одновременную запись (равно и одновременное чтение и запись) в один и тот же файл. Разрешить такое поведение можно с помощью параметра forcedirectio при монтировании файловой системы. Этот параметр распространяется на все файлы смонтированной файловой системы. Существует возможность разрешить такой режим работы с единственным файлом с помощью функции directio(). По умолчанию (без указания параметра при монтировании) запись в файл производится так же, как и раньше.

Статистика сервера NFS

Для получения статистики о работе сервера NFS следует использовать команду nfsstat на таком сервере:

nfsstat -s
Server rpc:
Connection oriented:
calls	badcalls	nullrecv	badlen	xdrcall	dupchecks  
0 	0 	0 	0 	0 	0 
dupreqs
0 
Connectionless:
calls 	 badcalls 	nullrecv 	badlen 	xdrcall 	dupchecks  
33 	0 	0 	0 	0 	3
dupreqs
0 
Server nfs:
calls 	badcalls  
33 	0  
Version 2: (0 calls)
null 	getattr 	setattr 	root 	lookup 	readlink
0 0% 	0 0% 	0 0% 	0 0% 	0 0% 	0 0%
read 	wrcache 	write 	create 	remove 	rename
0 0% 	0 0% 	0 0% 	0 0% 	0 0% 	0 0% 
link 	symlink 	mkdir 	rmdir 	readdir 	statfs
0 0% 	0 0% 	0 0% 	0 0% 	0 0% 	0 0% 
Version 3: (33 calls)
null 	getattr 	setattr 	lookup 	access 	readlink 
0 0% 	5 15% 	1 3% 	4 12% 	13 39% 	0 0% 
read 	write 	create 	mkdir 	symlink 	mknod 
0 0% 	1 3% 	1 3% 	0 0% 	0 0% 	0 0% 
remove 	rmdir 	rename 	link 	readdir 	readdirplus
0 0% 	0 0% 	0 0% 	0 0% 	1 3% 	0 0% 
fsstat 	fsinfo 	pathconf 	commit 
3 9% 	3 9% 	0 0% 	1 3%
Server nfs_acl:
Version 2: (0 calls)
null 	getacl 	setacl 	getattr 	access 
0 0% 	0 0% 	0 0% 	0 0% 	0 0% 
Version 3: (0 calls)
null 	getacl 	setacl
0 0% 	0 0% 	0 0%

Кэширование файловой системы

Ускорить доступ к любой медленной файловой системе, такой как удаленная система NFS или файловая система привода CD-ROM, можно за счет создания файловой системы кэша. Проще говоря, содержимое медленной файловой системы может быть закэшировано на локальном диске. Управление такой файловой системой кэша (cachefs) осуществляется утилитой cfsadmin.

< Лекция 7 || Лекция 8: 12345 || Лекция 9 >
Алексей Антипин
Алексей Антипин
Россия, Томск, ТУСУР, 2010
Игорь Тарасенко
Игорь Тарасенко
Россия