- NFS ;

Network File System (NFS) — протокол сетевого доступа к файловым системам, первоначально разработан Sun Microsystems в 1984 году. За основу взят протокол вызова удалённых процедур (ONC RPC). Позволяет подключать (монтировать) удалённые файловые системы через сеть.

NFS абстрагирован от типов файловых систем как сервера, так и клиента, существует множество реализаций NFS-серверов и клиентов для различных операционных систем и аппаратных архитектур. Наиболее зрелая версия NFS — v.4 , поддерживающая различные средства аутентификации (в частности, Kerberos и LIPKEY с использованием протокола RPCSEC GSS) и списки контроля доступа (как POSIX, так и Windows-типов).

NFS предоставляет клиентам прозрачный доступ к файлам и файловой системе сервера. В отличие от FTP, протокол NFS осуществляет доступ только к тем частям файла, к которым обратился процесс, и основное достоинство его в том, что он делает этот доступ прозрачным. Это означает, что любое приложение клиента, которое может работать с локальным файлом, с таким же успехом может работать и с NFS-файлом, без каких-либо модификаций самой программы.

NFS-клиенты получают доступ к файлам на NFS-сервере путём отправки RPC-запросов на сервер. Это может быть реализовано с использованием обычных пользовательских процессов — а именно, NFS-клиент может быть пользовательским процессом, который осуществляет конкретные RPC-вызовы на сервер, который так же может быть пользовательским процессом.

Важной частью последней версии стандарта NFS (v4.1) стала спецификация pNFS, нацеленная на обеспечение распараллеленной реализации общего доступа к файлам, увеличивающая скорость передачи данных пропорционально размерам и степени параллелизма системы.

В сущности NFS состоит из серверного и клиентского приложений и протоколов взаимодействия между ними. Посредством NFS компьютер может обеспечивать совместный доступ к своей физической файловой системе многим другим компьютерам, находящимся в той же сети. Кроме того, NFS скрывает реализацию и тип файловой системы сервера. Для приложений, запускаемых на NFS-клиентах, такая файловая система представляется точно так же, как локальное устройство хранения данных.

На рисунке 1 показана типичная схема NFS в сети с компьютерами, имеющими различные ОС: Linux®, Mac OS X и Windows®. Все они поддерживают стандарт NFS (NFS - единственный стандарт файловой системы, поддерживаемый IETF (Internet Engineering Task Force).)

##### 1. Простая конфигурация NFS

На рисунке 1 Linux машина представляет собой *NFS-сервер*; он предоставляет совместный доступ, или *экспортирует* (в терминах NFS) одну или несколько своих физических подсоединенных файловых систем. Машины Mac OS X и Windows являются NFS-клиентами. Каждый клиент поребляет (монтирует) файловую систему общего доступа. На самом деле монтирование файловой системы NFS дает тот же результат, что и монтирование раздела на локальном носителе — с примонтированной файловой системой приложения работают точно так же, как с локальной - просто читают и записывают файлы в соответствии с правами доступа, не ведая о механизмах, которые обеспечивают работу с ними.

При работе с файловой системой NFS операции чтения и записи фактически выполняются не клиентом, а сервером; именно он выполняет запросы, извлекает и сохраняет данные, изменяет метаданные файла (такие как права доступа или время модификации файла).

NFS — достаточно мощная система, что подтверждается широким использованием ее в качестве NAS (Network Attached Storage). Она работает как через протокол TCP, так и через UDP, и относительно проста в администрировании. Более того, NFSv4 — последняя официальная версия стандарта (утверждена в 2003 г.) — содержит улучшения в безопасности, обеспечивает лучшую совместимость Windows- и UNIX-®систем и обеспечивает лучшую эксклюзивность благодаря системе временных блокировок (lock leases). Инфраструктура для NFS также имеет невысокую стоимость, так как она может работать на обычных Ethernet-устройствах. NFS хорошо подходит для решения большинства задач.

Областью, в которой NFS работает плохо, традиционно считаются высокопроизводительные вычисления, где файлы данных обычно огромны, а количество NFS клиентов может исчисляться сотнями (представьте кластер, состоящий из нескольких сотен вычислительных узлов). Здесь использование NFS нежелательно, так как ограничения NFS-сервера —будь то пропускная способность, объем места для хранения или скорость процессора — снижают общую производительность вычислений. Здесь NFS является узким местом, «бутылочным горлышком».