Основная идея распределенной файловой системы состоит в том, чтобы обеспечить совместный доступ к файлам локальной файловой системы для процессов, которые, выполняются на других компьютерах.
Существуют несколько решений - сетевые файловые системы NFS (Network File System - сетевая файловая система) разработана компанией Sun Microsystems ветвь BSD и RFS (Remote File Sharing - совместное использование удаленных файлов) реализована компанией AT&T ветвь SystemV.
Основным недостатком RFS является то, что реализация RFS основана на использовании интерфейса TLI и система реализуема только на компьютерах, работающих под управлением ОС UNIX. Недостаток NFS в том, что ее можно использовать только в TCP/IP-ориентированных сетях.
В архитектурном отношении в NFS выделяются три основные части:
1. протокол,
2. серверная часть
3. клиентская часть.
Протокол NFS опирается на примитивы RPC.
NFS разработана таким образом, что одна машина может монтировать разделяемые ресурсы другой и обходиться с ними, как с локальными файлами.
NFS поддерживает разнородные системы, в которых клиенты и серверы могут работать под управлением различных операционных систем и на различном оборудовании.
В файловой системе NFS задача определения интерфейсов между клиентом и сервером выполняется при помощи двух протоколов.
Работой NFS управляют два демона nfsd(8) и mountd(8). Mountd выполняет функции сервера, a nfsd выполняет функции клиента. Он готовит запрос, связанный с монтированием удаленной ф/с и передает его на удаленный узел (на котором на этот запрос отвечает демон mountd).
Для NFS разработаны два протокола.
Первый протокол NFS управляет монтированием каталогов.
Монтирование может быть
1. статическим. Тогда команды монтировки файловых систем размещаются в файле /etc/rc (тип файловой системы указывается nfs. Имя файловой системы состоит из имени хоста и имени каталога, в котором она размещена). Таким образом, все необходимые удаленные файловые системы будут автоматически смонтированы прежде, чем будет разрешена регистрация в системе.
2. динамическим (автомонтировка). Это свойство позволяет ассоциировать с локальным каталогом несколько удаленных каталогов. Ни один из этих удаленных каталогов не монтируется во время загрузки операционной системы (не происходит даже контакта с сервером). Вместо этого при первом обращении к удаленному файлу (когда файл открывается) операционная система посылает каждому серверу сообщение. Побеждает ответивший первым сервер, чей каталог и монтируется.
В этом случае используются два файла: на клиенте в файлe /etc/fstab(таблица автомонтирования), который содержит инструкции о том, какие ф/с надо монтировать при запуске и в какое место, а на сервере в файле /etc/exports указываются экспортируемые деревья файловой системы клиенту.
Второй протокол NFS предназначен для доступа к каталогам и файлам. Клиенты могут посылать серверам сообщения, содержащие команды управления каталогами и файлами, что позволяет им создавать, удалять, читать и писать файлы. Кроме того, у клиентов есть доступ к атрибутам файла, таким как режим, размер и время последнего изменения файла.