Содержание статьи
Не фонтан, конечно, — всего четыре 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 на обычном железе. Тем, кто не знаком с этой ОС, очень рекомендую! Огромное сообщество. Как результат — большое количество репозиториев, которые в разы расширяют штатную функциональность.
Рекомендую следующие списки репозиториев:
- http://www.cphub.net/index.php?id=37
- http://spk.unzureichende.info/
- http://synology.sysco.ch/
- http://packages.jdel.org/
- http://spk.naefmarco.ch/spkrepo/packages/
- http://repo.synozwave.com/
- http://spk.nas-mirror.de/spkrepo/packages
- http://spk.synologyitalia.com
- http://jaspr.kastner.wtf
- http://packages.pcloadletter.co.uk
- http://www.cphub.net
- http://synology.sysco.ch
- http://synology.acmenet.ru
- https://packages.synocommunity.com
- https://synocommunity.com/packages
На всякий случай ко всему нужно иметь рабочую систему Ubuntu Server. Поэтому первым делом ставлю Docker и добавляю контейнер Ubuntu.
Если нужна виртуализация, в XPEnology есть VirtualBox. Кто хочет Archipel, есть Docker (ссылка для любителей CentOS). Понятно, что внутри хоть KVM, хоть еще что можно крутить. У меня таким образом в Ubuntu-контейнере крутится веб-клиент uTorrent.
Вот так легко и непринужденно управляем контейнерами в 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-серверов, к которым следует обращаться, если в своей базе данные отсутствуют. На очередной вкладке можно посмотреть журнал, а на следующей — создать ключи. Далее вкладка «Представление». Переходим и создаем запись. Приоритет будет выставляться в порядке создания. Далее вводим имя представления, есть опция ограничения IP-служб. Для настройки отдельных серверов пересылки переходим во вкладку «Выберите зону» и выбираем нужные зоны для этой записи. В последней вкладке, «Настройки», можно настроить размер журнала, TTL кеша, кеш, число рекурсивных клиентов и максимальное число TCP-подключений.
Следующим шагом нужно автоматизировать скачивание сериалов с отслеживанием новых версий и последующей передачей медиа Plex-серверу. Для этого нужен веб-сервер, который уже предусмотрен в DSM, торрент-качалка Transmission с веб-интерфейсом: того, что сериалы мониторятся и скачиваются автоматически, точно окажется мало — обязательно возникнет необходимость скачать еще какой-нибудь торрент. И собственно сам TorrentMonitor, написанный на PHP. У этого приложения очень хороший набор функций при минимальной нагрузке на сервер. TorrentMonitor позволяет мониторить не только сериалы на популярных трекерах, но и раздачи с таких сервисов, как rutor.is или rutracker.org. У проекта есть живой сайт и форум, на котором можно довольно быстро получить консультацию, если что-то пошло не так.
Хочется выразить огромную благодарность разработчику. В общем, очень полезная штуковина. Рекомендую!
Ради самообразования поставим к Transmission еще uTorrent-веб, пусть TorrentMonitor грузит через Transmission, а для админских качалок без ограничений будем качать uTorrent’ом.
Итак, для всяких веб-приложений, включая 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, что я и сделаю.
Итак, ставим Docker из «Центра приложений». После запуска переходим в «Реестр». Ищем Ubuntu, ставим понравившийся образ: я выбрал widerplan/ubuntu-14.04. При запуске подключаем общий том с хостовой системой и нужные порты, выбрал 2222-й для SSH, 8088-й для 80 и 8080-й — на нем будет работать uTorrent WebUI.
Далее заходим по SSH и качаем архив с сайта TorrentMonitor.
Распаковываем по пути /var/www/html/utorrent
. Ставим LAMP, правим конфиги Apache 2. Все это сто раз рассказано в интернетах, поэтому трудностей возникнуть не должно. Итак, торренты качаются, сериалы мониторятся. Теперь надо бы все это дело более-менее прилично раздавать по сети. В качестве медиасервера будем использовать Plex Media Server. Преимуществ масса. Самое главное — сам сканирует папки, качает обложки, сортирует сериалы по сезонам и сериям, музыку по исполнителям и альбомам. Качает к фильмам трейлеры, описание, список актеров, рейтинги. И это далеко не предел. Внутри из коробки доступен DLNA, но использовать в качестве DLNA-сервера мы будем внешний. Устанавливаем его также из «Центра приложений». Если позволяет сеть, то можно организовать доступ к Plex-серверу извне, что сделает его доступным из сети Интернет, и ты сможешь делиться медиатекой с друзьями. Клиентские приложения есть практически под любое устройство.
После установки Plex’a добавляем каталоги с указанием содержимого. Отдельно рекомендую указать папку, в которую скачиваются торренты по умолчанию, а также добавить каталоги, куда скачивание идет через TorrentMonitor. Когда количество контента перевалит уже за терабайт, будет проще разбираться с файлами, чем искать все в «файлопомойке».
Заключение
Конечно, это далеко не предел для такой системы, как DSM (XPEnology). Здесь можно наворотить и мониторинг, и Proxy, и сервер резервного копирования как для обычных систем, так и для Apple-устройств. На лету можно установить CMS-ки, такие как площадка DokuWiki, Joomla, форум PHPBB, Drupal, BitTorrent Sync, IP-телефонию Asterisk, UniFI, VirtualBox и еще очень много всего. Возможности этой системы просто поражают именно потому, что все сделано с красивыми рюшечками и кнопочками в интерфейсе.
В общем, если нужно на лету быстро расширить функциональность, это не составит проблем. Для домашнего сервера очень даже то. Правда, не у каждого есть дома PXE, поэтому рекомендую приобрести маленькую флешку и запихать загрузчик на нее. В общем, удачи в установках, если что — пиши на почту, всегда рад помочь!
P.S. Надеюсь, ты не потратил время зря ;). Всем спасибо!