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

Введение.

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

Подготовка.

  • Стенд:
    • 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

Запуск и автозагрузка.

# systemctl start nfs
# systemctl enable nfs

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

Смотрим порт отвечающий за NFS службу.

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

Файл exports.

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

# vim /etc/exports
....
/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 install avahi-daemon
# systemctl start avahi-daemon
# systemctl enable avahi-daemon

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

# systemctl start|enable|stop|restart|status avahi-daemon

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

Трансляция в сети NFS папки происходит через файл настроек, расположенном в каталоге /etc/avahi/services. Создадим файл nfs.sevices8 где объявим о ресурсе(папке), которая появится при сканировании сетевого ландшафта организации.

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

# vim /etc/avahi/services/nfs.service

Стендовый пример синтаксиста файла 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 и путь её монтирования при удалённом доступе.

Для каждой папки NFS создаётся отдельный файл name.service

Перегружаем службу.

# systemctl restart avahi-daemon

Проверяем «видимость» созданной папки и службы NFS.

$ avahi-browse -tkrp _nfs._tcp

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

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

Клиент NFS.

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

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

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

# mkdir /home/nfs
# vim /srv/public/test.txt
# mount -t nfs lin-nfs:/srv/public /home/nfs

Смонтированные папки смотрим с помощью команды.

# mount | grep nfs

Утилита nfsiostat 11 позволяет получить статистику NFS.

# apt-get update
# apt-get install nfs-stats
# nfsiostat
# lin-nfs:/srv/public mounted on /home/nfs:
ops/s rpc bklog
0.051 0.000
...

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

Команда grep nfs и nfsiostat показывают статистику NFS папок смонтированных через утилиту mount.

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

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

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

Теперь переходим в окно графического менеджера Xfce и щёлкаем кнопку «Обзор сети» из списка выбираем папку Public как показано ниже.

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

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

Способы монтирования.

1. Создать скрипт, имя map17, поместить в папку /usr/local/bin, назначить cron18 задачу выполнения сценария при включении ПК.

Скрипт map.

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

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

# 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

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

Пример синтаксиса записи монтирования NFS папки в файле fstab.

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

3. Создать закладку в менеджере файлов Xfce. Это один из самых красивых способов держать общею папку NFS под «рукой». Достигается простыми манипуляциями мышки, как показано ниже.

Теперь, когда создана закладка, в менеджере Xfce будет постоянно присутствовать ссылка на общий NFS ресурс.

Время подключения NFS папки.

Текст приводимый ниже носит информативный характер для администраторов.

Для контроля времени использования общей папки служит утилита autofs20. Задача autofs — контролировать службу automount21 и время подключения и отключения при простое. Этим экономится полоса пропускания сети, обеспечивается высокая производительность канала и CPU ПК.

Развёртывание и управление autofs22 приводится ниже.

# 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 -t23 60

Создаём в каталоге /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 сервера.

Основное применение autofs — эксплуатация службы тонкого клиента.

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

В качестве инструмента контроля работы протокола NFS применяются утилиты showmount, exportfs, nfsstat и др. входящие в пакет nfs.

  • showmount — вывод информации о состоянии сервера NFS.
    • — d показывает каталоги
    • — e список экспорта сервера NFS
$ showmount -a
All mount points on lin-nfs:
10.0.2.33:/srv/public
  • nfsstat — вывод статистики работы NFS и RPC24
  • -v подробная информация
  • -r RPC статистика
  • -n NFS статистика
  • -l печатает статистику в формате списка
# nfsstat
Server rpc stats:
calls badcalls badfmt badauth badclnt
0 0 0 0 0
  • exportfs — выводит таблицу экспорта каталогов для клиентов
  • -v подробная информация
  • -r реэкспортировать все каталоги после редактирования
  • -u отменить экспорт каталога пример /srv/public
  • -a отправляет полученные записи экспорта в ядро
# exportfs
/srv/public

Заключение

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

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

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

Выполнить реэкспорт каталогов на сервере NFS.

# exportfs -r

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

Сноски.

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