Администрирование ОС Solaris

       

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


Для оптимизации производительности 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


Содержание раздела