Созданная в 1985 году фирмой Sun, NFS (Network File System) стала фактическим стандартом для систем управления распределенными данными.
NFS создает общую файловую систему из файловых систем нес- кольких машин, соединенных в сеть, создавая при этом у пользо- вателя иллюзию, что он работает с одной файловой системой. Система NFS,часто используемая для связи нескольких машин в среде ОС UNIX и для включения в среду UNIX PC с помощью PC-NFS, доступна, кроме того,на машинах серий Cray,IBM,Dec ...
6.2. ФУНКЦИОНАЛЬНЫЕ ВОЗМОЖНОСТИ
Система NFS создавалась со следующими намерениями: предоставить пользователю возможность работать с файлами, расположен- ными на чужих машинах так,как если бы они находились на его собственной - не копируя их. При этом отпадает необходимость в пересылке данных что, в частности, позволяет решить проблему управления различными версиями одного и того же продукта,рас- положенными на разных машинах.
NFS разрабатывалась фирмой Sun система,предназначенная для реализации
следующих целей :
- независимость от операционных систем
- простота
восстановления в случае сбоя сервера
- прозрачный доступ
- сохранение для
клиентов UNIX семантики UNIX
- удовлетворительная производительность
Для администратора рабочих станций UNIX,NFS выглядит как расширение локальной команды "монтирования" (mount) на файловые системы, присутствующие в сети.
На рабочих станциях Sun NFS используется для управления станциями без жестких дисков. NFS не управляет одновременным доступом нескольких пользователей к одному и тому же файлу. Это дополнительная функция, реализуемая следящей программой (демоном) LOCKD.
В случае "двоичного" файла, несмотря на прозрачность доступа возникает проблема различного представления данных на разных машинах. NFS не конвертирует данные. Вам следует использовать "форматированные" данные или применить XDR (eXternal Data Representation) или аналогичное программное средство.
NFS реализована в соответствии с моделью клиент-сервер. Машина, подсоединенная к сети, является сервером NFS, если она способна предоставить свою файловую систему другим машинам ; говорят, что она "экспортирует" свою файловую систему.
Машина является клиентом NFS, если она использует файловую систему, экспортируемую сервером ; говорят, что она "монтирует" или "импортирует" файловую систему (Рис. 6.1)
Система может быть :
- одновременно клиентом и сервером (станции с жестким
диском)
- только клиентом (PC или станции без диска)
- только сервером
(центральные IBM)
Один сервер может обслуживать несколько клиентов. Одна машина-клиент способна обращаться к нескольким серверам.
Обычно серверы "экспортируют" свои файловые системы полностью (за исключением нескольких систем,например SunOS версий 4.x,которая позволяет экспортировать отдельные каталоги). Клиенты,напротив,"монтируют" только каталоги.
Прозрачный доступ к файловым системам различных типов (UNIX,DOS ...) реализован посредством встроенного в ядро интерфейса VFS : Virtual File System (Рисунок 6.2). Каждой смонтированной файловой системе соответствует в ядре своя структура VFS. В то время,как файловые системы UNIX манипулируют элементами,называемыми inode (index node - индексные узел - индексный дескритор файла), NFS использует понятие vnode (virtual node). Речь идет о,в некотором смысле, о виртуальном inode, которому соответствует либо локальный физический inode либо удаленный физический inode (или еще что-то,реализующее управление файлами на не UNIX машинах).
NFS, таким образом, использует систему управления виртуальными файлами,которая приводится в соответствии ("mapping") с системой управления реальными файлами, в случае, если файл является локальным.
NFS использует RPC (Remote Procedure Call) для управления диалогами между клиентами и серверами и XDR (eXternal Data Representation) для обмена данными,связанными с протоколом (но не для данных пользователя !)
Что касается нижних уровней протокола, то в принципе NFS можно надстроить над TCP. Однако, все текущие версии из соображений эффективности используют UDP.
NFS - это протокол без сохранения состояния : сервер не отслеживает действия клиента. Если сервер останавливается, клиент продолжает посылать запросы до тех пор, пока сервер не будет перезапущен (речь идет о текущей возможности, сервер может остановиться и после некоторой задержки). Это позволяет очень просто перезапустить сервер NFS. С другой стороны, при этом, сервер должен обновлять файлы после каждой операции записи, чтобы свести к минимуму риск потери данных. При этом производительность сильно падает для операций записи, в отличие от операций чтения,использующих кэш. Кроме того, сервер, не сохраняющий состояние, не позволяет полностью поддерживать семантику UNIX. NFS не управляет специ- альными файлами и не способен блокировать файлы и части файлов.
1. Клиент
2. Обращение к системе
3. Интерфейс VFS
4. Система
локальныхфайлов UNIX
4. Клиент NFS
5. RPC и XDR
6. Сервер
7. NFS
сервер
8. Сеть
9. Данные
Проверяя право доступа к файлам,система идентифицирует пользователя на сервере точно так же,как и на локальном терминале - с помощью его номеров UID (User ID) и GID (Group ID). Отсюда вытекает важное следствие : для того,чтобы сохранить право доступа к своим файлам,пользователь должен иметь одинаковые UID и GID на всех машинах.
Привилегированный пользователь теряет свои привилегии по доступу к файлам в сети, если только это не предусмотрено в конфигурации.
Передача информации между клиентом и сервером в UNIX
NFS встроено в ядро в виде набора следящих программ (демонов). Клиент и
сервер обмениваются информацией следующим образом (рисунок 6.3.) :
- для
выполнения операции монтирования, клиент NFS обращается к демону rpc.mountd,
расположенному со стороны сервера, который посылает назад идентификатор (file
handle), ассоциированный со смонтированным каталогом;
- для выполнения
файловых операций, клиент NFS посылает идентификатор (file handle) и описание
требуемой операции демону nfsd, расположенному со стороны сервера. Этот демон
использует для выполнения операции функции ядра.
1- Клиент
2- Команда NFS
3- Клиент NFS
4- Следящая программа
mountd
5- Сервер NFS
1: Запрос на монтирование
2: Порождение идентификатора
3: Пересылка
идентификатора
4: Чтение и запись с использованием идентификатора
В операционной системе UNIX ввод-вывод в "блокирующем" режиме осуществляется с помощью кэша, который и позволяет реализовать опережающее чтение ("read ahead") и отсроченную запись ("delayed write"). Что касается клиентов NFS,то в этом случае производительность ввода-вывода позволяют улучшить следящие программы ("де- моны") biod (обычно их четыре) - они обеспечивают опережающее чтение и сохраняют соответствующую информацию в памяти клиента. Кроме того, система запоминает атрибуты файлов и каталогов. Запись выполняется лишь в том случае ,если блок пересылки NFS полон. Если нет доступных следящих программ biod, диалог выполняется непосредственно с одним из серверов nfsd. NFS обеспечивает корректность хранящейся в кэше информации тем, что периодически опрашивает сервер. Сервер NFS выполняет запись непосредственно, без использова- ния механизма кэширования. При чтении, напротив, используется кэш.
Что касается безопасности, то система позволяет указать серверу :
-
список экспортируемых файлов и каталогов
- соответствующие права доступа
-
список машин, имеющих право монтировать экспортируемые каталоги. Пользователь
машины клиента, при этом, идентифицируется простонапросто номером, чего явно
недостаточно. Фирма Sun обладает версией Secure NFS, использующей систему
идентификации DES (Data Encryption Standard) и механизмы шифрования. Эта версия
недоступна для большинства других разработчиков.
6.3. АДМИНИСТРАТИВНЫЕ ФУНКЦИИ И ЭКСПЛУАТАЦИЯ
6.3.1 Административные функции
Все команды, реализующие административные функции, за исключением тех, для которых это указано явно, доступны только привилегированному пользователю.
Для того,чтобы NFS функционировала в режиме сервера, следует активировать
несколько следящих программ :
- следящую программу portmap, функции которой
описываются в главе, посвященной RPC ;
- следящуюпрограмму rpc.mountd,
реализующую операции монтирования и демонтирования ресурсов ;
- следящие
программы nfsd : именно они и выполняют, с помощью ядра, запросы передаваемые
машинами-клиентами. Как правило, запускаются четыре следящих программы nfsd.
Необязательно запускать следящие программы на машине-клиенте, однако, как
правило, все же запускаются четыре программы biod, позволяющие улучшить
характеристики ввода-вывода.
Сейчас мы рассмотрим пример, который проиллюстрирует принципы настройки сервера и клиента, в качестве которых используются две станции Sun (Рис 6.4.) :
- сервер ordinfm "экспортирует" каталоги usr/share (только чтение) и /home
(чтение и запись) ;
- клиент ordinaq "монтирует" каталоги /usr/share/man и
/home/testnfs.
Системы экспортируемых файлов описываются в файле /etc/exports. Система файлов экспортируется в машину или группу машин (группу машин можно описать в файле /etc/netgroup). Можно, кроме того, задать права доступа к экспортируемым файлам. В системе SunOS, команда exportfs позволяет временно экспортировать систему файлов ; если выдать эту команду без параметров, она выведет список экспортированных файлов. В других системах следует модифицировать файл /etc/exports, который считывается заново при каждом очередном запросе на "монтирование".
В нашем примере, для того, чтобы экспортировать каталоги usr /share и /home, следует ввести следующие команды : #exportfs /usr/share -ro #exportfs /home -rw (значения параметров можно понять, изучив структуру файла /etc/exports).
Файл /etc/exports имеет следующую структуру :
система_файлов -опции список_клиентов где :
- система_файлов : система
экспортируемых файлов или каталогов
- опции : может принимать следующие
значения :
- ro : ресурсы экспортируются в режиме только чтения
- rw :
ресурсы экспортируются в режиме чтения и записи
- root : клиент сохраняет
права привилегированного пользователя
- noroot : клиент теряет права
привилегированного пользователя
- список_клиентов : список машин-клиентов или
ссылка на список машин-клиентов, указанных в файле /etc/netgroup. По умолчанию,
файловая система экспортируется для всех машин в режиме чтения и записи, и
клиент теряет права привилегированного пользователя.
В нашем примере файл /etc/exports может выглядеть следующим образом
(предполагается, что каталог /usr/share делится между всеми машинами, а каталог
/home принадлежит исключительно машине ordinaq, причем привилегированный
пользователь на ней сохраняет свои права) :
/usr/share -ro /home -rw,root
ordinaq
Используемый каталог следует смонтировать,что делается либо с помощью выдаваемой "вручную" команды монтирования, либо автоматически при запуске станции.
- монтирование вручную #mount -t nfs -o опции каталог_сервер каталог_клиент
где
- каталог_сервер : имя машины сервера и имя монтируемого каталога (имя
каталога следует указывать полностью,начиная с корневого), в виде
:имя_сервера:имя_каталога ;
- каталог_клиент : имя каталога,задаваемое
полностью, начиная с корневого каталога ;
- опции : могут принимать следующие
значения
- rw (read-write) или ro (read-only) : устанавливает, при необходимости, защиту (только чтение) на каталоге сер- вера ;
- suid или nosuid : указывает,выполнять или не выполнять программы с
установленным битом SUID ;
- bg (background) или fg (foreground) : опция,
используемая исключительно при монтировании.
В любом случае хотя бы одна попытка монтирования выполняется в режиме
foreground (т.е. система не переходит к другой операции до тех пор, пока не
будет завершена эта). Остальные попытки монтирования выполняются в режиме
background (управление передается оператору) или foreground (в зави- симости от
выбранного значения) ;
- retry=n : в случае, если первая попытка монтирования
не удалась, операция повторяется еще n раз. После n+1 -й безуспешной попытки
монтирование прекращается и пользователю выдается предупреждающее сообщение
(mount: server non responding - сервер не отвечает).
- soft или hard ;
retrans=n ; timeo = n : после монтиро- вания файловой системы, каждый запрос NFS
ждет n (зна- чение timeo) десятых долей секунды. Если ответа нет, значение
времени ожидания умножается на два и запрос повторяется. Если число повторений
достигло значения, указанного в опции retrans=n, то в случае, если было указано
значение soft, система выдает сообщение об ошибке (RPC timeout) и запрос
снимается, если же файло- вая система была смонтирована с параметром hard, выда-
ется предупреждающее сообщение (NFS server non responding, still trying - NFS
сервер не отвечает, все еще пробую) и запрос повторяется до тех пор, пока он не
завершится успехом. - intr или nointr : опция используется только в том слу-
чае, если файловая система монтируется с опцией hard. Опция intr позволяет снять
с клавиатуру текущую опера- цию в том случае, если сервер не отвечает ;
-
rsize=n : размер блока UDP при чтении (по умолчанию, 8192 байта). Речь идет о
величине кванта обмена между клиентом и сервером. - wsize=n : размер блока UDP
при записи (по умолчанию, 8192 байта). Мы советуем Вам использовать следующие
значения : - hard или soft : значение hard позволяет продолжить работу при сбое
запроса, в отличие от значения soft. Sun советует использовать значение hard для
каталогов, смонтированных в режиме записи, однако это совершенно не обязательно.
Для прикладных программ, лучше всего монтировать в режиме hard. С другой
стороны,для разработчиков использование значения soft более практично : оно
позволяет в случае сбоя просто прекратить ошибочную команду ;
- fg : запросы
на монтирование выполняются в режиме передне- го плана ;
- nosuid : файлы с
установленным битом SUID не выполняются ;
- intr : текущую операцию можно
прервать с клавиатуры, нажав на CONTROL C или CONTROL Z (внимание : некоторые
системы устанавливают эту возможность по умолчанию). Следующие опции можно
настроить в соответствии с текущими нуждами : - ro (read-only) или rw
(read-write) : значение rw может привести к проблемам, связанным с целостностью
информации и/или одновременного доступа к ресурсам ;
- retry (по умолчанию,
1000) : число повторений операции монтирования в случае неудачи - retrans (по
умолчанию, 4) : число попыток RPC повторить запрос ;
- timeo (7 десятых
секунды, по умолчанию) : время, в течение которого клиент, выдав запрос RPC,
ожидает ответа сервера. Приведем пример команды mount : #mount -t nfs -o
hard,bg,nosuid,intr,rw,timeo=10, retry=5 ordinfm:/home/testnfs /home/testnfs
- Автоматическое монтирование (при запуске станции) : Параметры команды
mount, при этом, хранятся в файле /etc/fstab или /etc/checklist, в зависимости
от версии.
Файл /etc/fstab имеет следующий формат : каталог_сервер каталог_клиент nfs опции 0 0 (значения параметров описаны выше - см. монтирование вручную)
Приведем пример файла /etc/fstab :
ordinfm:/usr/share/man /usr/share/man nfs bg,ro,hard,intr 0 0 ordinfm:/home/testnfs /home/testnfs nfs bg,rw,hard,intr 0 0
В некоторых системах существует дополнительная возможность - automount.Следящая программа automount позволяет монтировать раздел NFS только в случае его использования - при этом раздел автоматически демонтируется, если он не использовался долгое время. При этом файл /etc/fstab становится ненужным. Функцио- нирование automount задается параметрами, указываемыми в фай- лах maps.
- Демонтирование каталога сервера #umount каталог_клиент где каталог_клиент : полное имя каталога, начиная с корневого каталога. Для выполнения команды демонтирования, каталог_клиент не должен быть занятым ("busy").
- список ресурсов, экспортируемых сервером, и монтируемых клиентами #showmnt
-опции имя_сервера где - имя_сервера : имя машины сервера NFS - опции : могут
принимать следующие значения :
- e : выводит список каталогов, экспортируемых
сервером (содержимое файла /etc/exports) ;
- d : выводит список каталогов,
смонтированных клиентами (содержимое файла /etc/rmtab) ;
- a : выводит
полный список монтирований, выполненных кли- ентами, с указанием номера
машины.
- Команда rpcinfo #rpcinfo -p имя_сервера Эта команда,которая будет
подробно описана в главе 10, выда- ет список список зарегистрированных и
функционирующих на сер- вере сервисных функций RPC. Среди них должны находиться
nfs и mountd.
- Команда nfsstat #nfsstat -опции - опции могут принимать следующие значения
:
- c : информация о клиенте
- s : информация о сервере
- n :
информация о NFS
- r : информация о RPC
- z : выдача информации и
обнуление счетчиков По умолчанию, используется значение -csnr. Эта команда
выводит значения счетчиков, связанных с NFS. Значения счетчиков timeout и
retrans клиента следует изучать тща тельно, так как они могут сообщить о
неполадках в функциониро- вании сервера. В этом случае, следует изменить
значения пара- метров монтирования в соответствии с уже данными указаниями :
увеличить значение параметра timeo, уменьшить, в случае необ- ходимости,
значения rsize и wsize.
Ниже мы перечисляем наиболее часто встречающиеся сообщения об ошибках и предупреждения.
- Проблемы, возникающие при монтировании mount :
... server not
responding
- диагностика : авария сервера или не функционирует NFS или
авария сети.
- проверки :
- проверьте, не находится ли сервер в состоянии
ожида- ния с помощью команды : #ping имя_сервера Вы должны получить сообщение
имя_сервера alive или сообщение о правильной передаче.
- проверьте,
функционирует ли на сервере NFS, с помо- щью команд : #ps -e (или ps -ax) Должны
отозваться следящие программы portmap,rpc.mountd и nfsd ; #rpcinfo -p
имя_сервера В списке должны оказаться nfs и mountd. mount :
|... permission
denied
- диагностика : экспортируемые файлы не описаны или опи- саны
неправильно
- проверки : проверьте файл /etc/exports сервера.
- Проблемы,
возникающие при функционировании NFS server x not responding, still trying -
диагностика и проверки : если вслед за этим сообщением появляется сообщение NFS
server x OK - это значит, что запрос не получился, но был успешно повторен (если
такие сообщения возникают часто, следует увеличить значение па- раметра
монтирования timeo). В противном случае, с серве- ром или с сетью случилось
что-то серьезное (см. проверки, описанные выше). Текущую операцию можно
прервать, нажав на клавиши CONTROL C или CONTROL Z. RPC timeout - речь идет о
такой же проблеме, как и та, которая описана выше - т.е. о неудавшемся запросе.
Это сообщение означа- ет, что монтирование было выполнено с параметром soft и
что запрос был прерван. Запрос следует повторить.
- Проблемы, связанные с
производительностью
- диагностика : возможно, что плохо функционируют
следящие программы biod. Возможно также, что сеть очень загружена или что
процессор клиента или сервера занят.
- проверки : попробуйте снять и
перезапустить следящие программы biod на рабочей станции : #ps -ax | grep biod #
kill -9 pid1, pid2, pid3, pid4 #biod 4
Продукт является прозрачным для пользователя, если не счи- тать несколько специальных операций, основные из которых опи- саны в параграфе 6.3.3. Все команды "экспортирования" и "мон- тирования" выполняются при запуске системы и входят в компетенцию администраторов.
В распоряжении пользователя есть команды, позволяющие ему контролировать
функционирование NFS :
- список "экспортируемых" файлов сервера : со стороны
машины -клиента для вывода этой информации можно использовать ко- манду showmnt
; со стороны сервера можно использовать ко- манду exportfs или непосредственно
просмотреть содержимое файла /etc/exports ;
- список файлов,
"смонтированных" машиной-клиентом : можно воспользоваться командой mount без
параметров. При этом выводится содержимое файла /etc/mtab.
Напоминаем, что привилегированный пользователь теряет в сети свои права, он становится "никем" ("nobody") с UID -2, если только при экспортировании не было указано противное. Таким образом, для него эксплуатация NFS не является прозрачной.
6.3.3. Особенности функционирования
- Правила доступа к файлам UNIX Метод управления файлами UNIX неполностью поддерживается не- которыми из операций : например, если первый клиент откроет файл, а второй, в то же самое время, уничтожит этот файл, то запросы на чтение со стороны первого клиента не будут выпол- няться, хотя UNIX будет рассматривать этот файл как правильно открытый и доступный.
Однако, вообще говоря, правила доступа к файлам UNIX поддер- живаются механизмами, реализующими функционирование клиентов UNIX.
- Атрибуты файлов Атрибуты файлов устанавливаются клиентом NFS (дата, время, право доступа, владелец ...)
Мы советуем Вам создать одну и ту же рабочую среду для файлов, как на сервере, так и на клиенте,(в частности одну и ту же маску создания umask), если Вы хотите обеспечить соответствие между двумя системами.
- Одновременный доступ к файлу в режиме записи Два процесса, записывающие данные в один и тот же файл, рис- куют получить несогласованные результаты.
Вообще говоря, файлы, управляемые NFS, лучше использовать только в режиме чтения. Если Вы хотите использовать файл в ре- жиме записи и, при этом, управлять одновременным доступом, воспользуйтесь следящей программой lockd (см. параграф 6.5.).
- Дата и время
Часы и календарь сервера и клиента редко согласуются, а это может привести к определенным трудностям, в том,например, слу- чае, если файл, создаваемый на сервере, используется затем клиентом или наоборот. Эта проблема очень важна для тех инструментальных средств, которые использует дату и время, как make или SCCS.
Решением этой проблемы стал бы механизм синхронизации часов - такой, как rdate в SunOS. Однако, не существует механизма, общего для всех систем, хотя протокол NTP (Network Time Protocol) становится как будто все более и более популярным.
6.4. ХАРАКТЕРИСТИКИ И ЗАГРУЗКА СЕТИ
Объявлены следующие характеристики системы :
- 300 К/сек при чтении
-
50 К/сек при записи.
Мы проверили эти значения с помощью трех программ :
- последовательного чтения из файла
- последовательной записи в файл
- рандомизированного чтения из файла
Эти программы написаны на Си и
используют стандартную библи- отеку Си. Рисунки 6.5. и 6.6. иллюстрируют
скорость передачи,получен- ную при пересылке блоков, размером 1024 байта, между
клиентом Sun 4/65,оборудованным контроллером Emulex MD21, и сервером Sun 4/330,
оборудованным периферийным устройством того же ти- па. Для сравнения приводятся
и значения, полученные на локаль- ных дисках. Рисунки 6.7. и 6.8. иллюстрируют
скорость передачи между Sun 4/65, оборудованным диском Emulex MD21, и сервером
HP 9000 375, оборудованным диском 7937.
Рис. 6.5. - Скорость передачи в режиме записи между двумя Sun
1 -
Скорость в К/сек
2 - Запись NFS (сервер 4/330)
3 - Локальная запись Sun
4/65
4 - Локальная запись Sun 4/330
Рис. 6.6. - Скорость передачи между двумя Sun в режиме чте- ния
1 -
Скорость в К/сек
2 - Чтение NFS рандомизированное (сервер 4/330)
3 -
Локальное чтение Sun 4/65
4 - Локальное чтение Sun 4/330
Рис. 6.7. - Скорость передачи между Sun и HP в режиме записи
1 - Скорость
в К/сек
2 - Запись NFS (сервер HP)
3 - Локальная запись HP 9000/375
Рис. 6.8. - Скорость передачи между Sun и HP в режиме записи 1 - Скорость в К/сек 2 - Последовательное чтение NFS (сервер HP) 3 - Локальное чтение HP 9000/375
Выводы :
- скорость передачи при записи существенно ниже, чем при чтении,
и сильно зависит от мощности сервера и его времени доступа к диску ;
-
скорость передачи в режиме чтения зависит от способности клиента управлять
механизмами кэширования. Производитель- ность выше всего, если чтение является
последовательным ;
- в общем и целом, характеристики соответствуют
анонсируемым.
Эффективная загрузка сети зависит от того, каким именно об- разом используется NFS. "Классическое" использование - для компиляции, чтения или записи, сопровождаемых обработкой данных, в среднем загружают сеть мало. С другой стороны, последовательное чтение или запись больших файлов (что бывает редко) значительно загружает сеть.
6.5. ОТСЛЕЖИВАЮЩАЯ ПРОГРАММА LOCKD И МОНИТОР СТАТУСА
6.5.1. Функциональные возможности
Использование следящей программы lockd (rpc.lockd) позволяет управлять доступом к файлам или компонентам файлов (последова- тельностям файлов, часто называемым записями). Одновременно с этой программой следует активировать следящую программу statd (монитор статуса rpc.statd). Эта программа управляет состояни- ем файла и позволяет восстановить это состояние или уничтожить блокировку в случае сбоя сервера.
На рисунке 6.9. изображено выполнение операции блокировки в сети.
Рис. 6.9. - Операция блокировки в сети
1 - Клиент
2 - Программа
пользователя
3 - Следящая программа lockd
4 - Следящая программа statd
5 - клиент NFS
6 - сервер NFS
1: Программа вызывает примитив,
который устанавливает замок
2: Отслеживающая программа lockd получает запрос
3: Запрос передается программе statd
4: Отслеживающая программа statd
сервера запоминает запрос
5: Вызывается следящая программа lockd сервера
6: Отслеживающая программа statd получает информацию об установке замка
7: Устанавливается замок
Замки на файлах и записях управляются с помощью указания в программном коде системных вызовов (lockf(),fcntl()).
NFS обеспечивает прозрачный доступ к удаленным файловым сис- темам, расположенным на разнотиповых машинах. NFS использует RPC (Remote Procedure Call) для обеспечения диалога между кли- ентом и сервером и XDR (eXternal Data Representation) для об- мена данными, связанными с протоколом. Что касается нижних уровней протокола, текущие версии NFS используют UDP. Производительность : от 200 до 600 К/сек при чтении и от 50 до 100 К/сек при записи.
Отслеживающая программа lockd позволяет управлять одновре- менным доступом к файлам или записям.
Несмотря на свои недостатки, NFS - это технологически зрелый продукт, удобный как для пользователей, так и для администраторов рабочих станций UNIX.