Skip to content

Задание №3: Сетевая файловая система NFS на HQ-SRV и HQ-CLI ​

В данном задании на сервере главного офиса (HQ-SRV) развёртывается сервер сетевой файловой системы NFS (Network File System). В качестве общего ресурса используется каталог на созданном ранее дисковом массиве: /raid/nfs.

Доступ на чтение и запись (rw) предоставляется исключительно для сети клиентских машин главного офиса (HQ-CLI). На самой рабочей станции HQ-CLI настраивается автоматическое монтирование сетевого ресурса в директорию /mnt/nfs при загрузке системы через /etc/fstab.

Узлы выполнения

  1. HQ-SRV — NFS-сервер (nfs-server), создание экспортируемого каталога /raid/nfs и настройка правил доступа в /etc/exports.
  2. 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 ​

bash
# Обновляем кэш и устанавливаем пакеты NFS-сервера и вспомогательных утилит:
apt-get update && apt-get install nfs-server nfs-utils -y

Шаг 2. Создание каталога общего доступа и выставление прав ​

Каталог общего доступа создаётся внутри примонтированного массива /raid:

bash
# Создаём целевую директорию nfs
mkdir /raid/nfs

# Выставляем полные права доступа для всех пользователей
chmod 777 /raid/nfs

Шаг 3. Настройка файла экспорта /etc/exports ​

Ограничиваем доступ к сетевому каталогу исключительно сетью клиентов (192.168.2.0/27):

bash
# Создаём резервную копию конфигурационного файла
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 ​

bash
# Включаем автозапуск и активируем службу NFS-сервера
systemctl enable --now nfs-server

# Проверяем статус работы демона
systemctl status nfs-server

Проверить список локально экспортируемых сервером каталогов можно командой:

bash
exportfs -v

Вывод должен содержать:

text
/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. Создание локальной точки монтирования ​

bash
# Создаём каталог монтирования
mkdir /mnt/nfs

# Устанавливаем полные права доступа на точку монтирования
chmod -R 777 /mnt/nfs

Шаг 2. Проверка доступности экспорта с сервера ​

С помощью утилиты showmount опрашиваем NFS-сервер hq-srv (или 192.168.1.10):

bash
showmount -e hq-srv

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

text
Export list for hq-srv:
/raid/nfs 192.168.2.0/27

(Если список вывелся — сервер доступен по сети и правила экспорта применились корректно).


Шаг 3. Настройка автомонтирования в /etc/fstab ​

Чтобы сетевая папка автоматически монтировалась при каждом включении машины, вносим запись в /etc/fstab:

bash
# Создаём резервную копию системного файла 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. Применение монтирования и проверка тома ​

Проверяем монтирование без перезагрузки:

bash
# Применяем монтирование всех файловых систем
mount -av

В выводе команды должна появиться строка:

text
/mnt/nfs                 : successfully mounted

Проверяем тип файловой системы и размер:

bash
df -T /mnt/nfs

Пример вывода:

text
Filesystem              Type  1K-blocks  Used Available Use% Mounted on
192.168.1.10:/raid/nfs  nfs     2030488    48   1909856   1% /mnt/nfs

4. Верификация сквозной записи (Тестирование) ​

Проверяем работу прав доступа на запись и чтение:

1. Создание тестового файла на клиенте (HQ-CLI): ​

bash
touch /mnt/nfs/test_file
ls -l /mnt/nfs/test_file

Вывод:

text
-rw-r--r-- 1 root root 0 Sep 28 22:38 /mnt/nfs/test_file

2. Проверка наличия файла на сервере (HQ-SRV): ​

Переходим на консоль HQ-SRV и проверяем каталог /raid/nfs:

bash
ls -l /raid/nfs

Вывод:

text
-rw-r--r-- 1 root root 0 Sep 28 22:38 test_file

Файл мгновенно отображается на сервере, что подтверждает корректность настройки протокола NFS и прав на запись!

Итог выполнения Задания №3

Сетевая файловая система NFS успешно развёрнута на базе массива RAID 0 сервера HQ-SRV, ограничен доступ по подсети клиентов, и настроено надёжное автомонтирование с опцией _netdev на рабочей станции HQ-CLI.

Работает на VitePress • Быстрый и удобный движок для документации