Где проводится профессиональная переподготовка "Системное администрирование Windows"? Что-то я не совсем понял как проводится обучение. |
Настройка сервера и клиента NFS
Кэширование файловой системы
Для ускорения доступа к любой медленной файловой системе, такой, как удаленная система NFS или файловая система привода CD-ROM, может быть применено создание файловой системы кэша. Проще говоря, содержимое медленной файловой системы может быть закэшировано на локальном диске. Управление такой файловой системой кэша (cachefs) осуществляется утилитой cfsadmin.
NFS. Настройка клиента
Монтирование удаленных файловых систем
Монтирование файловых систем NFS осуществляется очень похоже на монтирование файловой системы любого другого типа. Посмотрим, как смонтировать файловую систему с машины под управлением Linux, если роль файлового сервера выполняет Solaris (компьютер pxy работает под Linux, компьютер с адресом 192.168.5.33):
root@pxy# mount -t nfs 192.168.5.33:/nfst ./nfst root@pxy# mount /dev/hda1 on / type ext2 (rw) none on /proc type proc (rw) none on /dev/pts type devpts (rw,mode=0620) /dev/hda3 on /usr type ext2 (rw) /dev/hda2 on /var type ext2 (rw) 192.168.5.33:/nfst on /usr/home/filip/nfst type nfs (rw,addr=192.168.5.33)
Удаленная файловая система успешно смонтирована, о чем говорит последняя строка вывода mount.
Попробуем осуществить копирование файла:
root@pxy# cp /etc/mail/aliases /usr/home/filip/nfst/ root@pxy# ls /usr/home/filip/nfst/ aliases root@pxy# ls -l /usr/home/filip/nfst/ total 1 -rw-r--r-- 1 root root 406 Jun 20 22:30 aliases
Файл был записан, как видите, от имени пользователя root и группы root. На самом деле, в выводе команды ls таится подвох. Ведь команда ls на локальной машине использует для получения соответствия между идентификатором в файловой системе и именем пользователя (группы) локальный файл /etc/passwd. Потенциальная опасность состоит в том, что на удаленном сервере и на локальной машине файлы /etc/passwd окажутся разными. В случае пользователя root это не важно, если только на сервере NFS пользователю root нашей машины разрешено монтировать файловую систему от имени root. В противном случае все файлы, которые локальный root будет записывать на удаленный сервер, будут записываться от имени nobody (или иного имени, если так определено конфигурацией сервера).
root@pxy# ls -ld /usr/home/filip/nfst/ drwxrwxr-x 2 root bin 512 Jun 20 22:30 /usr/home/filip/nfst/
Коль скоро в нашем примере файл был записан от имени root, следует предположить, что настройки сервера NFS это позволяют. Проверим это на компьютере 192.168.5.33:
192.168.5.33# cat /etc/dfs/dfstab # Place share(1M) commands here for automatic execution # on entering init state 3. # # Issue the command '/etc/init.d/nfs.server start' to run the NFS # daemon processes and the share commands, after adding the very # first entry to this file. # # share [-F fstype] [ -o options] [-d "<text>"] <pathname> [resource] # .e.g, # share -F nfs -o rw=engineering -d "home dirs" /export/home2 share -F nfs -o root=pxy.spb.ru /nfst
Здесь, на компьютере 192.168.5.33, управляемом Solaris, разделяется общий каталог /nfst, а с компьютера pxy.spb.ru разрешено работать с этим каталогом от имени root. Следует осторожно раздавать подобные права и в большинстве случаев избегать разделения в сети каталогов с настроечной или секретной информацией.
По команде showmount можно получить список компьютеров, подключенных к серверу NFS:
192.168.5.33# showmount pxy.spb.ru www.spb.ru
Как видно, на сервере NFS имя хозяина файла совпадает с тем, что мы видели с клиента NFS, а имя группы файла – нет, так как под одним и тем же идентификатором в файлах /etc/group на сервере и на клиенте значатся разные группы. На практике следует избегать подобных расхождений, чтобы не возникало ситуаций, компроментирующих безопасность системы файлов. Синхронизация файлов passwd и group на сервере и клиентах или использование общей базы NIS помогут миновать путаницу в именах групп и владельцев файлов на сервере и клиенте NFS.
192.168.5.33# pwd /nfst 192.168.5.33# ls -l total 2 -rw-r--r-- 1 root root 406 Июн 20 22:30 aliases
Обратите внимание на одинаковое время создания файла с точки зрения команды ls сервера и клиента. В поле времени указывается время создания, которое записывает туда сервер NFS. Следует синхронизировать не только файлы group и passwd, но и время на сервере NFS и его клиентах, чтобы не было расхождений между клиентом и сервером при выполнении резервного копирования или выяснения "свежести" файлов.
Оптимизация производительности
Для оптимизации производительности NFS используется несколько средств. Во-первых, чем быстрее работают диски сервера NFS, тем быстрее информация сможет быть переданной через сеть. Современные сети часто строятся на основе высокоскоростных (как минимум, 100-мегабитных) коммутаторов, поэтому диски даже чаще оказываются узким местом в производительности, чем сеть. Если говорить об архитектуре x86, то предпочтительнее использовать в серверах современные жесткие диски с поддержкой UltraDMA-100, которые позволяют отдавать данные приложению с диска со скоростью порядка 50 Мб/с.
Во-вторых, применяется кэширование файлов на стороне сервера (поскольку любые операции чтения и записи кэшируются, имеет смысл увеличить объем памяти сервера NFS для того, чтобы кэш мог занимать больше памяти). Старайтесь избегать совмещения функций сервера NFS и сервера приложений, требовательного к объему памяти, типа сервера баз данных, на одном и том же компьютере.
В-третьих, может использоваться локальное кэширование посредством создания кэширующей файловой системы cachefs, как рассказано выше.
В SunOS 4.x для кэширования запросов к удаленной файловой системе NFS использовался процесс biod, но в SunOS 5.x (т.е. с самых ранних версий Solaris) применяется кэширование автоматическое всех операций чтения и записи, в том числе и для файлов, расположенных на удаленных серврах NFS. Поэтому в специальном процессе biod (в некоторых системах UNIX аналогичный по смыслу процесс называется nfsiod ) нет необходимости в Solaris.
Версия SunOS | Версия Solaris |
---|---|
4.x | 1.x |
5.6 | 2.6 |
5.7 | 7 |
5.8 | 8 |
5.9 | 9 |
5.10 | 10 |
Выполним еще один эксперимент: сервером NFS будет компьютер pxy (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
При экспорте файловых систем, если экспорт осуществляется компьютером под управлением Solaris, могут быть использованы параметры, указывающие, в каком режиме экспортируется файловая система. Подробнее об этих параметрах рассказывает руководство по dfstab(4) – см. man dfstab.
При монтировании файловых систем с сервера NFS клиентом под управлением Solaris могут быть применены другие параметры монтирования, указывающие уже клиенту, как именно следует смонтировать удаленную файловую систему.
Основные параметры монтирования приведены в табл. 7.4. Их следует указывать в файле /etc/dfs/dfstab в поле параметров монтирования (последнее поле строки dfstab ). Пример /etc/dfs/dfstab приведен выше в этой лекции, в разделе "Параметры экспорта в /etc/dfs/dfstab ".
Пример файла /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