Как установить сервер NFS Linux.

Введение.

Сервер NFS1 является необходимым приложением при построении цифрового офиса на базе ОС Linux. С его помощью можно организовать совместное использование файловых ресурсов в организации. Кроме Linux, протокол NFS может использоваться в MS Windows2. Используя NFS пользователи объединяют рабочие станции Linux и Windows для совместного доступа к папкам и файлам организации. Ещё одно использование NFS — построение бездискового доступа, в качестве тонкого клиента3.

Протокол NFS не имеет шифрования, используйте Kerberos или VPN для защиты важной информации внутри NFS.

Подготовка.

  • Стенд:
    • ALT Linux, имя: lin-nfs, IP 10.0.2.36;
    • ALT Simply Linux, имя: lin-sl, IP=10.0.2.33;
    • пользователь — user

Прежде чем перейти к развёртыванию NFS сервера, как приложения, нам понадобится базовый сервер Linux, минимальной конфигурации.

Для работы сервера NFS выделим отдельное устройство, это повысит безопасность, надёжность и гибкость при авариях и сбоях.

Установка сервера NFS.

Необходимые пакеты для работы сервера NFS.

# apt-get update
# apt-get install nfs-server4

Запуск и управление сервером NFS.

Команды управления сервером.

# systemctl |start|stop|restart|status|enable|is-enabled nfs

Проверка работы сервера NFS.

Смотрим порт отвечающий за NFS.

# rpcinfo -p | grep nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl

Файл exports.

Файл конфигурации, exports5 указывает пути монтирования каталогов NFS. Синтаксист содержимого exports6 показано ниже.

/srv/public -ro,insecure,no_subtree_check,fsid=1 *
#/srv/share -rw,insecure,fsid=0,sec=krb5 *

Здесь имеются две строки, не будим их трогать, выполним наши действия при тех значениях, которые установлены по умолчанию, как из коробки.

Опции файла exports.

  • Параметры файла exports из коробки:
    • ro — чтение
    • rwчтение и запись в этой папке
    • insecureиспользовать любые порты
    • no_subtree_checkоткл. проверку экспортированной папки
    • fsid=1идентификатор файловой системы 1
    • fsid=0идентификатор файловой системы 0
    • sec=krb5механизм проверки авторизации с kerberos

Avahi-daemon

Демон avahi служит для обнаружения в сети работу прокола NFS. Архив avahi включает в себя пакет zeroconf7.

Установка и управление Avahi-daemon.

# apt-get update
# apt-get instal avahi
# systemctl start|enable|stop|restart|status avahi-daemon

Конфигурация NFS.

Создать широкополосную трансляцию протокола NFS в сети, для обнаружения общих папок, можно через файл nfs-service. Для этого необходимо редактировать информацию об общем ресурсе(папке), которая появится при сканировании сетевого ландшафта организации.

Путь к файлу nfs-service.

Настроить трансляцию nfs.
Файл трансляции nfs.

Пример синтаксиста nfs-service файла.

<service-group>
  <name replace-wildcards="no">public</name>
  <service>
    <type>_nfs._tcp</type>
    <port>2049</port>
    <txt-record>path=/srv/public</txt-record>
    <txt-record>sec=sys</txt-record>
    <txt-record>options=hard,intr,nolock,ro</txt-record>
  </service>
</service-group>

В приведённом примере объявлена общая папка public и указан путь для подключения её при удалённом доступе.

Для инициализации скрипта необходимо перегрузить службу.

# systemctl restart avahi-daemon

Теперь проверяем «видимость» NFS сервера командой.

$ avahi-browse -tkrp _nfs._tcp

В ответ появляется строка(и) поиска папок NFS вашей сети.

;wlp2s0;IPv4;mirror;_nfs._tcp;local;in-nfs,.local;10.0.2.36;2049;"options=hard,intr,nolock,ro" "sec=sys" "path=/srv/public/"

Клиент NFS.

Клиентская часть служит для обнаружения NFS папок. Присоединить папку к локальному устройству можно используя консоль или графический менеджер рабочего стола Linux.

Консольный клиент.

Проверить работу можно находясь на сервере, где работает демон NFS и установлен клиент. Для демонстрации, создадим папку /home/nfs и поместим в него файл test. С помощью утилиты mount8 смонтируем её.

# mkdir /home/nfs    
# touch /home/nfs/test  
# mount lin-nfs:/srv/public /home/nfs  
# df -h   
# lin-nfs:/srv/public ... /home/nfs

Выполним перегрузку службы.

# systemctl restart avahi-daemon

Запустив оболочку MC9 убедимся в наличие тестового файла.

Проверка работы клиента NFS.
Проверка работы клиента NFS.

Всё работает, но у нас ещё имеется закомментированная строка в файле exports. Прежде чем использовать её необходимо настроить на домене, обслуживающий NFS сервер, авторизацию Kerberos10. Пока обойдёмся, без Kerberos, ограничимся классической11 схемой безопасности в UNIX системах, для разделения прав доступа к NFS ресурсам. Оставим всё, как есть. В дальнейшем создадим группы пользователей, разграничив их права на каждую папку NFS.

Графический клиент.

Графики позволяет быстро и наглядно монтировать папки NFS с помощью менеджеров12 рабочего стола Linux. Для этого на рабочей станции необходимо проверить / установить клиент NFS. По умолчанию, как правило, установлен проверяем с помощью Synaptic.

Менеджера пакетов Synaptic и nfs-clients.
Менеджера пакетов Synaptic13 и nfs-clients.

Дерево папок графического менеджера.

На рабочей станции должен быть запущен avahi.

Авто монтирование NFS папки.

Каждый раз, когда включаем ПК нам приходится в ручную монтировать папку NFS, это не удобно и утомительно. Автоматизировать подключение папки при включении компьютера можно несколькими, перечисленными ниже способами:

1. Создать скрипт, имя map14, поместить в папку /usr/local/bin, назначить cron15 задачу выполняемую при включении устройства.

#!/bin/bash
mount lin-nfs:/sev/public /home/user/nfs

Синтаксис сценария.

# crontab -l
#minute (0-59),
#|      hour (0-23),
#|      |       day of the month (1-31),
#|      |       |       month of the year (1-12),
#|      |       |       |       day... (0-6 with 0=Sunday).
#|      |       |       |       |       commands

@reboot                                   map

2. Создать запись в таблице разделов /etc/fstab16 о монтируемой системе.

Пример монтирования NFS папки через fstab.

10.0.2.36:/srv/public /home/user/nfs   nfs    auto  0  0

3. Вывести на рабочий стол кнопку монтирования общего NFS ресурса. Этот метод может быть полезна если сервер NFS временно не доступен. Для работы требуется скрипт map, смотри №1. Графическими средствами ALT Simply Linux17 создаём ссылку в приложение на сценарий map. Для запуска утилиты mount и команды gksu18.требуются права администратора.

4. Использовать, привычный для Windows, графический оконный менеджер при подключении к NFS, создав в дереве менеджера «Точку входа». Для этого нажимаем F6, пишем путь к общей папке nfs://lin-nfs/srv

5. Или с помощью графического менеджера создать поиск общих ресурсов в сети, как показано ниже.

Монтирование папки NFS используя avahi.
Монтирование папки NFS используя avahi.

6.autofs — программа контроля времени использования общего каталога. Задача autofs контролировать время простоя общего ресурса, размонтируя его, ожидая новых обращений. Экономит полосу пропускания обеспечивая высокую производительность по сравнению с fstab. Протокол autofs контролирует работу службы automount при старте системы.

Установки, управление и контроль autofs приводится ниже.

# apt-get update 
# apt-get install autofs
# systemctl start autofs
# systemctl enable autofs
# systemctl status autofs

После установки autofs в каталоге /etc создаются файлы:

  • auto.avahi — обозреватель сетевых служб
  • auto.master — файл конфигурации для монтирования
  • autofs.smb — монтирование smb каталогов
  • auto.tab — таблица добавляемых устройств
  • auto.conf — служебный файл, не трогаем

Когда autofs стартует, он «читает» запись в auto.master, находит точки монтирования и запускает демон automount с параметрами.

Откроем файл auto.master и добавим строку.

# vim /etc/auto.master
   ...
  /mnt/nfs        /etc/auto.nfs -t 60

t- время ожидания бездействия в сек.

Создаём в каталоге /etc файл auto.nfs

# touch /etc/auto.nfs

Записываем в файл auto.nfs информацию и перегружаем autofs.

# vim /etc/auto.nfs
   /mnt/nfs -fstype=nfs 10.0.2.36:/srv/public
# systemctl restart autofs

При старте в /mnt инициируются каталоги указанные в auto.master.

# ls -l /mnt
...                                                                                                                                                                     
drwxr-xr-x 2 ... auto
drwxr-xr-x 2 ... net
drwxr-xr-x 2 ... nfs

Таким образом служба autofs берёт под «контроль» время работы общего ресурса NFS сервера.

Инструментарий для NFS.

В качестве инструментария для работы с протоколом NFS используются следующие распространённые утилиты:

  • showmount — вывод информации о состоянии сервера NFS.
# showmount -a
All mount points on lin-nfs:
10.0.2.33:/srv/public
127.0.0.1:/srv/public
127.0.0.1:/srv/share
# showmount -d
Directories on lin-nfs:
/srv/public
/srv/share
# showmount -e
Export list for lin-nfs:
/srv/public *
  • nfsstat — вывод статистики работы NFS и RPC
  • основные ключи:
    • -v подробная информация
    • -r RPC статистика
    • -n NFS статистика
    • -l печатает статистику в формате списка
  • exportfs — выводит таблицу экспорта каталогов для клиентов
    • -v подробная информация
    • -r реэкспортировать все каталоги после редактирования
    • -u отменить экспорт каталога пример /srv/public
    • -a отправляет полученные записи экспорта в ядро
  • automount — утилита управления точками монтирования autofs
    • Основные ключи:
      • -v подробная информация о монтировании
      • d режим отладки
      • -f вывод журнала работы на экран вместо syslog
      • -F принудительное размонтирование
      • -h справочная информация

Заключение

В статье был рассмотрен вариант установка NFS сервера из коробки. В качестве базового сервера использовался ALT Linux в минимальной конфигурации. После установки, сервер NFS, готов к эксплуатации в качестве хранилища общих папок и документов с правами доступа на чтение. Если требуется доступ с правами записи к папке /srv/share, и возникли трудности с Kerberos. Тогда можно скорректировать файл exports, как показано ниже. После чего необходимо выполнить реэкспорт каталогов сервера NFS.

Используя rw, проверить права доступа пользователей и групп к общей папке NFS.

/srv/public -rw,insecure,no_subtree_check,fsid=1 *
#/srv/share -rw,insecure,fsid=0,sec=krb5 *
# exportfs -r

В заключение отметим, сервер NFS не предназначен для передачи больших объёмов информации. Основная задача — организация общего доступа к папкам и файлам предприятия в режиме реального времени. Для обмена большими трафиками информации служит FTP сервер.

Полезные ссылки.

Сноски.

  1. NFSNetwork File System, протокол сетевого доступа к файлам системы ↩︎
  2. необходимо установить NFS клиент ↩︎
  3. компактный и бесшумный компьютер без жесткого диска ↩︎
  4. пакет содержит: nfs-clients, nfs-server, nfs-utils ↩︎
  5. путь к файлу /etc/exports ↩︎
  6. файл хранится в каталоге /etc ↩︎
  7. обеспечивает выбор сетевого адреса для устройства; нахождение компьютеров по имени; обнаружение сервисов, например принтеров. ↩︎
  8. полностью команда mount для nfs выглядит: mount -t nfs. ↩︎
  9. файловый менеджер Midnight Commander. ↩︎
  10. сетевой протокол аутентификации для взаимной аутентификации клиента и сервера ↩︎
  11. имеется в виду модель разрешений прав доступа Linux ↩︎
  12. популярные GNOME, KDE, LXDE, MATE, Xfce, Dolphin… ↩︎
  13. Synaptic — графический менеджер пакетов. ↩︎
  14. стендовое имя ↩︎
  15. планировщик задач для Linux ↩︎
  16. fstab является системным файлом, любая неточность может привести к краху ПК ↩︎
  17. графический менеджер Xfce ↩︎
  18. утилита для запуска программ с правами su и sudo в графической среде Linux ↩︎
Copyright © 2011-2024
Все права защищены.
При перепечатке указать источник: kabtim.ru
Контакты