Задание №3: Сетевая файловая система NFS на HQ-SRV и HQ-CLI
В данном задании на сервере главного офиса (HQ-SRV) развёртывается сервер сетевой файловой системы NFS (Network File System). В качестве общего ресурса используется каталог на созданном ранее дисковом массиве: /raid/nfs.
Доступ на чтение и запись (rw) предоставляется исключительно для сети клиентских машин главного офиса (HQ-CLI). На самой рабочей станции HQ-CLI настраивается автоматическое монтирование сетевого ресурса в директорию /mnt/nfs при загрузке системы через /etc/fstab.
Узлы выполнения
- HQ-SRV — NFS-сервер (
nfs-server), создание экспортируемого каталога/raid/nfsи настройка правил доступа в/etc/exports. - HQ-CLI — NFS-клиент (
nfs-utils), создание точки/mnt/nfs, проверка экспорта черезshowmountи монтирование через/etc/fstab.
1. Теоретическая справка: сетевая файловая система NFS
NFS (Network File System) — протокол сетевого доступа к файловым системам по сети, позволяющий пользователям и программам прозрачно работать с файлами на удалённом сервере точно так же, как с локальными дисками.
Как работает NFS:
- Сервер объявляет список доступных каталогов в файле конфигурации
/etc/exports, определяя разрешённые IP-адреса/подсети клиентов и права доступа. - Демон
mountdи подсистема RPC обрабатывают запросы клиентов и выдают дескрипторы каталогов. - Клиент монтирует удалённый каталог в своё локальное дерево каталогов (VFS), используя стандартную команду
mountс типом файловой системыnfs.
Разбор параметров экспорта в /etc/exports:
rw(Read-Write) — разрешает клиентам как чтение, так и запись/удаление файлов на сетевом томе.no_subtree_check— отключает проверку поддеревьев каталогов. Это существенно повышает надёжность и скорость работы при переименовании и перемещении файлов.no_root_squash— запрещает подменять пользователяrootклиента на непривилегированного пользователяnobodyна сервере. Позволяет администратору на клиентской машине сохранять полные права суперпользователя на сетевом диске.
Разбор параметров монтирования в /etc/fstab:
rw— доступ на чтение и запись на клиенте.soft— режим мягкой обработки ошибок: если сетевое соединение с NFS-сервером прервётся, клиент выдаст ошибку ввода/вывода (I/O error), а не зависнет намертво в ожидании ответа (в отличие от опцииhard)._netdev— критически важная опция для сетевых файловых систем. Указывает системе инициализации монтировать данный ресурс только после того, как сетевые интерфейсы поднимутся и получат IP-адрес. Без этой опции машина может зависнуть на этапе загрузки!
2. Настройка NFS-сервера на HQ-SRV
Выполняем все действия под пользователем root на сервере HQ-SRV:
Шаг 1. Установка пакетов сервера NFS
# Обновляем кэш и устанавливаем пакеты NFS-сервера и вспомогательных утилит:
apt-get update && apt-get install nfs-server nfs-utils -yШаг 2. Создание каталога общего доступа и выставление прав
Каталог общего доступа создаётся внутри примонтированного массива /raid:
# Создаём целевую директорию nfs
mkdir /raid/nfs
# Выставляем полные права доступа для всех пользователей
chmod 777 /raid/nfsШаг 3. Настройка файла экспорта /etc/exports
Ограничиваем доступ к сетевому каталогу исключительно сетью клиентов (192.168.2.0/27):
# Создаём резервную копию конфигурационного файла
cp /etc/exports /etc/exports.back
# Добавляем запись экспорта каталога для сети HQ-CLI
echo "/raid/nfs 192.168.2.0/27(rw,no_subtree_check,no_root_squash)" >> /etc/exportsШаг 4. Запуск и активация службы nfs-server
# Включаем автозапуск и активируем службу NFS-сервера
systemctl enable --now nfs-server
# Проверяем статус работы демона
systemctl status nfs-serverПроверить список локально экспортируемых сервером каталогов можно командой:
exportfs -vВывод должен содержать:
/raid/nfs 192.168.2.0/27(rw,wdelay,no_root_squash,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)3. Настройка клиента на рабочей станции HQ-CLI
Выполняем действия в консольной оболочке под пользователем root на машине HQ-CLI:
Шаг 1. Создание локальной точки монтирования
# Создаём каталог монтирования
mkdir /mnt/nfs
# Устанавливаем полные права доступа на точку монтирования
chmod -R 777 /mnt/nfsШаг 2. Проверка доступности экспорта с сервера
С помощью утилиты showmount опрашиваем NFS-сервер hq-srv (или 192.168.1.10):
showmount -e hq-srvПример корректного ответа:
Export list for hq-srv:
/raid/nfs 192.168.2.0/27(Если список вывелся — сервер доступен по сети и правила экспорта применились корректно).
Шаг 3. Настройка автомонтирования в /etc/fstab
Чтобы сетевая папка автоматически монтировалась при каждом включении машины, вносим запись в /etc/fstab:
# Создаём резервную копию системного файла fstab
cp /etc/fstab /etc/fstab.back
# Добавляем строку монтирования сетевого ресурса NFS
echo "192.168.1.10:/raid/nfs /mnt/nfs nfs rw,soft,_netdev 0 0" >> /etc/fstabШаг 4. Применение монтирования и проверка тома
Проверяем монтирование без перезагрузки:
# Применяем монтирование всех файловых систем
mount -avВ выводе команды должна появиться строка:
/mnt/nfs : successfully mountedПроверяем тип файловой системы и размер:
df -T /mnt/nfsПример вывода:
Filesystem Type 1K-blocks Used Available Use% Mounted on
192.168.1.10:/raid/nfs nfs 2030488 48 1909856 1% /mnt/nfs4. Верификация сквозной записи (Тестирование)
Проверяем работу прав доступа на запись и чтение:
1. Создание тестового файла на клиенте (HQ-CLI):
touch /mnt/nfs/test_file
ls -l /mnt/nfs/test_fileВывод:
-rw-r--r-- 1 root root 0 Sep 28 22:38 /mnt/nfs/test_file2. Проверка наличия файла на сервере (HQ-SRV):
Переходим на консоль HQ-SRV и проверяем каталог /raid/nfs:
ls -l /raid/nfsВывод:
-rw-r--r-- 1 root root 0 Sep 28 22:38 test_fileФайл мгновенно отображается на сервере, что подтверждает корректность настройки протокола NFS и прав на запись!
Итог выполнения Задания №3
Сетевая файловая система NFS успешно развёрнута на базе массива RAID 0 сервера HQ-SRV, ограничен доступ по подсети клиентов, и настроено надёжное автомонтирование с опцией _netdev на рабочей станции HQ-CLI.
