> For the complete documentation index, see [llms.txt](https://antons-organization-1.gitbook.io/administrirovanie-linux/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://antons-organization-1.gitbook.io/administrirovanie-linux/servisy-linux/setevaya-failovaya-sistema-nfs.md).

# Сетевая файловая система NFS

## Что такое NFS

**Сетевая файловая система (NFS)** была разработана, чтобы позволить машинам монтировать раздел диска на удаленной машине, как если бы это был локальный диск. Это позволяет быстро и без проблем обмениваться файлами по сети.

Это также дает возможность нежелательным людям получить доступ к вашему жесткому диску по сети (и, таким образом, возможно, прочитать вашу электронную почту и удалить все ваши файлы, а также взломать вашу систему), если вы настроили его неправильно. Поэтому внимательно прочитайте [Раздел 6, «Безопасность и NFS»](https://nfs.sourceforge.net/nfs-howto/ar01s06.html) данного документа, если вы собираетесь реализовать настройку NFS.

Существуют и другие системы, предоставляющие функции, аналогичные NFS.&#x20;

Samba [(http://www.samba.org)](http://www.samba.org/) предоставляет файловые службы клиентам Windows.&#x20;

Файловая система Andrew, первоначально разработанная IBM [(http://www.openafs.org)](http://www.openafs.org/) и теперь имеющая открытый исходный код, предоставляет механизм обмена файлами с некоторыми дополнительными функциями безопасности и производительности.&#x20;

Файловая система Coda [(http://www.coda.cs.cmu.edu/)](http://www.coda.cs.cmu.edu/) сочетает общий доступ к файлам с особым вниманием к отключенным клиентам. Многие функции файловых систем Andrew и Coda планируется включить в следующую версию NFS (версия 4) [(http://www.nfsv4.org)](http://www.nfsv4.org/) .&#x20;

Преимущество NFS сегодня заключается в том, что она является зрелой, стандартной, хорошо понятной и надежно поддерживается на различных платформах.

## Отличие NFS от других сетевых файловых систем

У NFS есть существенное отличие от других систем: при монтировании не требуется указывать пароль, а авторизация осуществляется по IP-адресу и идентификаторам пользователя и группы (UID/GID). Достоинством такого подхода является то, что монтирование по NFS может быть осуществлено без участия пользователя -- например, при загрузке системы. Недостатком является невысокий уровень security -- отсюда шутливая расшифровка аббревиатуры NFS как "No File Security".

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

Для правильной работы NFS с правами доступа к файлам требуется, чтобы UID и GID пользователей на обоих компьютерах совпадали.

## Требования к программному обеспечению: версия ядра и nfs-utils

Различия между NFS версии 2, NFS версии 3 и NFS версии 4 будут объяснены позже; на данный момент вы можете просто принять предложение о том, что вам понадобится NFS версии 3, если вы устанавливаете выделенный файловый сервер большого объема или производственный файловый сервер. NFS версии 2 или 4 должны подойти для повседневного использования.

NFS версии 2 существует уже довольно давно (по крайней мере, начиная с серии ядер 1.2), однако вам потребуется версия ядра не ниже 2.2.18, если вы хотите выполнить любое из следующих действий:

* Объединить Linux NFS с NFS других операционных систем
* Использовать блокировку файлов через NFS
* Использовать NFS версии 3

Для работы версии 3 также потребуется пакет nfs-utils не ниже версии 0.1.6 и монтирование версии 2.10m или новее. Однако, поскольку nfs-utils и mount полностью обратно совместимы, а более новые версии имеют множество исправлений безопасности и ошибок, нет веских причин не устанавливать новейшие пакеты nfs-utils и mount, если вы начинаете настройку NFS.

Все ядра версии 2.4 и выше обладают полной функциональностью NFS версии 3. Все ядра 2.6 и выше имеют разные уровни функциональности NFS версии 4. Это будет обсуждаться более подробно позже.

Во всех случаях, если вы собираете собственное ядро, вам нужно будет выбрать NFS и поддержку версий NFS, которые вы хотите развернуть. В настоящее время почти каждый стандартный дистрибутив Linux содержит ядро, поддерживающее NFS версии 3.

Для обработки файлов размером более 2 ГБ потребуется ядро ​​версии 2.4x или выше и glibc версии 2.2.x или выше.

Все ядра после 2.2.18 поддерживают NFS через TCP на стороне клиента. NFS на стороне сервера через TCP существует только в виде ошибок в качестве экспериментального варианта в серии после 2.2.18; патчи для ядер 2.4 и 2.5 были введены начиная с 2.4.17 и 2.5.6. Использование TCP в NFS в настоящее время является основным и получает широкое распространение.

Поскольку многие из вышеперечисленных функций были представлены в ядре версии 2.2.18, этот документ был написан с учетом совместимости с ядрами выше этой версии (включая 2.6.x). Если у вас старое ядро, этот документ может неправильно описать вашу систему NFS.

На момент написания этого документа поддержка NFS версии 4 находилась в стадии активной разработки в ядре 2.6.x. Его реализация все еще очень подвижна и меняется, поэтому его не рекомендуется использовать в производственной среде. Конфигурация NFS версии 4 и связанные с ней интегрированные технологии обсуждаются далее в этом документе.
