
- •Управление распределенными ресурсами План
- •2. Распределенные файловые системы
- •2.1. Файловая система
- •2.2. Файловая система ос
- •2.3. Интерфейс файлового сервиса
- •Операционные системы персональных компьютеров
- •Серверные операционные системы
- •2.4. Интерфейс сервиса каталогов
- •2.5. Семантика разделения файлов
- •3. Операционная система Unix
- •4. Вопросы разработки структуры файловой системы
- •5. Кэширование
- •Кэш-память Внешняя память
- •Назначение кеш памяти
- •6. Репликация
- •7. Распределенные файловые системы
- •7.2. Сетевая файловая система (nfs) и файл /etc/exports
7.2. Сетевая файловая система (nfs) и файл /etc/exports
Система NFS была разработана компанией Sun Microsystems как часть ее сетевого продукта ONC (Open Network Computing - открытая сетевая вычислительная обработка). В настоящее время NFS, является официальным компонентом UNIX System V Release 4.
NFS разрабатывалась как система, пригодная к использованию не только на разных аппаратных, но и на разных операционных платформах. В настоящее время продукт NFS, в соответствии со спецификациями и на основе программного кода Sun Microsystems, выпускают более 200 производителей. Отметим, в частности, наличие популярного в России продукта PC-NFS, обеспечивающего клиентскую часть системы в среде MS-DOS. Кроме того, заметим, что имеются и свободно доступные (public domain), и коммерческие варианты NFS.
Первоначально NFS разрабатывалась в среде UNIX BSD 4.2, и для реализации системы потребовалось существенно переделать код системных вызовов файловой системы. При внедрении NFS в среду System V понадобилась значительная переделка ядра ОС. Отмечается, что большая часть изменений в ядре System V Release 4 была связана именно с NFS.
В архитектурном отношении в NFS выделяются три основные части:
протокол,
серверная часть
и клиентская часть.
Протокол NFS опирается на примитивы RPC, которые, в свою очередь, построены над протоколом XDR. Клиентская часть NFS взаимодействует с серверной частью системы на основе механизма RPC.
Основным достоинством NFS является возможность использования в среде разных операционных систем.
Возможным недостатком является то, что независимость от транспортных средств ограничена уровнем такой независимости, присущей RPC. В настоящее время де-факто это означает, что NFS можно использовать только в TCP/IP-ориентированных сетях.
Сетевая файловая система (Network File System, NFS) позволяет монтировать файловую систему с удаленного компьютера так, как будто она локальная и находится в вашей системе.
После такого монтирования вы можете непосредственно обращаться к файлам этой удаленной файловой системы. Преимущество состоит в том, что различные компьютеры сети могут получать прямой доступ к одним и тем же файлам без необходимости создания их копий. Существует только один экземпляр файла, находящийся в удаленной файловой системе, и к нему может обращаться любой компьютер.
Система NFS работает в сети TCP/IP.
Удаленный компьютер, на котором находится файловая система, предоставляет ее другим машинами сети. Это достигается за счет экспорта файловой системы, для чего на удаленном компьютере следует добавить соответствующие строки в файл конфигурации NFS (его имя - /etc/exports), а также запустить два процесса-демона, обеспечивающих доступ к удаленному компьютеру (это программы rpc.mountd и rpc.nfsd). В каждой строке файла /etc/exports указывается экспортируемая система и сетевые компьютеры, которые имеют право доступа к ней. Для файловой системы указывается точка монтирования - каталог, в который она монтируется. Затем следует список компьютеров, имеющих к ней доступ. За каждым именем может следовать разделенный запятыми список опций мон-тирования, взятый в круглые скобки. Например, одному компьютеру можно предоставить доступ только для чтения, другому - для чтения и записи и т.д. Если указаны только опции, они распространяются на всех.
Ниже приведены примеры записей файла /etc/exports.
К файловой системе, смонтированной в каталоге /pub (это имя обычно используется для общедоступного каталога), всем компьютерам предоставляется доступ только для чтения без проверки прав доступа. Компьютеру ant.trek.com предоставляется доступ для чтения и записи к файловой системе, смонтированной в каталоге /home/foodstuff. Следующая запись предоставляет компьютеру biitterny.trek.com доступ к компакт-диску. Последняя запись запрещает всем компьютерам доступ к каталогу /home/ richlp.
/etc/exports
/pub (ro,insecure,all_squash)
/home/foodstuff ant.trek.com(rw)
/mnt/cdrom butterfly.trck.com(ro)
/home/richip (noaccess)
Прежде чем начать пользоваться удаленной файловой системой, ее нужно смонтировать на локальном компьютере.
Удаленную файловую систему можно смонтировать, либо сделав соответствующую запись в файле /etc/fetab, либо явно командой mount. В строке, описывающей сетевую файловую систему, в поле filesystemtype файла /etc/fetab тип файловой системы должен быть определен как NFS. Имя сетевой файловой системы состоит из имени хост-компьютера, на котором она расположена, и путевого имени каталога, в котором она находится. Эти имена разделяются двоеточием.
Например, имя rose.berkeley.edu:/ home/project относится к файловой системе, смонтированной в каталоге /home/ project на компьютере rose.berkeley.edu.
Существует несколько специальных опций монтирования NFS, которые можно указать в файле /etc/fstab. Допускается, в частности, указание размера передаваемых и принимаемых дейтаграмм, а также периода, в течение которого компьютер будет ждать ответа от удаленной системы. Можно указать и режим монтирования файловой системы - hard или soft. Если система смонтирована в режиме hard, то в случае, когда удаленная система не отвечает, ваш компьютер будет непрерывно пытаться установить соединение с нею. При монтировании в режиме soft компьютер прекращает попытки и выдает сообщение об ошибке. По умолчанию осуществляется монтирование в режиме hard. Полный перечень опций монтирования NFS со стороны клиента содержится на man-странице, относящейся к команде mount. Они отличаются от опций монтирования NFS на стороне сервера.
Ниже приведен пример строки файла /etc/fstab для сетевой файловой системы. Удаленная система - ant.trek.com, а файловая система смонтирована в каталоге /home/projects. В локальной системе эту файловую систему необходимо смонтировать в каталоге /home/richlp. Тип системы - NFS. Опция timeo указывает на то, что локальная система будет ожидать ответа в течение 20 десятых секунды, т.е. 2 секунды.
ant.trek.com:/home/projects /home/richlp nfs timeo=-20
3
+,,,,,,,,,+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,
65/Ф7айловую систему NFS можно смонтировать явно командой mount с опцией -t nfs. Предыдущая операция выполняется следующей командой:
t mount -t nfs -о timeo=20 aut.trek.com:/home/projects /home/richlp