Европейский Университет в Санкт-Петербурге
Опубликован: 19.10.2005 | Доступ: свободный | Студентов: 1763 / 169 | Оценка: 4.31 / 3.82 | Длительность: 18:28:00
Лекция 9:

NFS. Настройка клиента. Аутентификация в сети. NIS и NIS+

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

Оптимизация производительности

Для оптимизации производительности NFS используется несколько средств.

Во-первых, чем быстрее работают диски сервера NFS, тем быстрее информация будет передана через сеть. Современные сети часто строятся на основе высокоскоростных (как минимум, 100-мегабитных) коммутаторов, поэтому диски даже чаще оказываются узким местом в производительности, чем сеть. Если говорить об архитектуре x86, то предпочтительнее использовать в серверах современные жесткие диски с поддержкой UltraDMA-100, которые позволяют отдавать данные приложению с диска со скоростью порядка 50 Мбайт/с.

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

В-третьих, может использоваться локальное кэширование посредством создания кэширующей файловой системы cachefs, как говорилось выше.

В SunOS 4.x для кэширования запросов к удаленной файловой системе NFS использовался процесс biod, но в SunOS 5.x (т.е. с самых ранних версий Solaris - см. табл. 19.1) применяется автоматическое кэширование всех операций чтения и записи, в том числе и для файлов, расположенных на удаленных серверах NFS. Поэтому в специальном процессе biod (в некоторых системах UNIX аналогичный по смыслу процесс называется nfsiod ) нет необходимости в Solaris.

Таблица 19.1. Соответствие версий SunOS и Solaris
Версия SunOS Версия Solaris
4.x 1.x
5.6 2.6
5.7 7
5.8 8
5.9 9
5.10 10

Выполним еще один эксперимент - сервером NFS будет компьютер ixy (Linux), а клиентом - компьютер под управлением Solaris. Все команды даются на компьютере- клиенте:

showmount -e ixy
export list for ixy:
/usr/home/filip/nfst (everyone)

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

cd /
ls
devices lost+found opt TT_DB
bin etc mnt platform tuition
boot export named.run proc usr
cdrom home net sbin var
core kernel nfst test vol
dev lib nsmail tmp xfn
mkdir nfsc
mount ixy:/usr/home/filip/nfst /nfsc

Проверим, получилось ли:

mount
/ on /dev/dsk/c0d0s0
read/write/setuid/intr/largefiles/xattr/onerror=panic/dev=
1980000 on Сбт Июл 3 18:59:13 2004
/boot on /dev/dsk/c0d0p0:boot
read/write/setuid/nohidden/nofoldcase/dev=19a3010 on Сбт
Июл 3 18:59:11 2004
/proc on /proc read/write/setuid/dev=2d80000 on Сбт Июл 3
18:59:12 2004
/etc/mnttab on mnttab read/write/setuid/dev=2e40000 on Сбт
Июл 3 18:59:12 2004
/dev/fd on fd read/write/setuid/dev=2e80000 on Сбт Июл 3
18:59:14 2004
/var/run on swap read/write/setuid/xattr/dev=1 on Сбт Июл
3 18:59:17 2004
/tmp on swap read/write/setuid/xattr/dev=2 on Сбт Июл 3
18:59:18 2004
/export/home on /dev/dsk/c0d0s7
read/write/setuid/intr/largefiles/xattr/onerror=panic/dev=
1980007 on Сбт Июл 3 18:59:18 2004
/nfsc on ixy:/usr/home/filip/nfst remote/read/write/setuid/
xattr/dev=2fc0002 on Сбт Июл 3 21:23:45 2004

Последняя строка вывода mount говорит о том, что все прошло успешно. Попробуем скопировать файл на сервер NFS:

cp /etc/dfs/dfstab /nfsc
cp: cannot create /nfsc/dfstab: Read-only file system

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

umount /nfsc

При экспорте файловых систем могут быть использованы параметры, указывающие, в каком режиме экспортируется файловая система. Они рассмотрены в лекции 18 в разделе "Параметры экспорта в /etc/dfs/dfstab".

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

Основные параметры для клиента NFS приведены в табл. 19.2. Их следует указывать в файле /etc/dfs/vfstab в поле параметров монтирования (последнее поле строки dfstab ). Пример /etc/dfs/vfstab приведен ниже.

Таблица 19.2. Наиболее часто используемые модификаторы
Параметр Значение
rw монтировать в режиме чтения и записи (действует только если сервер экспортирует указанный каталог в режиме чтения и записи)
ro смонтировать только для чтения
hard если сервер станет недоступен, повторять обращение к файлу на удаленной файловой системе до тех пор, пока сервер снова окажется доступен; приводит к зависанию приложения, обращающегося к недоступной файловой системе
soft если сервер станет недоступен, повторять обращение к файлу на удаленной файловой системе столько раз, сколько указано в параметре retrans ; обычно приводит к ошибке приложения, обращающегося к недоступной файловой системе (подобно тому, как будет вести себя приложение при попытке чтения с неисправного жесткого диска, например)
retrans=n количество повторений запроса до принятия решения об ошибке, см. soft, таймаут задается параметром timeo
timeo=n n - таймаут между запросами в десятых долях секунды
intr позволяет прервать (послать сигнал INTR, Ctrl-C) обращение к недоступной файловой системе
nointr не позволяет прерывать обращения к недоступной файловой системе
proto=(tcp|udp) выбор протокола, по умолчанию - первый доступный из /etc/netconfig
rsize=n размер буфера чтения в байтах
wsize=n размер буфера записи в байтах

Пример файла /etc/vfstab:

#device device mount FS fsck mount mount
#to mount to fsck point type pass at boot option
/proc - /proc proc - no -
fd - /dev/fd fd - no -
swap - /tmp tmpfs - yes -
pxy.gu.ru:/exprt - /home nfs - yes rw,noquota
< Лекция 8 || Лекция 9: 12345 || Лекция 10 >