Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Митряев лекции / РИС гр.446зс 2015 / РИС Л.8 гр.445 (30.10.15).docx
Скачиваний:
196
Добавлен:
25.03.2016
Размер:
183.16 Кб
Скачать

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