Сетевая файловая система (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, так как это сетевой диск).
- Первый