Собираем из старого сервера домашний NAS с медиаплеером на XPEnology

Как ты догадался по названию, сегодня мы будем строить домашний NAS-сервер. Уже больше пяти лет у меня обитает маленький старенький зверек в корпусе In Win BQ656 Black Mini-ITX 80W USB/Audio/Fan + External remote control. Внутри у него вот такой процессор: AMD Athlon(tm) Dual Core Processor 4050e, с показанием BogoMips в 4200. Хоть и крошка, зато мало ест и умеет виртуализацию, что немаловажно. Подробные характеристики можно посмотреть где угодно :). К слову, уже после сборки захотелось поменять его на чуть более крутой Athlon 64 X2 6000+. Купить такой можно на Авито за 500–700 рублей. Все это дело мы подняли на материнке Minix780G-SP128M.

Не фонтан, конечно, — всего четыре SATA и нет поддержки RAID, но зато малое энергопотребление. Цену на сегодняшний день определить не удалось, но когда-то она стоила 220 долларов. В идеале бы, конечно, лучше иметь мать с возможностью подключения шести дисков и поддержкой RAID. Но такое удовольствие обойдется в некислую сумму. Попробуем прикинуть из того, что есть на рынке б/у. Предложили комплект на Intel 7600 + мать Asus можно приобрести за 1500–2000 рублей (напомню, что это б/у).

До замены корпуса система состояла из Ubuntu-сервера, шары на ней — и, собственно, все. Внутри было два диска по 500 Гбайт. Сейчас приобретен новый корпус, установлена еще пара жестких дисков. Итого три HDD по 500 Гбайт и один на 1,5 Гбайт.

Хотелки

Из задач, которые должен решать медиасервер, выделим следующие:

  • само собой, Samba, раздача медиаконтента по сети, об этом чуть ниже;
  • виртуализация различного уровня: пара виртуальных машин, внутри может быть 1С-сервер Linux, Docker-контейнеры;
  • чтобы не надо было настраивать каждый домашний узел для сервисов, маленький DNS с зоной что-нибудь.local.

Требования к аппаратной части:

  • бесшумность;
  • удобная установка/замена HDD;
  • компактность.

Повторюсь: очень хотелось бы заменить материнскую плату с процессором, но это не обязательно. Возможно, в дальнейшем заменю только процессор с кулером. Итак, новый корпус, поиск был долгим и сложным. После недельного гуглинга выбор пал на Raijintek Metis. То, что мне подошло по цене/качеству.

Пара фраз о корпусе

Производитель и модель: Raijintek Metis, с окном
Материал: алюминий, сталь
Габариты: 190 x 254 x 277 мм (Ш x В x Г)
Форм-фактор: Mini-ITX
Отсеки накопителей: 1 x 2,5/3,5" (внутри), 2 x 2,5" (внутри)
Вентиляторы: 1 x 120 мм (сзади, предустановлен)
Вес: около 2,8 кг

Классный дизайн и цвет отлично смотрятся практически везде, а стоимость весьма демократична. К слову, мне такой корпус обошелся всего в 4000 рублей. Приобретался на Avito, доставка почтой. Подробнее с корпусом можно познакомиться на сайте производителя. Чуть не забыл про память! На момент написания статьи было установлено 2 Гбайт (две планки по 1 Гбайт). Сейчас уже заказываю две плашки по 2 Гбайт.

Реализация программной части

Итак, что самое главное хочется от сервера? Чтобы был легко масштабируемый, в ногу со временем, приятый и удобный в использовании/администрировании. Желательно привлекательная веб-морда.

  • Вариант 1: поставить Ubuntu Server c панелью управления Ajenty 2 и все необходимое доставлять руками.
  • Вариант 2: поставить OpenMediaVault. Морда в наличии, много плагинов/расширений для увеличения функциональности, в основе лежит Debian, соответственно, всегда есть возможность доставить или допилить руками.
  • Вариант 3: поставить FreeNAS. Чуть меньше плюшек, но можно доставить все руками, правда — чуть сложней. Базируется на FreeBSD.
  • Вариант 4: поставить XPEnology. Огромное количество плюшек, репозиториев с дополнениями. Поддержка виртуальных машин и Docker.

После долгих мучений выбор пал на четвертый вариант. На нем и будем поднимать домашний сервер далее. Почему именно так? Первый вариант хорош сам по себе, но в то же время хочется минимум усилий и максимум возможностей без дополнительного рукоприкладства. К тому же Ajenty не дает гибко обращаться к серверу, так и хочется залезть в консоль и сделать все руками оттуда. А потом зайти в панель и просто любоваться :). Среди оставшихся вариантов победу одержал XPEnology. Предоставляет максимум сервисов при минимуме настроек.

Взлетаем

Итак, перво-наперво идем на сайт xpenology.me в раздел downloads и скачиваем набор для развертывания.

XPEnoboot — это образ загрузочного диска для установки и загрузки/перезагрузки сервера.

DSM — сама система. Synology Assistant — опционально, программа обнаруживает серверы XPEnology/Synology, установленные или готовые к установке узлы. Я устанавливал через веб-интерфейс — как говорится, на вкус и цвет все фломастеры разные.

ISO-образ нужно распаковать на флешку и использовать при каждом перезапуске сервера, что не совсем удобно. Либо подарить флешку серверу и сделать ее приоритетной при загрузке. Есть второй путь. В предыдущих выпусках журнала «Хакер» я писал про организацию PXE-сервера с различными вариантами загрузки. Если есть такой сервис, то можно с легкостью отдать это ему. За загрузку в XPEnology отвечают два файла (как и в любом линукс-дистрибутиве): zImage и rd.gz. Располагаем их в директории PXE-сервера, в меню дописываем:

insert into pxelinux.cfg/default
LABEL xpenolog
kernel xpenology/zImage root=/dev/md0 ihd_num=0 netif_num=2 syno_hw_version=RS3612xs ac1=0010562E3E36 mac1=0051562E3E37  sn=B5JDN10005
initrd xpenology/rd.gz

Из меню понятно расположение файлов в подкаталоге xpenology, относительно корня TFTP-сервера. Информация была найдена на сайте xpenology.com. Рекомендую ознакомиться.

Первый вариант не сработал. Пробую по-другому. Распаковываю ISO, беру оттуда файл меню isolinux.cfg, копирую менюшку в свое меню PXE, с поправкой пути до файла ядра zImage. Копирую zImage на PXE-сервер. Вот этот вариант сработал как надо, после начала установки даже pat-файл операционной системы не потребовался. Сервер сам скачал его с сайта synology.com, что не может не улыбнуть :). В процессе установки сервер попросит ввести учетные данные администратора. После установки получаем полностью готовый к работе сервер Synology на обычном железе. Тем, кто не знаком с этой ОС, очень рекомендую! Огромное сообщество. Как результат — большое количество репозиториев, которые в разы расширяют штатную функциональность.

Рекомендую следующие списки репозиториев:

  1. http://www.cphub.net/index.php?id=37
  2. http://spk.unzureichende.info/
  3. http://synology.sysco.ch/
  4. http://packages.jdel.org/
  5. http://spk.naefmarco.ch/spkrepo/packages/
  6. http://repo.synozwave.com/
  7. http://spk.nas-mirror.de/spkrepo/packages
  8. http://spk.synologyitalia.com
  9. http://jaspr.kastner.wtf
  10. http://packages.pcloadletter.co.uk
  11. http://www.cphub.net
  12. http://synology.sysco.ch
  13. http://synology.acmenet.ru
  14. https://packages.synocommunity.com
  15. https://synocommunity.com/packages

На всякий случай ко всему нужно иметь рабочую систему Ubuntu Server. Поэтому первым делом ставлю Docker и добавляю контейнер Ubuntu.

Меню с приложениями XPEnology

Если нужна виртуализация, в XPEnology есть VirtualBox. Кто хочет Archipel, есть Docker (ссылка для любителей CentOS). Понятно, что внутри хоть KVM, хоть еще что можно крутить. У меня таким образом в Ubuntu-контейнере крутится веб-клиент uTorrent.

Вот так легко и непринужденно управляем контейнерами в XPEnology.

Скриншот работы Docker-контейнера в XPEnology

Из центра пакетов следом за «Докером» рекомендую подборку:

  • DNS Server (для настройки домашней зоны, опционально);
  • Plex Media Server;
  • DLNA Server (опционально, в Plex’е уже есть);
  • Download Station — менеджер закачек на самом сервере;
  • MariaDB;
  • PHP PEAR;
  • Midnight Commander;
  • phpMyAdmin;
  • Transmission;
  • VirtualBox;
  • Tor;
  • Python;
  • антивирус на выбор.

Настройка DNS

Открываем DNS Server во вкладке «Зоны», сразу жмем «Создать», «Основная зона», вводим имя зоны. Далее двойным кликом открываем и вносим необходимые записи.

Пример настройки DNS в XPEnology

Далее открываем вторую вкладку «Разрешение». Включаем службы разрешения. Включаем серверы пересылки и вводим адреса вышестоящих DNS-серверов, к которым следует обращаться, если в своей базе данные отсутствуют. На очередной вкладке можно посмотреть журнал, а на следующей — создать ключи. Далее вкладка «Представление». Переходим и создаем запись. Приоритет будет выставляться в порядке создания. Далее вводим имя представления, есть опция ограничения IP-служб. Для настройки отдельных серверов пересылки переходим во вкладку «Выберите зону» и выбираем нужные зоны для этой записи. В последней вкладке, «Настройки», можно настроить размер журнала, TTL кеша, кеш, число рекурсивных клиентов и максимальное число TCP-подключений.

Следующим шагом нужно автоматизировать скачивание сериалов с отслеживанием новых версий и последующей передачей медиа Plex-серверу. Для этого нужен веб-сервер, который уже предусмотрен в DSM, торрент-качалка Transmission с веб-интерфейсом: того, что сериалы мониторятся и скачиваются автоматически, точно окажется мало — обязательно возникнет необходимость скачать еще какой-нибудь торрент. И собственно сам TorrentMonitor, написанный на PHP. У этого приложения очень хороший набор функций при минимальной нагрузке на сервер. TorrentMonitor позволяет мониторить не только сериалы на популярных трекерах, но и раздачи с таких сервисов, как rutor.is или rutracker.org. У проекта есть живой сайт и форум, на котором можно довольно быстро получить консультацию, если что-то пошло не так.

Хочется выразить огромную благодарность разработчику. В общем, очень полезная штуковина. Рекомендую!

Ради самообразования поставим к Transmission еще uTorrent-веб, пусть TorrentMonitor грузит через Transmission, а для админских качалок без ограничений будем качать uTorrent’ом.

TorrentMonitor

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

Идем в «Панель управления», раздел «Веб-службы». Включаем Web Station. Добавляем виртуальные хосты. Указываем имя каталога, имя хоста, протокол и порт. Указанное имя каталога создается по следующему пути: /web/имя_каталога. Поскольку сервер домашний, то с HTTPS не буду заморачиваться, но для особо искушенных такая возможность есть и при желании включается в пару кликов.

TorrentMonitor распаковываем в соответствующий хост (у меня это torrent.homeserver.local) имя каталога tm-latest. Не заморачивался особо, распаковал архив с TorrentMonitor’ом и прямо эту папку указал в virtual host. Настраиваем БД по желанию. В моем варианте MariaDB-server + phpMyAdmin, оба пакета устанавливаются из центра приложений XPEnology. Для особо экзотических есть SQLite, меня, правда, производительность не устроила. Как работать с phpMyAdmin, информации в интернетах полно, поэтому не буду заострять внимание.

На самом деле там все просто. Заводим аккаунты на поддерживаемых трекерах. Указываем параметры подключения к торрент-клиенту. И наконец, добавляем сериал для мониторинга, выбираем директорию скачивания, и все готово. В программе есть тест на работоспособность. Повторюсь, что в целом очень легко настраивается.

С этим разобрались, переходим к uTorrent WebUI. Здесь можно пойти тем же путем. А можно поднять контейнер с Ubuntu 14.04 в Docker и запустить внутри uTorrent WebUI, что я и сделаю.

Интерфейс uTorrent WebUI

Итак, ставим Docker из «Центра приложений». После запуска переходим в «Реестр». Ищем Ubuntu, ставим понравившийся образ: я выбрал widerplan/ubuntu-14.04. При запуске подключаем общий том с хостовой системой и нужные порты, выбрал 2222-й для SSH, 8088-й для 80 и 8080-й — на нем будет работать uTorrent WebUI.

Docker-контейнер с указанием подключения томов
Docker-контейнер с указанием подключения портов
Консоль управления в контейнере Ubuntu

Далее заходим по SSH и качаем архив с сайта TorrentMonitor.

Распаковываем по пути /var/www/html/utorrent. Ставим LAMP, правим конфиги Apache 2. Все это сто раз рассказано в интернетах, поэтому трудностей возникнуть не должно. Итак, торренты качаются, сериалы мониторятся. Теперь надо бы все это дело более-менее прилично раздавать по сети. В качестве медиасервера будем использовать Plex Media Server. Преимуществ масса. Самое главное — сам сканирует папки, качает обложки, сортирует сериалы по сезонам и сериям, музыку по исполнителям и альбомам. Качает к фильмам трейлеры, описание, список актеров, рейтинги. И это далеко не предел. Внутри из коробки доступен DLNA, но использовать в качестве DLNA-сервера мы будем внешний. Устанавливаем его также из «Центра приложений». Если позволяет сеть, то можно организовать доступ к Plex-серверу извне, что сделает его доступным из сети Интернет, и ты сможешь делиться медиатекой с друзьями. Клиентские приложения есть практически под любое устройство.

Пример веб-клиента Plex Media Server

После установки Plex’a добавляем каталоги с указанием содержимого. Отдельно рекомендую указать папку, в которую скачиваются торренты по умолчанию, а также добавить каталоги, куда скачивание идет через TorrentMonitor. Когда количество контента перевалит уже за терабайт, будет проще разбираться с файлами, чем искать все в «файлопомойке».

Заключение

Конечно, это далеко не предел для такой системы, как DSM (XPEnology). Здесь можно наворотить и мониторинг, и Proxy, и сервер резервного копирования как для обычных систем, так и для Apple-устройств. На лету можно установить CMS-ки, такие как площадка DokuWiki, Joomla, форум PHPBB, Drupal, BitTorrent Sync, IP-телефонию Asterisk, UniFI, VirtualBox и еще очень много всего. Возможности этой системы просто поражают именно потому, что все сделано с красивыми рюшечками и кнопочками в интерфейсе.

В общем, если нужно на лету быстро расширить функциональность, это не составит проблем. Для домашнего сервера очень даже то. Правда, не у каждого есть дома PXE, поэтому рекомендую приобрести маленькую флешку и запихать загрузчик на нее. В общем, удачи в установках, если что — пиши на почту, всегда рад помочь!

P.S. Надеюсь, ты не потратил время зря ;). Всем спасибо!

Александр «Plus» Рак: Участник сообщества OmskLUG. Инженер отдела электронного взаимодействия МКУ "Информационно технического управления".

Комментарии (23)

  • Молодцы, вы изобрели велосипед и достойны получить пирожок. Теперь посчитаем стоимость компонентов, затраченное время и идём покупать synology. Умеет все тоже самое и даже больше и по цене и энергопотреблению сопоставимо

  • Agaruppa, synology это дисковые хранилища, а в статье описан мультимедийный комбайн универсал. Так что не в кассу ваш коммент. Или, как вариант, представьте нам модель synology, которая в равной степени годна и как мультимедийный центр, и как сервер универсал.

    • Серьёзно? А как же тогда я смотрю с них кино? И торренты качаю? И библиотеку книг и коллекцию книг и музыки организовываю? Автоматом делаю бэкапы на них.

      • Прошу прощения, уважаемый! Не вник сразу в тематику аппарата. Но про велосипед всё-таки не совсем справедливо. С нуля, наверное, реально проще брать готовую Synology, но если есть уже старый комп, то сия статья - вариант второго дыхания ему.
        Ещё раз извиняюсь!

        • Приятно удивлён вашей вежливостью, но это не стоит извинений. Если есть старый комп то да, но спорно. Вряд ли найдётся вот так старый комп с низким энергопотреблением и в подходящем формфакторе. Я просто переболел всем этим уже. Столько разных решений перепробовал... сейчас нашёл свой почти идеал, я не только о NAS. Автора статьи прошу извинить мой тон, все таки люди стараются и пишут качественные материалы на фоне всего остального.

          • Могу сказать так, что сия статья добавлена мной в избранное, т.к. в ней есть ряд интересных вещей, которые я допилю, когда время и силы будут, в своей реализации. У меня собственно сделан и успешно эксплуатируется первый вариант из предложенных в статье, но без вебморды, и функционально всё пока проще.
            Так что велосипед велосипеду рознь.

          • Доброго времени суток, коллеги.

            А про какую модель Synology Вы говорите Agaruppa?

          • У меня их две. 115j и 215 play. Операционка DSM 6

  • В общем, наверное кому-то понравится такое небольшое рукоблудие и он будет Счастлив! А это - самое Главное :-)

  • Советую посмотреть в сторону Asustor. Его сделали выходцы из Synology.

    • Основной плюс на момент покупки Asustor - наличие HDMI. Многие версии поддерживают 4К.

      • Выглядит неплохо. Но зачем там hdma? У меня сервера стоят отдельно, в темной комнате. Организована домашняя сеть и проводная и без. Все устройства в доме могут к ним обращаться и видят весь контент. Наличие hdma предполагает установку поблизости от телевизора и использование в качестве развлекательного центра с функциями сервера. Мне проще эппл тв в телик воткнуть или виндовс стик от Интел.

        • Ну у меня он в телек воткнут. Управление с мобилки через приложение.

          Тоже думал насчет Apple TV - но что-то не было времени понять что это такое :-(
          Поэтому смотрю прямо с асустора. Проблем нет никаких. По сети нормально будет прокачивать фильмы?

          • У меня немного по другому. Вся экосистема: телефоны, компьютеры, планшеты и тв от эппл. И два сервера synology. Два телевизора на эппл тв 4 поколения. Сервера выполняют свою работу: файлообменник, cloud, мультимедиа, торренты, бэкапы, rss, фото галерея, заметки, почта, видеобиблиотека, библиотека книг(я туда всю Флибусту положил). В общем доволен как слон. Intel compute stick валяется без дела, я выпилил всю винду из моего дома.

          • Не страшно бэкапить всё на рэйд? Я понимаю,что это рэйд итд. Но сбой в контроллерах итд никто не отменял. Или второй NAS - это зеркалка первого? Сам никак не решусь. Поэтому всё в облаках.

          • Есть много возможностей многократного дублирования информации. Если есть сомнения, на NAS есть возможность синхронизации как с другим NAS , так и со многими облачными хранилищами. Есть возможность зеркалирования информации на разных устройствах.
            Мне именно Synology нравится тем, что можно расширять функционал устанавливая программы. Есть различные базы данных, библиотеки, серверы и т.д. Никто не мешает подключить независимый жесткий диск через USB. А так на двухдисковом Synology по умолчанию диски работают рэйд, то есть из двух дисков каждый по три терабайта, вам доступно всего три террабайта, ибо серкалируется все, в том числе и OS NAS. Можно безболезненно вытащить один диск и машинка загрузится с другого. Посмотрите обзоры, почитайте о возможностях. В обзорах много не пишут, а возможностей больше чем кажется.

          • А если NAS "помрёт"? Купивши другую модель всё будет plug&play или прийдётся курить мануалы и шаманить? (по опыту просто сдох NAS однажды логически, но без рейда и однодисковый...ничего не помогло,мучался долго) Я давно читаю уже про них..и QNAP. Более интересует проблема переноса дисков с дохлого NAS.

  • Просто вставите диск в другую модель этой же фирмы. Операционка на дисках продублирована тоже. NAS просто железка

    • Ок. если они поддерживают перенос,то надо попробовать. Спасибо.

  • Самая фишка этого варианта - это возможность иметь очень большой RAID
    покупать готовый (8-12 дисковый) для дома выйдет очень накладно.
    Однако если собрать такой-же вариант на XPEnology - выйдет значительно дешевле.

  • почти все комплектующие из статьи были приобретены с aliexpress. Проц копеечный 400 рублей. Мать осталась от старого системника ( был куплен в свое время за 4000 рублей)... весь бюджет проекта без дисков не привысил 5-7 т.р. а теперь покажите мне synology за 7 т.р. с возможностью расширения 4 и более жеских?
    P.S позднее был приобретен pci raid, там же, за 700 рублей. и появилась возможность подключения еще 6 дисков. для домашнего хранения за глаза и за уши, включая резервирование и всевозможные бекапы всех домашних устройств.

Похожие материалы