<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Network_File_System</id>
	<title>Network File System - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Network_File_System"/>
	<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=Network_File_System&amp;action=history"/>
	<updated>2026-07-16T22:19:25Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://camokathomelab.servebeer.com/mediawiki/index.php?title=Network_File_System&amp;diff=9211&amp;oldid=prev</id>
		<title>imported&gt;SergersV в 15:27, 6 января 2026</title>
		<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=Network_File_System&amp;diff=9211&amp;oldid=prev"/>
		<updated>2026-01-06T15:27:09Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;NFS&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;Network File System&amp;#039;&amp;#039;) — [[сетевой протокол|протокол сетевого доступа]] к [[файловая система|файловым системам]], первоначально разработан [[Sun Microsystems]] в [[1984 год]]у. За основу взят протокол вызова удалённых процедур ([[ONC RPC]], {{lang-en|Open Network Computing Remote Procedure Call}}&amp;lt;ref&amp;gt;RFC 1057; RFC 1831&amp;lt;/ref&amp;gt;). Позволяет монтировать (подключать) удалённые файловые системы через сеть.&lt;br /&gt;
&lt;br /&gt;
NFS абстрагирован от типов файловых систем как [[сервер (приложение)|сервера]], так и клиента. Существует множество реализаций серверов и клиентов NFS для различных [[операционная система|операционных систем]] и аппаратных архитектур. Наиболее зрелая версия NFS — v.4&amp;lt;ref name=&amp;quot;автоссылка1&amp;quot;&amp;gt;RFC 3010; RFC 3530&amp;lt;/ref&amp;gt;, поддерживающая различные средства [[аутентификация|аутентификации]] (в частности, [[Kerberos]] и [[LIPKEY]] с использованием протокола [[RPCSEC GSS]]) и [[ACL|списки контроля доступа]] (как [[POSIX]], так и [[Windows]]-типов).&lt;br /&gt;
&lt;br /&gt;
NFS предоставляет клиентам прозрачный доступ к файлам и файловой системе сервера. В отличие от [[FTP]], протокол NFS осуществляет доступ только к тем частям файла, к которым обратился процесс, и основное достоинство его в том, что он делает этот доступ прозрачным. Это означает, что любое приложение клиента, которое может работать с локальным файлом, с таким же успехом может работать и с NFS-файлом, без каких-либо модификаций самой программы.&lt;br /&gt;
&lt;br /&gt;
NFS-клиенты получают доступ к файлам на NFS-сервере путём отправки [[Remote Procedure Call|RPC]]-запросов на сервер. Это может быть реализовано с использованием обычных пользовательских процессов, а именно, NFS-клиент может быть пользовательским процессом, который осуществляет конкретные RPC-вызовы на сервер, который также может быть пользовательским процессом.&lt;br /&gt;
&lt;br /&gt;
Важной частью последней версии стандарта NFS (v4.1) стала спецификация pNFS, нацеленная на обеспечение распараллеленной реализации общего доступа к файлам, увеличивающая скорость передачи данных пропорционально размерам и степени параллелизма системы.&lt;br /&gt;
&lt;br /&gt;
== Цели разработки ==&lt;br /&gt;
Изначальными требованиями при разработке NFS были:&lt;br /&gt;
* потенциальная поддержка различных операционных систем (не только [[UNIX]]), чтобы серверы и клиенты NFS возможно было бы реализовать в разных операционных системах;&lt;br /&gt;
* протокол не должен зависеть от каких-либо определённых аппаратных средств;&lt;br /&gt;
* должны быть реализованы простые механизмы восстановления в случае отказов сервера или клиента;&lt;br /&gt;
* приложения должны иметь прозрачный доступ к удаленным файлам без использования специальных путевых имён или библиотек и без перекомпиляции;&lt;br /&gt;
* для UNIX-клиентов должна поддерживаться семантика UNIX;&lt;br /&gt;
* производительность NFS должна быть сравнима с производительностью локальных дисков;&lt;br /&gt;
* реализация не должна быть зависимой от транспортных средств.&lt;br /&gt;
&lt;br /&gt;
== Компоненты NFS ==&lt;br /&gt;
Реализация NFS состоит из нескольких компонентов. Некоторые из них локализованы либо на сервере, либо на клиенте, а некоторые используются и на обеих сторонах соединения. Некоторые компоненты не требуются для обеспечения основных функциональных возможностей, но составляют часть расширенного интерфейса NFS.&lt;br /&gt;
&lt;br /&gt;
Протокол NFS определяет набор запросов (операций), которые могут быть направлены клиентом к серверу, а также набор аргументов и возвращаемые значения для каждого из этих запросов. Версия 1 этого протокола существовала только в недрах Sun Microsystems и никогда не была выпущена. Все реализации NFS (в том числе NFSv3) поддерживают версию 2 NFS (NFSv2), которая впервые была выпущена в 1985 году в [[SunOS]] 2.0. Версия 3 протокола была опубликована в 1993 году и реализована некоторыми фирмами-поставщиками.&lt;br /&gt;
&lt;br /&gt;
Протокол удаленного вызова процедур ([[Remote Procedure Call|RPC]]) определяет формат всех взаимодействий между клиентом и сервером. Каждый запрос NFS посылается как пакет RPC.&lt;br /&gt;
&lt;br /&gt;
Внешнее представление данных (XDR — [[External Data Representation]]) обеспечивает машинно-независимый метод кодирования данных для пересылки через сеть. Все запросы RPC используют кодирование XDR для передачи данных. XDR и RPC используются для реализации многих других сервисов, помимо NFS.&lt;br /&gt;
&lt;br /&gt;
Программный код сервера NFS отвечает за обработку всех запросов клиента и обеспечивает доступ к экспортируемым файловым системам. Программный код клиента NFS реализует все обращения клиентской системы к удаленным файлам путём посылки серверу одного или нескольких запросов RPC.&lt;br /&gt;
&lt;br /&gt;
Протокол монтирования определяет семантику [[Монтирование файловой системы|монтирования]] и размонтирования файловых систем NFS. NFS использует несколько фоновых процессов-[[Демон (программа)|демонов]]. На сервере набор демонов nfsd ожидает запросы от клиентов NFS и отвечает на них. Демон mountd обрабатывает запросы монтирования. На клиенте набор демонов biod обрабатывает асинхронный ввод-вывод блоков файлов NFS.&lt;br /&gt;
&lt;br /&gt;
Менеджер блокировок сети (NLM — Network Lock Manager) и монитор состояния сети (NSM — Network Status Monitor) вместе обеспечивают средства для блокировки файлов в сети. Эти средства, хотя формально не связаны с NFS, можно найти в большинстве реализаций NFS. Они обеспечивают сервисы, не возможные в базовом протоколе. NLM и NSM реализуют функционирование сервера с помощью демонов lockd и statd, соответственно.&lt;br /&gt;
&lt;br /&gt;
== Версии ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Первая версия&amp;#039;&amp;#039;&amp;#039;&amp;lt;ref name=autogenerated1&amp;gt;RFC 1094&amp;lt;/ref&amp;gt; применялась только для внутреннего использования в Sun в экспериментальных целях.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Версия 2&amp;#039;&amp;#039;&amp;#039;&amp;lt;ref name=autogenerated1 /&amp;gt;(NFSv2) выпущена в марте 1989 года, первоначально полностью работала по протоколу [[UDP]]. Разработчики решили не хранить данных о внутреннем состоянии внутри протокола, как пример, блокировка, реализованная вне базового протокола. Люди, вовлечённые в создание NFS версии 2 — Расти Сэндберг (&amp;#039;&amp;#039;Rusty Sandberg&amp;#039;&amp;#039;,) Боб Лайон (&amp;#039;&amp;#039;Bob Lyon&amp;#039;&amp;#039;), [[Джой, Билл|Билл Джой]] и Стив Клейман (&amp;#039;&amp;#039;Steve Kleiman&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NFSv3&amp;#039;&amp;#039;&amp;#039;&amp;lt;ref&amp;gt;RFC 1813&amp;lt;/ref&amp;gt; вышла в июне 1995 года, в ней добавлена поддержка дескрипторов файлов переменного размера до 64 байт (в версии 2 — массив фиксированного размера 32 байта), снято ограничение на 8192 байта в RPC-вызовах чтения и записи (тем самым, размер передаваемого блока в вызовах ограничен только пределом для UDP-датаграммы — 65535 байт), реализована поддержка файлов больших размеров, поддержаны асинхронные вызовы операций записи, к процедурам READ и WRITE добавлены вызовы ACCESS (проверка прав доступа к файлу), MKNOD (создание специального файла Unix), READDIRPLUS (возвращает имена файлов в каталоге вместе с их атрибутами), FSINFO (возвращает статистическую информацию о файловой системе), FSSTAT (возвращает динамическую информацию о файловой системе), PATHCONF (возвращает POSIX.1-информацию о файле) и COMMIT (передает ранее сделанные асинхронные записи на постоянное хранение).&lt;br /&gt;
&lt;br /&gt;
На момент введения версии 3 отмечен рост популярности в среде разработчиков протокола [[TCP]]. Некоторые независимые разработчики самостоятельно добавили поддержку протокола TCP для NFS версии 2 в качестве транспортного, Sun Microsystems добавили поддержку TCP в NFS в одном из дополнений к версии 3. С поддержкой TCP появилась возможность использования NFS в [[Глобальная компьютерная сеть|глобальных сетях]].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NFSv4&amp;#039;&amp;#039;&amp;#039;&amp;lt;ref name=&amp;quot;автоссылка1&amp;quot; /&amp;gt; выпущена в декабре 2000 года под влиянием [[AFS]] и [[CIFS]], в неё включены улучшения&lt;br /&gt;
производительности и безопасности. Версия 4 стала первой версией, разработанной совместно с Internet Engineering Task Force ([[IETF]]). NFS версии v4.1 была одобрена [[IESG]] в январе 2010 года&amp;lt;ref&amp;gt;RFC 5661&amp;lt;/ref&amp;gt; (новая спецификация объёмом 612 страниц стала известна как самый длинный документ, одобренный IETF). Важным нововведением версии 4.1 является спецификация pNFS — Parallel NFS, механизма параллельного доступа NFS-клиента к данным множества распределенных NFS-серверов. Наличие такого механизма в стандарте сетевой файловой системы поможет строить распределённые [[Облачные вычисления|облачные]] хранилища и информационные системы.&lt;br /&gt;
&lt;br /&gt;
NFS версии 4.2 [[RFC 7862]] была опубликована в ноябре 2016 и включает новые особенности:  клонирование и копирование на стороне сервера, рекомендации по вводу-выводу приложения, [[Разрежённый файл|разреженные файлы]], резервирование места, блок данных приложения (ADB), помеченный NFS с атрибутом sec_label, который адаптируется к любой системе безопасности MAC и две новые операции для pNFS (LAYOUTERROR и LAYOUTSTATS).&lt;br /&gt;
&lt;br /&gt;
== Другие модули ==&lt;br /&gt;
WebNFS — это расширение для NFS версий 2 и 3, которое позволяют легче интегрироваться в [[веб-браузер]]ы и дает возможность работы через [[Межсетевой экран|брандмауэр]]. Различные сторонние протоколы стали ассоциироваться с NFS, в том числе:&lt;br /&gt;
&lt;br /&gt;
Менеджер блокировок сети (NLM — Network Lock Manager) и монитор состояния сети (NSM — Network Status Monitor) вместе обеспечивают средства для блокировки файлов в сети. Эти средства, хотя формально не связаны с NFS, можно найти в большинстве реализаций NFS. Они обеспечивают сервисы, невозможные в базовом протоколе. NLM и NSM реализуют функционирование сервера с помощью демонов lockd и statd, соответственно.&lt;br /&gt;
&lt;br /&gt;
Протокол удалённой информации о квотах (RQUOTAD) (NFS позволяет пользователям просматривать дисковую квоту на удалённом NFS сервере).&lt;br /&gt;
&lt;br /&gt;
== Платформы ==&lt;br /&gt;
Хотя NFS чаще всего используют в [[Unix-like|Unix-подобных]] системах, данный протокол можно также использовать и в других операционных системах, таких, как [[Mac OS Classic]], [[OpenVMS]], [[Microsoft Windows]], [[Novell NetWare]], и [[IBM i]].&lt;br /&gt;
&lt;br /&gt;
== Типичные настройки NFS-клиента и NFS-сервера ==&lt;br /&gt;
* Для клиента одинаково представлены локальные и NFS-файлы, ядро определяет, когда файл открыт.&lt;br /&gt;
* NFS-клиент отправляет RPC-запросы NFS-серверу через стек [[TCP/IP]]. NFS обычно использует UDP, однако более новые реализации могут использовать TCP.&lt;br /&gt;
* NFS-сервер получает запросы от клиента в виде UDP-датаграмм на порт 2049. Несмотря на то, что NFS может работать с преобразователем портов, что позволяет серверу использовать динамически назначаемые порты, UDP-порт 2049 жёстко закреплён за NFS в большинстве реализаций.&lt;br /&gt;
* Когда NFS-сервер получает запрос от клиента, он передается локальной подпрограмме доступа к файлу, которая обеспечивает доступ к локальному диску на сервере.&lt;br /&gt;
* Серверу может потребоваться время для того, чтобы обработать запросы клиента. Даже доступ к локальной файловой системе может занять некоторое время. В течение этого времени сервер не хочет блокировать запросы от других клиентов, которые также должны быть обслужены. Чтобы справиться с подобной ситуацией, большинство NFS-серверов запускается несколько раз, то есть внутри ядра существует несколько NFS-серверов. Конкретные методы решения зависят от операционной системы. В большинстве ядер Unix-систем не используется несколько NFS-серверов, вместо этого запускается несколько пользовательских процессов (которые обычно называются nfsd), которые осуществляют один системный вызов и остаются внутри ядра в качестве процесса ядра.&lt;br /&gt;
* Точно так же, NFS-клиенту требуется время, чтобы обработать запрос от пользовательского процесса на узле клиента. RPC выдается на узел сервера, после чего ожидается отклик. Для того, чтобы пользовательские процессы на узле клиента могли в любой момент воспользоваться NFS, существует несколько NFS-клиентов, запущенных внутри ядра клиента. Конкретная реализация также зависит от операционной системы. Unix-система обычно использует технику, напоминающую NFS-сервер: пользовательский процесс, называемый biod, осуществляет один единственный системный вызов и остаётся внутри ядра как процесс ядра.&lt;br /&gt;
* Большинство Unix-узлов может функционировать и как NFS-клиент, и как NFS-сервер. Большинство мейнфреймов IBM предоставляет только функции NFS-сервера.&lt;br /&gt;
&lt;br /&gt;
== Альтернативы NFS ==&lt;br /&gt;
В число альтернативных протоколов удаленного доступа к файлам входят протокол [[Server Message Block|SMB]] ({{lang-en2|Server Message Block}}, также известный как {{lang-en2|Samba}} и {{lang-en2|CIFS}}), [[Apple Filing Protocol]] (AFP), [[NetWare Core Protocol]] (NCP). Под операционной системой Microsoft Windows SMB и NetWare Core Protocol (NCP) используется чаще, чем NFS. В системах Macintosh AFP встречается чаще, чем NFS.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Network Information Service]]&lt;br /&gt;
* [[Samba]]&lt;br /&gt;
* [[Server Message Block]]&lt;br /&gt;
* [[SSHFS]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
{{Примечания}}&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [https://web.archive.org/web/20080216083308/http://www.ietf.org/html.charters/nfsv4-charter.html Network File System Version 4 // IETF]&lt;br /&gt;
* [http://wiki.linux-nfs.org/wiki/index.php/Main_Page wiki.linux-nfs.org]&lt;br /&gt;
*[https://www.fips.ru/registers-doc-view/fips_servlet?DB=EVM&amp;amp;DocNumber=2020610480&amp;amp;TypeFile=html Российская реализация протоколов сетевого доступа к файловым системам NFS версии 2 и NFS версии 3 от компании ООО &amp;quot;Открытые технологии виртуализации&amp;quot;] &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Стандарты:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* RFC 1094 NFS: Network File System Protocol Specification (March 1989)&lt;br /&gt;
* RFC 1813 NFS Version 3 Protocol Specification (June 1995)&lt;br /&gt;
* RFC 2224 NFS URL Scheme&lt;br /&gt;
* RFC 2339 An Agreement Between the Internet Society, the IETF, and [[Sun Microsystems|Sun Microsystems, Inc.]] in the matter of NFS V.4 Protocols&lt;br /&gt;
* RFC 2623 NFS Version 2 and Version 3 Security Issues and the NFS Protocol’s Use of RPCSEC_GSS and Kerberos V5&lt;br /&gt;
* RFC 2624 NFS Version 4 Design Considerations&lt;br /&gt;
* RFC 3010 NFS version 4 Protocol&lt;br /&gt;
* RFC 3530 Network File System (NFS) version 4 Protocol&lt;br /&gt;
* RFC 5661 Network File System (NFS) Version 4 Minor Version 1 Protocol&lt;br /&gt;
&lt;br /&gt;
{{URI scheme}}&lt;br /&gt;
{{Стек ONC}}&lt;br /&gt;
{{Файловые системы}}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Сетевые файловые системы]]&lt;br /&gt;
[[Категория:Файловые системы Sun]]&lt;br /&gt;
[[Категория:Интернет-протоколы]]&lt;/div&gt;</summary>
		<author><name>imported&gt;SergersV</name></author>
	</entry>
</feed>