Здравствуй Хабр, давно не виделись.
Сегодня я хотел бы рассказать про свой домашний сервер: какие
ошибки допустил, на какой конфигурации сейчас остановился, да и
вообще зачем я это делал.
Дисклеймер: некоторая часть ПО, о котором ведется речь в статье,
может быть использована на бесплатной основе только в
ознакомительных целях или с ограничениями по функциональности,
пожалуйста, перед использованием изучите сайт разработчика на
предмет лицензирования и возможности использования ПО для вашего
дома.
История началась в уже далеком 2014 году, ходят мифы, что когда-то
доллар был по 32 рубля за одного зелёного, трава была зеленее, небо
чище, а энтузиазма было столько, что я занялся вещами о которых
расскажу ниже в статье, сейчас я бы на такое уже не отважился.
В один прекрасный день, разбирая свои провода и коробки на шкафу, и
раскладывая оставшееся железо от ремонта старых ПК друзей,
родственников и знакомых, я вдруг решил создать центральное
хранилище резервных копий для семейных фотографий, домашний CCTV,
сделать медиа-сервер для удобного просмотра кино и сериалов, да и
лаба для всевозможных экспериментов тоже не помешала бы, такой
домашний NAS с расширенным функционалом. Подобная идея уже
некоторое время мелькала у меня в голове, но все было не до нее
либо чего-то из железа не хватало, либо времени, а тут все как раз
сошлось.
Собственно началось все с нескольких жестких дисков разного объема,
в качестве процессора я взял старенький Intel i3-2120 3.3Ghz и 4GB
RAM DDR3 (2 планки по 2GB), какого-то старого очень китайского
корпуса, который, как видно на фото, был доработан в прямом смысле
напильником, хотя на самом деле там побывали и кусачки, и молоток,
да и ножовкой по металлу я что-то пилил. В качестве материнской
платы была взята списанная из офиса MSI B75MA-E31 (списали ее
потому, что после каждого ребута в ней слетали настройки биоса и
она постоянно просила настроить время и прочие параметры), как
оказалось уже позже, когда я ее таки забрал, в ней косячил разъем
под батарейку CR2032, вооружившись мультиметром, паяльником и парой
других мертвых материнок, мне удалось перепаять целиком посадочное
гнездо с контактами батарейки и восстановить нормальную работу
материнской платы.
В Итоге получилось что-то такое:
На самом деле на фото вариант уже с интегрированными корзинами под
HDD, чуть ранее сервер был собран без них просто в рамках
посадочных мест корпуса под HDD, но фотографии того варианта я не
нашел, хотя, как помню, первый вариант довольно быстро был
модернизирован корзинами до состояния как на фото, так что суть оно
передает очень точно, так сяк и продакшн.
Что же по софту спросите вы, так вот изначально в качестве
операционной системы была выбрана Windows 10
Собственно этот выбор позже принес огромное количество неудобств,
т.к. некоторый софт переставал работать при автоматической
установке обновлений и прочих ситуациях, характерных
пользовательским версиям Windows работающим без длительных
перезагрузок.
Но первичный опыт был получен и некоторое время я пользовался
расшаренными папками с этой машины, сделал ту самую заветную копию
семейных фотографий, начал собирать домашнюю медиатеку.
Для домашнего CCTV (видеонаблюдения) я купил на Avito несколько
камер D-Link dcs-2130, для начала камеры были очень даже неплохие,
но большим минусом данных камер была необходимость использования
блока питания с довольно коротким проводом, провод в итоге я
удлинял с помощью витой пары получилось вполне сносно.
Позже у меня появилось пару камер с ночным режимом записи (съемка с
инфракрасной подсветкой), которые также использовались некоторое
время.
По программному обеспечению я перепробовал множество вариантов:
сначала родной софт от D-link, который на тот момент был просто
ужасен, потом я пробовал Линия IP, Trassir и iSpy, насколько
знающий читатель поймет, Линия IP и Trassir накладывали
множественные ограничения в триальных режимах, да и опять же ни
одно из решений я не мог для себя оценить как идеальное, в итоге на
длительный срок я остановился на открытом бесплатном ПО для
организации видеонаблюдения iSpy.
iSpy уже в то время позволял использовать сценарии записи по
движению, экспорт видео, удобный поиск по зонам и т.п. В рамках
данной статьи я не хотел бы подробно останавливаться на этом
программном обеспечении, но основное, что стоит сказать оно меня
тогда устроило и позволило решить стоящую передо мной задачу, хотя
интерфейс сложно было назвать удобным и понятным для
пользователя.
Спустя полгода или чуть больше, намучившись с Windows, я решил, что
надо попробовать в качестве основной операционной системы что-то
стабильное, не требующее постоянных перезагрузок и обновлений,
основанное на Unix/Linux.
В итоге выбор пал на FreeNas. Я довольно долго жил с ним и не
тужил, используя плагины для расширения базового функционала и шары
с поддержкой Windows ACL, Emby в jail для DLNA вполне справлялись
со своими задачами, диски разного объема спокойно склеивались в
отказоустойчивые RAID-массивы.
Я перепробовал все доступные конфигурации RAID, провел огромное
множество тестов на скорость записи и чтения, тесты на IOPS, изучил
теорию по массивам и типам файловых систем, в общем провел время с
пользой.
Точно уже и не вспомню, но freenas радовал меня около года, если не
больше, но было 2 основные причины, почему я снова решил сменить
операционную систему моего сервера.
Первой было то, что я никак не мог подобрать удовлетворяющее меня
решение для домашнего CCTV, которое работало бы на FreeNas,
извиняюсь перед читателями, я достоверно не помню какие варианты я
пробовал использовать и с чем экспериментировал на FreeNas в плане
CCTV, но точно помню, что хорошего решения тогда я не нашел.
И второй причиной было отсутствие гибкости для экспериментов. В
частности с виртуальными машинами Windows и Linux, а тут еще и на
работе решили попробовать Windows Hyper-V и дабы расширить свой
кругозор и принудительно получить некоторые навыки я снова вернулся
к Windows, только теперь уже Windows Server 2012.
Кстати к этому времени у меня высвободилась оперативная память с
основного ПК 2 планки по 4GB DDR3, соответственно у меня уже было
8GB для моих лихих затей.
А еще я приобрел с рук (все там же на Авито) RAID контроллер LSI
8888ELP за 4500 рублей, абсолютно новый, в коробке и пленке.
Я конечно тут же получил несколько неприятных напоминаний, что
Windows системный администратор должен страдать по определению
создание виртуальных машин с Linux оказывается требует отключения
secure boot в гипервизоре и еще некоторых плясок с бубном, и если
сейчас ни одной машины не запущено, то Windows Server опять же
норовит поставить обновление и перезагрузиться, либо по утру я
обнаруживал синий экран, т.к. что-то винде там в очередной раз не
понравилось и прочие радости жизни с продукцией Microsoft.
Но цель изучить Microsoft Hyper-V, базовый функционал виртуализации
от Microsoft, была достигнута.
По софту для решения первоначальных задач все оставалось примерно
так же:
CCTV-iSpy, на тот момент я уже привык к этому ПО и оно казалось мне
отличным. Для синхронизации фото я, как и в первый раз на Windows
10, использовал ПО Goodsync вполне хороший софт, имеет много
настроек и режимов, но, как водится, в триальном режиме много чего
не доступно.
Windows шары для обмена файлами только теперь я уже поставил
авторизацию по AD, да да я поднял домен, опять же для интереса и
усложнения жизни себе любимому, с AD я уже много лет работал в
рамках организации, но пробовать что-то эдакое на реальном домене
страшно, а тут ломай не хочу.
Для скачивания файлов с интернета все так же был transmission, он
кстати поддерживает и авторизацию и webui для удобного добавления
файлов с других ПК в сети.
Небольшие изменения коснулись DLNA на данном этапе я познакомился с
Plex. Это отличный программный медиа-сервер, хоть и не без
недостатков. Основным минусом является то, что файлы необходимо
именовать очень правильно, варианты рекомендуемых названий конечно
же описаны в документации к ПО, но когда вы скачиваете файлы с
общедоступных ресурсов или от друзей, то конечно же названия там
зачастую не соответствуют требованиям Plex.
HFS http file server (от rejetto) для доступа к нужным файлам из
интернета, чтобы попасть на сам сервер на роутере был настроен
ddns+nat.
Только теперь софт был разбит на разные виртуальные машины, с
попыткой сэкономить ресурсы. Так же периодически появлялись и
уходили виртуалки на linux, debian, ubuntu, centos. Шло время и в
голове зрели идеи, что надо закругляться с затянувшимся триалом
Windows Server 2012, да и Hyper-V был уже не так интересен. Я уже
рассматривал, что же дальше поставить в качестве ОС и куда теперь
девать накопившиеся данные на сервере. У меня конечно же есть еще 2
персональных компьютера, один мой, второй у супруги, там тоже есть
некоторые объемы на hdd, но данные сервера уже не помещались.
Но под конец 2016 года на меня свалились даром около 15-17
замученных, но вполне рабочих дисков по 1 ТБ, без BAD блоков.
Собственно грех было не приспособить их в домашний сервер, но была
проблема на материнской плате всего 3 слота SATA II и один SATA
III, также был RAID-контроллер LSI 8888ELP это еще 8 портов SATA, и
даже купленная мной в какой-то момент плата расширения Espada
PCIe-4 x SATA III не позволяли собрать в данном корпусе что-то
вменяемое.
Я стал изучать рынок Б\у серверов supermicro на предмет покупки
3U-4U сервера с hotswap-корзинами, CPU, RAM и т.п. Так же очень
хотелось уже получить наличие IPMI (iLO в терминах HP), то есть KVM
over IP, дабы была возможность подключаться к серверу по IP в веб
или java приложении. Хотя сервер до этого времени жил в тумбочке
под телевизором (где у нормальных людей обычно обитают Playstation
и Xbox) и был подключен по HDMI к тому самому телевизору, но каждый
раз для управления мне приходилось переключать клавиатуру со своего
ПК (пока Windows Server работал штатно, ничего не обновляя и не
зависая в синий экран, естественно я подключался по RDP)
соответственно IPMI был бы очень кстати, да и вроде подарок на день
рождения я себе так и не купил.
Картинку резал из видео, поэтому за качество извиняюсь, но как
видно сервер живет на нижней полке, и особо никому не
мешает.
Но изучив цены, я очень быстро поубавил свои хотелки, как по
процессору, по объему оперативной памяти, так и по наличию IPMI,
тем не менее всё, что я находил, было для меня всё ещё дорого.
Через неделю, устав бороться с жабой и рыться в барахолках, я решил
купить дисковую полку Dell PowerVault MD1000 (DAS) с кабелем для
Raid-контроллера (SFF8088-SFF8470), которым я собственно и
планировал подключить полку к своему серверу через внешний порт на
RAID-карте. Полка обошлась мне в 23 800 руб., а кабель еще в
3000.
Приехал мой подарок из славного города Санкт-Петербурга,
доставленный логистической компанией, бережно упакованный в
деревянный паллет, в пленке и защитной упаковке:
Фото паллета уже после того как я извлёк из него дисковую полку,
разбирал я его ножом и отверткой, на все про все ушло примерно 40
минут.
Я знал, что полка будет тяжелая, но то что я буду проклинать все и
вся включая себя за эту идею я даже представить не мог! Еще даже не
достав дисковую полку из паллета (а она была там забита гвоздями
намертво), я уже понял, что это будет то еще приключение.
Удивительно, но я не смог найти у себя ни одной фотографии дисковой
полки отдельно, поэтому приложу фото из интернета:
А на фото ниже можно наблюдать уже сервер с полкой в сборе, в
тумбочке на балконе.
Тумбочку делал конечно же сам, всё как положено сначала
спроектировал в какой-то онлайн-программе и распечатал раскрой
материала на листочке, затем в ОБИ, куда я поехал за материалом,
как водится не оказалось в наличии той щитовой доски с сайта, для
которой я распечатал раскрой, поэтому я взял вариант в наличии на
2мм толще, предупредил там на распиле, но естественно один
принимает заказы на распил, другой носит, третий пилит, где-то там
в коммуникации эти 2 мм потерялись. Тумбочку я конечно же собрал,
но 2 мм погрешности это огромная разница при сборке мебели.
Статья вышла куда длиннее чем я изначально рассчитывал, а мы дошли
только до середины повествования, да и супруга уже требует
внимания.
И да, сервер реально оказался на балконе, и летом, и зимой. Почему
же так произошло? Те, кто хоть раз включал дисковую полку
enterprise-уровня, уже догадались, а для остальных я опишу ощущения
(в том числе и не только свои) во второй части!