Сетевая файловая система (Network File System, NFS) позволяет монтировать файловую систему с удаленного компьютера так, как будто она локальная и находится в вашей системе. После такого монтирования вы можете непосредственно обращаться к файлам этой удаленной файловой системы. Преимущество состоит в том, что различные компьютеры сети могут получать прямой доступ к одним и тем же файлам без необходимости создания их копий. Существует только один экземпляр файла, находящийся в удаленной файловой системе, и к нему может обращаться любой компьютер.
Система NFS работает в сети TCP/IP. Удаленный компьютер, на котором находится файловая система, предоставляет ее другим машинами сети. Это достигается за счет экспорта файловой системы, для чего на удаленном компьютере следует добавить соответствующие строки в файл конфигурации NFS (его имя - /etc/exports), а также запустить два процесса-демона, обеспечивающих доступ к удаленному компьютеру (это программы rpc.mountd и rpc.nfsd). В каждой строке файла /etc/exports указывается экспортируемая система и сетевые компьютеры, которые имеют право доступа к ней. Для файловой системы указывается точка монтирования - каталог, в который она монтируется. Затем следует список компьютеров, имеющих к ней доступ. За каждым именем может следовать разделенный запятыми список опций мон-тирования, взятый в круглые скобки. Например, одному компьютеру можно предоставить доступ только для чтения, другому - для чтения и записи и т.д. Если указаны только опции, они распространяются на всех. Перечень опций монтирования приведен в табл.7.8. Ниже приведены примеры записей файла /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, и в табл.7.9. Они отличаются от опций монтирования NFS на стороне сервера.
Ниже приведен пример строки файла /etc/fstab для сетевой файловой системы. Удаленная система - ant.trek.com, а файловая система смонтирована в каталоге /home/projects. В локальной системе эту файловую систему необходимо смонтировать в каталоге /home/richlp. Тип системы - NFS. Опция timeo указывает на то, что локальная система будет ожидать ответа в течение 20 десятых секунды, т.е. 2 секунды.
ant.trek.com:/home/projects /home/richlp nfs timeo=-20
Файловую систему NFS можно смонтировать явно командой mount с опцией -t nfs. Предыдущая операция выполняется следующей командой:
t mount -t nfs -о timeo=20 aut.trek.com:/home/projects /home/richlp