Сетевая файловая система (NFS) — это протокол, который позволяет обмениваться файлами между компьютерами в сети. Это особенно полезно в средах, где несколько серверов или рабочих станций должны иметь доступ к одним и тем же данным. В этой статье мы рассмотрим, как настроить NFS на Debian и Ubuntu.

Шаг 1: Установка необходимых пакетов

Для начала необходимо установить пакеты, необходимые для работы NFS. На сервере и клиенте должны быть установлены следующие пакеты:

На сервере:

sudo apt update
sudo apt install nfs-kernel-server

На клиенте:

sudo apt update
sudo apt install nfs-common

Настройка сервера NFS

Создание директории для экспорта:

Создайте директорию, которую вы хотите сделать доступной по сети. Например:

sudo mkdir -p /mnt/nfs
sudo chown nobody:nogroup /mnt/nfs

Настройка экспорта директории:

Откройте файл /etc/exports для редактирования:

sudo nano /etc/exports

Добавьте строку, указывающую, какую директорию вы хотите экспортировать и с какими параметрами. Например:

/mnt/nfs/ 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)

Здесь:

  • /mnt/nfs/— экспортируемая директория.
  • 192.168.1.0/24 — диапазон IP-адресов, которым разрешен доступ.
  • rw — разрешение на чтение и запись.
  • sync — синхронная запись изменений.
  • no_subtree_check — отключает проверку поддеревьев, что может повысить производительность.
  • no_root_squash — любой файл, созданный root на клиенте, будет записан как root на сервере. Это полезно, если доверенные клиенты (например, серверы в закрытой сети) должны иметь полный контроль над экспортированным каталогом.

Применение изменений:

После внесения изменений в файл /etc/exports, выполните команду:

sudo exportfs -a

Это применит изменения и сделает директорию доступной для указанных клиентов.

Перезапуск службы NFS:

Перезапустите службу NFS, чтобы изменения вступили в силу:

sudo systemctl restart nfs-kernel-server

Настройка клиента NFS

Создание точки монтирования:

На клиенте создайте директорию, куда будет монтироваться удаленная файловая система:

sudo mkdir /mnt/nfs

Монтирование NFS:

Для монтирования NFS выполните команду:

sudo mount 192.168.1.100:/mnt/nfs /mnt/nfs

Здесь:

  • 192.168.1.100 — IP-адрес сервера NFS.
  • /mnt/nfs — экспортируемая директория на сервере.
  • /mnt/nfs — точка монтирования на клиенте.

Проверка монтирования:

Убедитесь, что NFS успешно смонтирован:

df -h

Вы должны увидеть смонтированную файловую систему в списке.

Автоматическое монтирование при загрузке

Чтобы NFS монтировался автоматически при загрузке системы, добавьте запись в файл /etc/fstab:

sudo nano /etc/fstab

Добавьте строку:

192.168.1.100:/mnt/nfs /mnt/nfs/      nfs auto,nofail,noatime,nolock,tcp,actimeo=1800,_netdev   0 0

Сохраните файл и выйдите из редактора.

Здесь:

  • auto
    • Разрешает автоматическое монтирование при загрузке системы.
    • Альтернативный вариант: noauto — требует ручного монтирования.
  • nofail
    • Если монтирование не удалось (например, сервер NFS недоступен), система продолжит загрузку без ошибки.
    • Полезно для серверов с переменным доступом.
  • noatime
    • Отключает обновление времени доступа (atime) при чтении файлов.
    • Улучшает производительность, снижая нагрузку на диск.
  • nolock
    • Отключает механизмы блокировки файлов (NFS file locking).
    • Полезно, если блокировки не используются или если NFS-сервер не поддерживает lockd.
  • tcp
    • Использует TCP вместо UDP для передачи данных.
    • TCP более надёжен, особенно в нестабильных сетях.
  • actimeo=1800
    • Кэширует атрибуты файлов в течение 1800 секунд (30 минут).
    • Может ускорить работу за счёт уменьшения числа запросов к серверу.
    • Важно: долгий кеш может привести к устаревшим данным.
  • _netdev
    • Указывает, что монтирование зависит от сети.
    • Гарантирует, что файловая система будет монтироваться после поднятия сети.
  • значения (0 0):
    • Первый 0 — отключает дампирование (резервное копирование dump).
    • Второй 0 — отключает проверку fsck (не требуется для NFS, так как это сетевой диск).