Сетевая файловая система (NFS) - это протокол сетевой файловой системы, изначально разработанный системами Sun Micro в 1984 году, позволяющий пользователю клиентского компьютера получать доступ к файлам по сети способом, аналогичным доступу к локальному хранилищу. NFS, как и многие другие протоколы, построена на системе удаленного вызова процедур (ONC RPC). Сетевая файловая система является открытым стандартом, определенным в RFC.

Оригинальная версия NFS

Детали реализации определены в RFC 1094. Sun использовала версию 1 только для собственных экспериментальных целей. Когда команда разработчиков внесла существенные изменения в версию 1 NFS и выпустила ее за пределами Sun, они решили выпустить новую версию как v2, чтобы можно было протестировать взаимодействие версий и RPC-версию.

NFSv2

Версия 2 протокола (определенная в RFC 1094, март 1989 г.) изначально работала полностью по протоколу UDP. Его разработчики хотели сохранить протокол без сохранения состояния, например, с блокировкой, реализованной вне основного протокола. NFSv2 позволял читать только первые 2 ГБ файла.

NFSv3

Версия 3 (RFC 1813, июнь 1995 г.) добавлена:

  • поддержка 64-битных размеров файлов и смещений для обработки файлов размером более 2 гигабайт (ГБ)
  • поддержка асинхронной записи на сервер, чтобы улучшить производительность записи
  • дополнительные атрибуты файла во многих ответах, чтобы избежать необходимости их повторного извлечения
  • операция READDIRPLUS, чтобы получить дескрипторы файлов и атрибуты вместе с именами файлов при сканировании каталога
  • Ассорти из других улучшений.

На момент появления версии 3 поддержка поставщика TCP как протокола транспортного уровня начала увеличиваться. Хотя несколько поставщиков уже добавили поддержку NFS версии 2 с TCP в качестве транспорта, системы Sun Micro добавили поддержку TCP в качестве транспорта для NFS, в то же время добавила поддержку версии 3. Использование TCP в качестве транспорта, созданного с использованием NFS поверх WAN более выполнимо.

NFSv4

Версия 4 (RFC 3010, декабрь 2000 г.; пересмотренная в RFC 3530, апрель 2003 г.), на которую влияют AFS и CIFS, включает в себя улучшения производительности, требует строгой защиты и вводит протокол с отслеживанием состояния. Версия 4 стала первой версией, разработанной Инженерной группой по Интернету (IETF) после того, как системы Sun Micro передали разработку протоколов NFS.

Незначительная версия NFS версии 4 (NFSv4.1) была одобрена IETF и получила RFC номер 5661 с января 2010 года. Спецификация NFSv4.1 направлена ​​на:

  • Обеспечить поддержку протокола, чтобы использовать преимущества развертывания кластерных серверов, включая возможность предоставления масштабируемого параллельного доступа к файлам, распределенным между несколькими серверами (расширение pNFS).
  • предоставлять сеансы и Exacely One Semantic (EOS)