Домашний сервер, или приключение длиной в 6 лет. Часть первая
Здравствуй, Хабр, давно не виделись.
Сегодня я хотел бы рассказать про свой домашний сервер: какие ошибки допустил, на какой конфигурации сейчас остановился, да и вообще — зачем я это делал.
Дисклеймер: некоторая часть ПО, о котором ведется речь в статье, может быть использована на бесплатной основе только в ознакомительных целях или с ограничениями по функциональности, пожалуйста, перед использованием изучите сайт разработчика на предмет лицензирования и возможности использования ПО для вашего дома.
История началась в уже далеком 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-уровня, уже догадались, а для остальных я опишу ощущения (в том числе и не только свои) во второй части!
Источник
Домашний сервер для работы и не только. Организация рабочего места ленивого инженера
Однажды став тем или иным специалистом в сфере IT, каждый из нас начинает окружать себя всевозможными инструментами для работы и отдыха. Далее это перерастает в целый комплекс мероприятий по поддержанию привычек, установленного расписания дня, комфортных условий труда и отдыха. Не претендуя на какую-либо уникальность, все же хотелось поделиться организацией «рабочего» процесса и отдыха ленивого администратора, как результатом знакомства с разными сферами IT, близкими к основной деятельности.
Вспоминая слова одного преподавателя вуза: «Кто такой инженер? Это же лентяй! Вот он лежит на диване, смотрит телевзор. И захотелось ему переключить канал — но вставать то лень! „Ай, ну его, каналы вставать переключать — пойду-ка разработаю пульт дистанционного управления. “. Всегда хотелось сделать что-то интересное и максимально это автоматизировать…
Итак, исходные данные:
0. Работа удаленным инженером-администратором. Поддержка парка серверов/сервисов по части software и hardware.
1. Место дислокации — загородный дом.
2. Гигабитный интернет с резервированием (Просто всегда был рад помочь местным сете-строителям с настройкой и сборкой серверов.)
3. Отностительно надежная инфраструктура — водо-, газо-, электроснабжение.
4. Желание тишины и спокойствия автоматизации для комфортной работы и быта.
Задачи:
1. Удобная организация рабочего места с возможностью оперативного мониторинга.
2. Необходимая функциональность в свете безопасности, быстродействия и широкого спектра задач.
3. Энергоэффективность.
4. Изоляция рабочей среды от потенциальных угроз.
Сначала все и вся было уделом одного обычного ПК средней конфигурации — здесь и работа, и развлечения и веб-сервер. Круглосуточная работа, особенно в жилой комнате ну никак не устраивала ни меня, ни домочадцев. Появилось желание сделать все „раз и надолго“. Были испробованы множество вариантов — несколько ПК для разных задач в разных местах, Remote Desktop к рабочему ноутбуку, во избежание всевозможных переустановок, проблем привязки к оборудованию или операционной системе. Но однажды попробовав поиграться с одной из систем виртуализации, понял — это то что решило бы сразу много проблем. Это случилось как раз во время, когда в ESXi было упразднено множество ограничений в бесплатной версии, да так что теперь гипервизор годился прямо в мини-продакшн, для дома это уже была пушка по воробьям Отлично, начнем-с.
Первые грабли не заставили себя ждать. При переносе штатным инструментом (VMware vCenter Converter Standalone Client) ОС Windows 7 из доживающего свое винчестера ноутбука конечно же был словлен блускрин. Решение — загрузочный диск с любым редактором реестра, активация необходимых драйверов путем правки нужных значений (вариант решения).
Как же было приятно потом „лечить“ и украшать медленную 5-летнюю систему! Был произведен перенос всего медиаконтента, „не очень нужных“ программ, система сжата с 500 до 50 гигабайт. Все было чудесно, но, конечно сразу же захотелось „побыстрее“. Здесь начались размышления по поводу, собственно, серверной части. Было решено построить систему с запасом, максимально использовав комплектующие, которые уже были. Основное требование — бесшумность и производительность.
Итак, корпус — был вот такой: INPC DL36 — прочный, просторный корпус, который отлично подходил под все требования — полноценный размер материнской платы, 3U высота для использования полноценных радиаторов и бесшумного блока питания.
Конфигурация оборудования:
- Материнская плата Tyan S7012. 2xLGA1366, 4 сетевых интерфейса, встроенный IPMI, цена на ebay на момент покупки — $130
- Процессор 1 х Intel Xeon L5630. 4×2.13GHz, TDP 40W. Второй пока лежит без дела, хотя, как показали измерения, практически не повлиял на снижение средней потребляемой мощности (-10Вт). Цена 1шт. на момент покупки — $50 (ebay)
- Контроллер LSI 9261-8i. Минимально необходимый для полноценного использования SSD. Замеры iops внутри виртуальных машин это подтверждают. Цена на момент покупки $150 (ebay).
- Дисковая подсистема Здесь немного понервничал и все же раскошелился. RAID1 на базе 2 x Intel SSD DC S3500 Series (240GB, 2.5in SATA 6Gb/s, 20nm, MLC) + OCZ Deneva 2 480 GB для второстепенных задач, тем не менее требующих быстрой дисковой системы. HDD оказались просто не нужны, к тому же они были бы самым шумным элементом системы! Замер IOPS оказался в „пределах погрешности“ относительно теста производительности RAID при непосредственном подключении, без какой-либо виртуализации.
- Блок питания Chieftec Smart GPS-500C. Он просто бесшумен. Никакого писка дросселей, никаких шумов, абсолютно.
- Оперативная память В текущей конфигурации это 3х8Gb — вполне достаточно для текущих задач и неплохой запас на будущее, чтобы лишний раз не выключать сервер.
- Охлаждение Штатные вентиляторы были выкручены, на продув корпуса установлены Noctua NF-S12A PWM. Основной проблемой конечно же стало охлаждение процессоров. Было решено использовать штатный радиатор Intel STS100C (Cu+Al) вместе с регулируемым вентилятором (штатный даже на минимальных для запуска оборотах был очень шумным). Экспериментальным путем был подобран San Ace 80, регулировка осуществляется с помощью популярного step-down модуля на базе LM2596S. Путем подстройки напряжения получилось добиться скорости 500-700 оборотов, это практически бесшумная работа. Такой режим не допускает перегрева даже жарким летом, все показания датчиков в пределах нормы.
В планах переход на полностью пассивное охлаждение CPU.
Вот как это выглядит на данном этапе:
Вид спереди, диски можно менять не выключая сервер:
Попутно был развеян миф о потребности регулярной перезагрузки Windows:
Итак, сервер собран, далее приступим к повышению надежности в доступных нам пределах. Мною было продумано множество вариантов бесперебойного электропитания дома в целом, и сервера, в частности. От выделенного ИБП с минимально необходимой мощностью для питания сервера и базовых сетевых устройств до полного резервирования всего дома трехфазным ИБП. В итоге проб и ошибок был выбран все же самый адекватный вариант — ИБП средней мощности с запасом для питания критических устройств в течение хотя-бы 12 часов. Таковыми являются газовый котел, собственно, сервер, коммутатор провайдера, роутер, внутренние коммутаторы, видеокамеры, автоматические ворота, дежурное 12В освещение, аварийные розетки в доме и подсобном помещении. Добавление следующего по важности устройства — чайника, насосной станции очень сильно повышает требования к ИБП, поэтому в случае надобности аварийное снабжение переводится на бензиновый генератор. В качестве источника бесперебойного питания применен APC Smart-UPS 1500, в крайнем случае — достаточный для пуска 0.75кВт насосной станции. Аккумуляторный блок собран из 2х120А*ч батарей.
Потребление резервируемых устройств в штатном режиме:
Организация сети. В который раз пришлось на своем опыте убедиться в законе — если по плану необходимо проложить два кабеля — надо закладывать четыре! Даже без систем умного дома. После разнообразных перестановок была применена следующая схема. Для моей реализации сети идеальным роутером оказался, конечно же, MikroTik. Абсолютно все необходимые функции за минимальную стоимость, с минимальным энергопотреблением. Простая настройка локальной сети, безопасности доступа извне, резервирования каналов связи, дополнительных сервисов — устройство класса „один раз разобрался, настроил и забыл“. Функция резервной маломощной точки доступа Wi-Fi, потому как качественная раздача не является основной задачей подобных устройств. В роли главной точки беспроводного доступа был заказан небезызвестный Ruckus — поставил и забыл, проблемы с Wi-Fi прекратились раз и навсегда.
Два аплинка от провайдеров проверяются на доступность по приоритету (distance) — в случае проблем с приоритетным провайдером автоматически происходит переключение на резерв. Решение простое, не самое надежное, но, как правило, достаточное при типичных проблемах сетей в частном секторе — обрывы кабелей/отсутствие электропитания.
Далее хотелось бы рассказать, зачем же это все, собственно, затевалось и какой получился результат. Для каждой группы задач была установлена отдельная виртуальная машина, а именно:
1. Основная рабочая система на базе Windows 7, та самая, с трудом и заботой перенесенная со славно поработавшего ноутбука.
2. Отдельная система для ведения финансового учета и проведения переводов — так же, впрочем, перенесенная с нетбука.
3. ОС с софтом для видеонаблюдения. Хотя полностью независимые системы и имеют свои преимущества — но полугодовой опыт использования виртуальной машины для этих целей показал отличную надежность такого решения. Видеонаблюдение было построено на базе камер Hikvision и бесплатного софт-сервера от этого же производителя.
4. Сетевое хранилище для медиаконтента (FreeNAS) — в основном для удобного обмена файлами между устройствами внутри локальной сети и просмотра на фото/видео на телевизоре.
5. Unix сервер, Debian/Ubuntu, без GUI. Как же без простой, безотказной системы под рукой — собрать статистику и вывести показания датчиков на веб-сервер, перекодировать видео с помощью ffmpeg, протестировать скрипты, и т.д.
6. Бонусы — однажды в экстренной ситуации пришлось даже спасать крупный сайт, вытаскивая контент из проблемного рейда, на лету завернув его в виртуальную машину и переместив на временный сервер.
Для взаимодействия с виртуальной средой установлен ПК с 23» монитором, на котором есть относительно мощная видеокарта для видео/игр, подключение к машинам происходит по RDP либо SSH. Если уж совсем лениво — то с ноутбука, лежа на диване.
После всех настроек, проб и ошибок, наконец-то можно сказать что все работает, как и было запланировано! Казалось бы, стольким мелочам было уделено внимание — но в сумме это дало очень много выигранного времени и средств, а именно на включения, выключения, замены, контроль всего потенциального парка домашних устройств.Теперь можно больше сконцентрироваться на основной деятельности, не переживая об отключениях электричества, падающих, забытых, украденных ноутбуках, посыпавшихся жестких дисках и прочих сюрпризах. Надеюсь что мой опыт будет интересен и, возможно, кого-то так же мотивирует применить свои профессиональные знания для обустройства рабочего места на дому!
Источник