Если у тебя есть старый компьютер, который некуда применить, — на его основе можно собрать NAS. Существует немало различного софта для этой цели, в частности несколько дистрибутивов, один из которых, OpenMediaVault, мы и рассмотрим.

 

Введение

INFO


OpenMediaVault основан на Debian 7 с ядром 3.2.0-4.

Дистрибутив был создан в результате раскола в стане разработчиков FreeNAS. Особенности:

  • многоязычность;
  • поддержка GPT и файловых систем ext4/XFS/JFS;
  • мониторинг — в том числе S.M.A.R.T и SNMP;
  • веб-интерфейс;
  • система плагинов, позволяющая подключать новые возможности, такие, например, как LVM.
 

Установка и начальная настройка

Установку описывать смысла не имеет — разработчики не стали мудрить и в качестве программы установки использовали таковую из Debian, несколько упростив: так, этап разметки диска производится полностью автоматически, недостающие же пакеты установщик будет скачивать с репозитория.

После установки мне пришлось поправить /etc/network/interfaces: установщик включает только один, а для тестирования необходимо было два. Также по неизвестной причине стандартный пароль WebGUI принимать не желал, пришлось ставить свой с помощью команды omv-firstaid, причем это удалось сделать только после нескольких попыток.

Вход в веб-интерфейс
Вход в веб-интерфейс

После входа видим меню навигации слева и самую общую информацию — версию ядра, самого OpenMediaVault и информацию о текущей нагрузке. Сверху же несколько вкладок. Помимо «Обзора», есть еще «Процессы» — вывод утилиты top, «Статус» — различные графики за разные периоды (использование процессора, сети, диска) и «Отчет» — выжимка информации о системе (список интерфейсов, сокеты, таблица маршрутизации и так далее).

После входа
После входа

Имеет смысл сразу же обновить систему, для чего нужно зайти в «Менеджер обновлений», выбрать все имеющиеся пакеты и нажать кнопку «Загрузить». После этого нужно выключить (или хотя бы увеличить) тайм-аут сессии, поскольку пять минут выглядят для NAS слишком параноидально. Для отключения/увеличения нужно перейти в «Общие настройки» и установить «Закончилось время сессии» в нужное значение.

Обновление системы
Обновление системы
Настройка тайм-аута сессии
Настройка тайм-аута сессии

Следующий шаг — настройка хранилища. Для начала создадим массив RAID. Удостоверимся, что диски присутствуют в системе, для чего перейдем в «Физические диски». После этого заходим в «Менеджер RAID», нажимаем «Создать», выбираем жесткие диски и тип массива RAID, жмем «Сохранить» и ждем какое-то время. Затем создаем файловую систему: переходим в «Файловые системы», нажимаем «Создать», указываем устройство, метку тома и тип файловой системы, жмем «ОК», монтируем и применяем. Наконец, создаем общий каталог: переходим в «Общие каталоги -> Добавить», устанавливаем имя и права доступа и вновь сохраняем.


Создание RAID. Главное окно
Создание RAID. Главное окно

Создание RAID. Подготовка
Создание RAID. Подготовка
Создание RAID. Синхронизация массива
Создание RAID. Синхронизация массива
Создание общего каталога
Создание общего каталога

Теперь можно настраивать нужные сервисы. Начнем с Самбы (SMB/CIFS). На вкладке «Настройки» ставим «Включить», устанавливаем имя рабочей группы, остальные опции по вкусу. Сохраняем и смотрим вкладку «Сетевые ресурсы». По дефолту там пусто. После нажатия кнопки «Создать» появится окно, где можно добавить общий ресурс. Рассмотрим несколько параметров, которые там настраиваются:

  • «Опубликован» — кто именно может просматривать ресурс. Если выбрано «Разрешено гости», то, в случае неуказания пароля, пользователя пустит как гостя. В случае же выбора «Только гости» пускает без пароля вообще.
  • «Наследование списков ACL» — если имеются списки ACL у родительского каталога, они будут применяться к создаваемым файлам и каталогам.
  • «Расширенные атрибуты» и «Хранить DOS-атрибуты» — хранить ли атрибуты OS/5 (первое) и как хранить атрибуты DOS («Скрытый», «Системный» и «Только для чтения»), в виде расширенных атрибутов или же отобразить их на стандартные права доступа.
Создание общего ресурса SMB
Создание общего ресурса SMB

Все остальные сервисы настраиваются схожим образом.

FreeNAS

FreeNAS основан на FreeBSD 9-й ветки и предоставляет следующие возможности:

  • снапшоты и репликацию — благодаря ZFS;
  • RAID-Z — технологию, аналогичную обычному RAID, но без архитектурных недочетов последнего;
  • шифрование томов — опять же благодаря ZFS.

Стоит отметить, что интенсивное использование ZFS требует много памяти, так что для старых компьютеров этот вариант не подходит. Также есть коммерческая версия FreeNAS — TrueNAS, помимо ПО, предоставляющая железо и техподдержку.

 

Обзор интерфейса

Интерфейс левой панели, как ты уже увидел, древовидный с одним уровнем вложенности. Поглядим, что в данных ветвях есть. В «Общих настройках» на вкладке «Web Администратор» можно указать, во-первых, порт и время действия сессии (что мы и сделали), во-вторых — поддержку SSL/TLS. На вкладке же «Пароль Web Администратора», понятно, устанавливается пароль для входа в WebGUI.

«Дата и время» содержит настройки часового пояса и NTP-клиента. Тут что-либо комментировать нет надобности.

«Сеть» содержит несколько вкладок. На вкладке «Общий» можно задать имя хоста и домена. На вкладке «Интерфейсы» — настроить сетевые интерфейсы (поддерживается как динамическое выделение адресов, так и статическая настройка, а для эстетов можно задавать дополнительные параметры вручную). На вкладке «DNS-сервер»... без комментариев. А вот следующую вкладку, «Обозреватель сервисов» (в оригинале «Service Discovery»), стоило бы назвать более понятным именем. Данная вкладка представляет собой в конечном счете интерфейс к Avahi, который объявляет ресурсы, доступные на хосте (а никак не обозревает). «Брандмауэр» предоставляет интерфейс к старому доброму iptables. Для NAS, впрочем, подобная функциональность кажется избыточной.

«Уведомление» — поддержка уведомлений. На вкладке «Настройки» указывается, куда отправлять то или иное уведомление. К сожалению, можно указать не более двух адресатов. На вкладке «Уведомления» настраивается собственно список событий, о которых получатели будут извещены.

«Управление энергопотреблением», вкладка «Настройки» — указывается, что делать по нажатии кнопки питания и выбирать ли сопутствующий уровень энергопотребления процессора, если последний это поддерживает. А вот вкладка «Запланированные задания» лишь на первый взгляд аналогична ветви «Запланированные задания». На деле же на ней можно запланировать выключение, засыпание (эта процедура переведена как «Остановка шпинделя») или перезагрузку.

В ветви «Сертификаты» можно управлять сертификатами — создавать, импортировать, редактировать и удалять. Создание сертификатов, должен отметить, реализовано достаточно удобно.

«Запланированные задания» — фронтенд к crontab. Опять же, как и в предыдущем случае, реализовано идеально.

«Менеджер обновлений» — вкладку «Обновления» мы ранее уже рассмотрели. Вкладка «Настройка» предназначена для выбора дополнительных репозиториев (пререлизы и обновления, выпускаемые сообществом). По умолчанию ни один из них не включен.

«Плагины» — различные плагины, о них расскажем чуть ниже.

Управление плагинами
Управление плагинами

Поддерево «Хранилище» — в его ветвях мы уже были, когда создавали RAID-массив и файловую систему, поэтому рассмотрим только ветвь S.M.A.R.T. Здесь у нас три вкладки. «Настройки» — здесь указывается интервал между проверками, режим питания, при котором диски будут проверяться, и контроль температуры (уведомление по достижении пороговой величины). На вкладке «Устройства» указываются отслеживаемые жесткие диски. И здесь очень не хватает работающих переключателей в столбце «Мониторинг» таблицы. Вместо этого там индикатор, который очень похож на переключатель, но им не является, что может запутать пользователя. Переключение же происходит путем нажатия кнопки «Редактировать» и установки/снятия чекбокса в появившемся окне. Вкладка «Запланированные тесты» в пояснениях не нуждается.

(Не)отслеживаемые устройства S.M.A.R.T.
(Не)отслеживаемые устройства S.M.A.R.T.

В поддереве «Управление правами доступа» можно создавать пользователей, группы (соответствующие ветви) и общие ресурсы, причем последним можно назначать не только стандартные права доступа, но и ACL. Для новичка, возможно, будет непонятно, что означают права исполнения на каталог, поэтому стоило бы написать небольшую справку по этому вопросу.

Поддерево «Сервисы» служит, понятное дело, для настройки различных служб, одну из которых, Samba, мы и настроили ранее. Стоит рассмотреть и другие имеющиеся службы.

В ветви FTP поддерживается настройка портов, ограничение количества клиентов, подключений и неудачных попыток входа. Также можно ограничить пропускную способность. На вкладке SSL/TLS можно настроить шифрование (сертификаты и прочее). В «Бан-листе» можно настраивать правила бана. Наконец, «Общие ресурсы» предназначены для того же, для чего и аналогичная вкладка в настройках Samba и, в общем-то, во всех остальных сервисах.

В настройках NFS всего один параметр — количество создаваемых серверных потоков.

В Rsync можно создавать запланированные задания. Вещь достаточно полезная, только немного непонятно, зачем на NAS нужно локальное копирование файлов. При типе «Удаленный» перевод Push и Pull как «Нажать» и «Пул» выглядит, мягко говоря, немного некорректным. Также не хватает опции «Сохранять числовые UID/GID»; впрочем, при необходимости эту опцию можно добавить в «Дополнительные параметры» вручную. На вкладке «Сервер» имеются две подвкладки — одна из них, «Настройки», не содержит ничего интересного (порт сервера), а вторая, «Модули», действует аналогично «Общим ресурсам», за исключением отдельных, специфичных для Rsync, особенностей.

Настройки SNMP не несут ничего особенного, разве что можно задать версию протокола и его безопасность (в случае третьей версии).

В SSH также ничего нового — порт, типы аутентификации, запрет входа как root, сжатие.

Про настройки TFTP и вовсе не имеет смысла говорить — практически все параметры, что есть в данной ветви, в изменении не нуждаются, за исключением пути, куда сохранять, и, возможно, разрешения создания новых файлов (по умолчанию разрешено только заменять существующие).

Поддерево «Диагностика» содержит всяческую информацию о системе. На вкладке «Настройки» ветви «Системные журналы» можно настроить пересылку логов на удаленный сервер Syslog.

Ну а поддерево «Информация» содержит всяческую (бес)полезную информацию о проекте.

Также хочется отметить, что, если нажать на домик рядом с горизонтальной панелью, отобразится то же самое, что видно в меню, только крупными и красивыми значками. Кроме того, для перезагрузки прямо из веб-интерфейса можно использовать меню, вызываемое щелчком по значку как раз напротив домика — и там же можно сменить язык интерфейса.

Меню завершения работы и режим крупных значков
Меню завершения работы и режим крупных значков
 

Расширенные возможности

Как уже упоминалось, в OpenMediaVault поддерживаются и плагины. Имеет смысл их перечислить. Страница с ними поделена на секции, упорядоченные по алфавиту.

В секции Backup находится всего один плагин, OpenMediaVault-usbbackup, позволяющий автоматически делать бэкапы на съемный USB-носитель.

В секции Filesystems плагинов явно больше. Например, OpenMediaVault-iscsitarget реализует поддержку iSCSI в веб-интерфейсе, а OpenMediaVault-lvm2 добавляет функциональность LVM в него же. После установки данного плагина в поддереве «Хранилище» появится ветвь «Управление логическими томами», где можно создавать и редактировать физические тома, группы томов и логические тома.

Добавленный плагин для LVM
Добавленный плагин для LVM

Два плагина из секции Multimedia — OpenMediaVault-forkeddaapd и OpenMediaVault-shairport — предназначены для устройств Apple.

В секции Network также есть два плагина. Один для работы с LDAP, второй же — возможность редактировать таблицу маршрутизации из веб-интерфейса. При его установке в ветви «Сеть» поддерева «Система» появится вкладка «Статический маршрут».

В секции Sharing внимания заслуживает только плагин OpenMediaVault-owncloud, включающий поддержку ownCloud — WebDAV-хранилища. При этом, разумеется, в веб-интерфейс добавляется необходимый пункт, «Сервисы -> ownCloud», где, впрочем, конфигурируются все те же самые параметры, что и везде.

В секции Utilites имеется да плагина: OpenMediaVault-clamav, добавляющий поддержку антивируса, и OpenMediaVault-nut, включающий поддержку Network UPS Tools, который позволяет нескольким компьютерам использовать один ИБП. При установке первого плагина появляется пункт «Сервисы -> Антивирус», где можно настроить типы сканируемых файлов, использовать ли улучшенный метод обнаружения, основанный на сигнатурах алгоритмов. На вкладке «Задания», понятно, можно задавать, когда будет происходить сканирование.

Настройка антивируса
Настройка антивируса

К интерфейсу управления плагинами имеется небольшое замечание: при нажатии на какой-либо плагин он выделяется, но при повторном нажатии выделение не убирается, и для его снятия приходится целенаправленно снимать чекбокс.

Кроме веб-интерфейса, OpenMediaVault поддерживает еще и управление из консоли. Основная команда для этого — omv-rpc. К сожалению, синтаксис ее недокументирован. К примеру, для получения списка общих ресурсов достаточно набрать следующую команду:

# omv-rpc "ShareMgmt" "EnumerateSharedFolders"

Отмечу, что формат вывода JSON достаточно неудобен для человеческого восприятия, так что лучше, конечно, использовать веб-интерфейс.

Пример вывода утилиты omv-ipc
Пример вывода утилиты omv-ipc

Кроме команды omv-rpc, существуют еще несколько команд, специфичных для OpenMediaVault:

  • omv-mkconf — создает конфиги для нужных сервисов. На самом деле данный скрипт лишь верхушка айсберга. Он вызывает иные скрипты, которые, в свою очередь, и генерируют необходимые файлы;
  • omv-sysinfo — именно этот скрипт вызывается, когда формируется отчет о системе (вкладка «Отчет» в «Диагностика -> Системная информация»);
  • omv-pm-standby — переводит систему в спящий режим (hibernate). После вывода из этого режима в консоли слетает кодировка, причем ни команда reset, ни перелогинивание не помогают;
  • omv-firstaid — скрипт с curses-интерфейсом, позволяющий неопытному администратору производить базовые восстановительные действия (такие как сброс пароля для входа в веб-интерфейс, настройка сетевого интерфейса — к сожалению, поддерживается только один, восстановление базы данных RRD для корректного отображения графиков) при невозможности зайти в WebGUI.
Omv-firstaid — утилита для проведения восстановительных работ
Omv-firstaid — утилита для проведения восстановительных работ

Конфигурационный файл находится в /etc/OpenMediaVault/config.xml и доступен только его владельцу. Разобраться в нем в случае необходимости достаточно просто. В остальном — дистрибутив ничем не отличается от Debian, в том числе и по репозиториям.

 

Заключение

Дистрибутив предназначен для тех, кому нужно быстро и беспроблемно развернуть NAS на старом компьютере. Свое предназначение он выполняет, однако есть у него, как всегда, и плюсы и минусы.

Из минусов прежде всего стоит отметить довольно странную локализацию интерфейса — порой создается впечатление, будто локализацию делили с помощью машинного перевода. Во-вторых, в глаза бросается отсутствие мастера быстрой настройки в веб-интерфейсе и отсутствие контекстной справки. Также, на мой взгляд, процедура создания общего ресурса избыточно усложнена. А в веб-интерфейсе есть достаточно большое количество ненужных, в общем-то, настроек. Кроме того, в качестве языка написания веб-интерфейса используется PHP, а значит, есть достаточно большой риск необнаруженных дыр в нем.

Что до плюсов... все же для неопытного пользователя (или для того, кто хочет быстро развернуть NAS) конфигурировать с его помощью гораздо проще, чем вручную. И есть удобный интерфейс настройки ACL.

Резюмируя вышесказанное: этот дистрибутив предназначен в основном для того случая, когда у тебя есть железо и не хочется его утилизировать. Для более серьезных целей стоит использовать аппаратный NAS, такой как Synology.

2 комментария

  1. Аватар

    icollabora

    10.08.2015 в 09:58

    и все ? и никаких omv-extras.org, сравнений с freenas и анализа достоинств и недостатков ?

    • Аватар

      kain.tm

      19.08.2015 в 13:32

      Автор в это не вдавался 🙂 Он кропотливо перечислил названия пунктов меню и жестко объявил половину функций ненужными. Молодец.

Оставить мнение