Pull to refresh

Yet Another Домашний Сервер. Железо (часть 1)

Level of difficultyEasy
Reading time10 min
Views41K
Спойлер: я не Володя
Спойлер: я не Володя

На эту тему, наверное, написано самое большое количество статей на Хабре. Многие авторы делятся своим опытом в построении домашней системы, у всех разные вариации, разное железо, разная инфраструктура, разное ПО, разные стартовые позиции (время, опыт, финансы, желание) и главное - разные цели: кто-то хочет файлохранилище, кто-то хочет домашний хостинг сайтов, а кто-то хочет медиасервер. Кто-то хочет невероятную отказоустойчивость и безопасность, а кто-то хочет минимальное потребление, тишину и компактность и т.д.. Наверное, технари в определённый момент приходят к тому, что должны построить собственный домашний сервер. Думаю, это могло быть четвёртым пунктом к делам, которые человек должен сделать за свою жизнь, наряду с выращиванием сына, посадкой дерева и строительством дома.

Вот и я потихоньку пришёл к тому, чтобы сделать свой домашний сервер. Точнее, идея появилась ещё со школьных времён, но вот реализовать в каком-либо виде получилось только сейчас. И я бы хотел поделиться тем, что у меня получилось, с читателями Хабра, и ко всем написанным статьям на эту тему я готов добавить ещё одну, так как думаю что мой опыт может быть интересен. В любом случае - велком под кат, если заинтересовало.

Цель

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

  1. Файлохранилище с доступом из Интернета для себя и для своей семьи.

  2. Отвязка от сервисов корпораций (хотя бы частичная).

  3. Хостинг самописных приложений.

  4. Умный дом.

  5. Синхронизация данных на устройствах.

  6. Роутер.

На данный момент мне удалось добиться всего, кроме 4 и 6 пунктов (к умному дому хочу полноценно прийти уже в процессе постройки обычного, неумного дома, а от идеи роутера и домашнего сервера в одной коробке отказался, начитавшись советов в Интернете, но всё же готов и её попробовать в дальнейшем, но пока не горит).

Железо

Думать о собственном домашнем сервере я начал ещё лет 5 назад, и конечно же в первую очередь начал задумываться над тем, а на каком железе всё это может работать. За всё время планирования я рассматривал следующие варианты:

  1. Старый смартфон.

  2. VPS/VDS.

  3. Настольный ПК из старых комплектующих, найденных дома/на Авито.

  4. Настольный ПК из новых комплектующих.

  5. Одноплатный компьютер.

  6. Готовый NAS.

  7. SOHO.

  8. Amber PRO.

  9. Мини-ПК (неттоп).

Критерии, которые лично я ставил к готовому решению, перечисляю в порядке убывания важности для меня:

  1. Физический доступ к серверу.

  2. Распространённая платформа, которая поддерживает распространённое серверное open source ПО.

  3. Ресурсов хватает, чтобы запустить сервер Майнкрафт на 10 слотов (одновременных игроков).

  4. Качественная сборка.

  5. Компактность.

  6. Тишина при выполнении задач и минимальный нагрев.

  7. Доступность на рынке.

  8. Минимальное обслуживание.

  9. Отказоустойчивость

  10. Возможность модификации комплектующих.

Найти решение, которое удовлетворяло бы абсолютно все мои критерии - не получилось, но получилось найти наиболее близкое к идеалу. Забегу вперёд и скажу, что остановился на неттопе, ИМХО, для домашнего сервера это лучший вариант, который подошёл практически по всем параметрам. Но позвольте рассказать о самом пути выбора, так как если вы сейчас в поиске и ваши критерии отличаются от моих, то, возможно, один из отвергнутых мной вариантов подойдёт вам.

Старый смартфон на Android

Конечно, не самое презентабельное решение
Конечно, не самое презентабельное решение

Очень специфический вариант, но и такие гайды в сети можно найти (вот, например, и вот). Есть умельцы, которые запускают полноценные веб сервера и даже используют смартфоны как файлохранилище.

Плюсы

Минусы

Максимально дёшево - просто достать из ящика старый телефон и запустить

На Android вряд ли можно найти большое количество ПО, которое может вам понадобиться на сервере

Это самое компактное решение из всех возможных

Ресурсов вряд ли хватит на что-то больше, чем хостить сайты

Точно не шумит

Если телефон сломается, то найти точно такой же будет сложно, а замена на другой телефон может оказаться тяжёлой задачей (разблокировать загрузчик, проверить, подойдёт ли ПО и т.д.), это новая исследовательская задача

Подключить жёсткие диски, а ещё и настроить RAID - нетривиальная задача, отказоустойчивость хромает

Выглядит кустарно: провода, переходники и прочее (но если обойтись только телефоном, то норм)

VPS/VDS

Реально все ваши данные будут находиться примерно вот в такой стойке в дата-центре
Реально все ваши данные будут находиться примерно вот в такой стойке в дата-центре

Плюсы

Минусы

Не нужно обслуживать железо

Нет физического доступа к железу

Ресурсов столько, насколько готовы платить, ограничений нет

Требует постоянных денежных взносов (но сейчас есть решения, когда вы можете арендовать сервер единожды за крупную сумму и пользоваться им пожизненно)

Я вас обманул, вот - самое компактное решение, оно вообще не занимает места дома и не шумит

Провайдер может запрещать устанавливать некоторое ПО (например, игровой сервер Майнкрафт)

Настраивать RAID 1 не нужно - это должен делать за вас ваш провайдер и заботиться о том, чтобы данные не пропали

По факту данные находятся не у вас, а у провайдера

Отказоустойчивость - скорее всего провайдер намного лучше вас сможет обеспечить работоспособность сервера 24/7, это всё-таки его работа

На самом деле, это очень хороший вариант и если перечисленные минусы не кажутся такими уж и страшными, то аренда отдельного VPS/VDS для домашнего сервера - замечательное решение. Но к сожалению для меня это серьёзные недостатки, с которыми я не смог смириться.

Настольный ПК из старых комплектующих, найденных дома/на Авито

То, как конечное решение будет выглядеть, зависит только от вас
То, как конечное решение будет выглядеть, зависит только от вас

Многие начинают с этого и на этом и останавливаются, так как это самое гибкое и при этом дешёвое решение. Я бы может быть тоже остановился на этом варианте, но к сожалению у меня не было времени, умения и желания собирать сервер своими руками, соответственно качество того, что я сделаю было бы под большим вопросом. По вопросу компактности - это точно не компактное решение, (представьте, чаще всего получается обычный настольный компьютер) но если постараться собрать на материнской плате Mini-ITX, то может получиться очень даже ничего. Проблема в том, что на рынке таких плат не так уж и много (или я плохо искал) и всегда есть риск в собственной сборке завязаться на какой-то определённый тип комплектующих, которые в дальнейшем могут перестать производиться и в дальнейшем при поломке есть шанс не найти их в продаже. Но опять же, всё зависит от того, как соберёте. Я никогда хорошо в железе не разбирался, поэтому собирать из подручных средств казалось для меня сомнительной идеей.

Плюсы

Минусы

Это может оказаться крайне дёшево

То, как будет собрано - полностью зависит от вас и от выбранных комплектующих.

x86-64 - популярная платформа, куда можно будет установить практически любое серверное ПО, которое вы захотите

Вряд ли решение получится компактным

ОЗУ, ПЗУ, процессор могут обойтись сильно дешевле, чем в других решениях (а иногда и бесплатно), поэтому ресурсов может быть очень много

То, насколько будет тихим сервер - полностью зависит от вас, но пассивное охлаждение - дорого, а если лишить его вентиляторов - возможен тротлинг

Модифицируйте и обновляйте железо сколько угодно

Скорее всего, обслуживать его вам придётся частенько, чаще, чем все остальные варианты

Настольный ПК из новых комплектующих

Фотографии - просто примеры, никакого подобного решения я не собирал
Фотографии - просто примеры, никакого подобного решения я не собирал

Пытался самостоятельно подобрать комплектующие, используя конструктор на сайте магазина DNS. К сожалению, получившаяся сборка канула в лету, но по памяти я примерно могу рассказать, что у меня получилось.

Принципиально искал материнскую плату mini-ITX, чтобы сервер не получился размером с домашний компьютер. Такие платы обычно идут с несъёмным процессором, не так уж много корпусов и других комплектующих. Самая минимальная сборка вышла у меня примерно на 20 тысяч рублей (это года 2-3 назад). Решил отказаться, так как уверенности в том, что это лучшее решение - не было.

Плюсы

Минусы

Любое популярное x86-64 ПО, ограничений нет

Может оказаться не дешёво, но всё зависит от ваших умений. Лично мне комфортно уместиться до 30 тысяч не получилось

Это достаточно компактное решение (если не кустарить ИБП, RAID и т.д.)

Вы также имеете возможность менять комплектующие, но в моём случае условие mini-ITX создавало сильные ограничения

В принципе, этот вариант не сильно отличается от предыдущего, поэтому расписывать его особо смысла нет.

Одноплатный компьютер

Raspberry Pi 4B
Raspberry Pi 4B

Наконец-то я подошёл к варианту, который реализовал самостоятельно и про который мне точно есть что сказать. Raspberry Pi 4B+ с 2GB RAM мне подарили коллеги на День Рождения. На тот момент такая штучка без дополнительных вещей (HDMI, Ethernet кабель, MicroSD, кейс) стоила тысяч 5. Сейчас, конечно, из-за проблем с доступностью цена подскочила до 15 тысяч. И конечно же первое, что я хотел попробовать - это обкатать на ней идею домашнего сервера. И я был бы счастлив, если бы она покрыла все мои потребности, но (спойлер), к сожалению, нет.

К малинке я дополнительно купил HDD 2.5 на 2TB, чтобы хранить на нём все данные, к жёсткому диску купил кейс и переходник SATA -> USB-A. Также мне коллега подогнал железный кейс для малинки для отвода тепла, так как малинка нехило нагревается при работе.

За всё время пользования я реализовал 2 варианта:

  1. OpenWRT + Docker + Docker compose

  2. Ubuntu + Docker + Docker compose

Изначально попробовал OpenWRT. Очень манила идея роутер+сервер в одном флаконе. К сожалению, у меня не получилось настроить Wi-Fi 5 GHz, пришлось пользоваться 2.4, количество доступных пакетов в прошивке для OpenWRT на ARM сильно ограничено. Скорость работы с поднятыми сервисами оставляла желать лучшего (я не замерял, но работать было некомфортно).

Когда я понял, что мне не хватает набора доступных приложений в OpenWRT на ARM, я решил перейти на более привычное для себя решение - Ubuntu Server. Здесь всё оказалось намного проще, я написал docker-compose файл и через него запускал все сервисы. Реализовывать работу сервера как роутера не стал, а просто подключил малинку к уже существующей домашней Wi-Fi сети.

Главная проблема, с которой я столкнулся - это медленная работа Nextcloud. Что действительно было причиной - я не знаю. Искал в Интернете по запросу медленного соединения, нашёл информацию, что в малинке сеть работает через USB-шину, а значит одновременная работа подключённого жёсткого диска и запросов будет проходить довольно медленно, но также нашёл информацию, что эту проблему в малинке 4 модели исправили. Возможно, бутылочным горлышком был процессор, но в любом случае я не искал решения этой проблемы, так как оперативной памяти мне также не хватало. Даже простого подключения по SSH можно было ожидать около минуты, а задержка при вводе команд могла свести с ума. И да, сервер Майнкрафт запустить можно будет, но играть будет не очень приятно.

Плюсы

Минусы

Это очень дёшево (во всяком случае, на тот момент)

Платформа ARM накладывает свои ограничения

Малинку можно купить практически везде

Ресурсов крайне мало

GPIO - открываются новые возможности

Сборка из малинки и жёстких дисков выглядит кустарно

Компактный и тихий

На зато из малинки можно собрать по-настоящему компактный сервер. В Интернете нашёл обвязки и кейсы к малинке, которые позволяют подключить и комфортно разместить два HDD 2.5, добавить кулер и UPS. Подобные решения можно посмотреть здесь.

Готовый NAS

Вот такой примерно рецепт усреднённый
Вот такой примерно рецепт усреднённый

NAS - тоже очень популярный вариант. Здорово, что ты покупаешь сразу готовое рабочее решение. Хардварный RAID - это вообще огонь. Но тоже рассматривать не стал, так как хорошие варианты стоят крайне дорого.

Плюсы

Минусы

Готовое решение из коробки

Жалко, что платишь деньги за ПО и синхронизацию, а по факту всё делаешь под себя и превращаешь NAS ещё и в хостинг

Хорошая сборка, так как сделали это за нас

Если хочется много RAM и классный процессор - придётся сильно много заплатить

Хорошая отказоустойчивость, особенно если добавить ИБП

Массивный

Минимальное обслуживание

SOHO

Ящичек
Ящичек

SOHO - расшифровывается как Small Office/Home Office, то есть сервер для маленького офиса или для домашнего использования. По описанию кажется, что это именно та штука, которая на самом деле нам нужна. И да, это идеальный вариант, но основные минусы - стоимость и доступность. Самый популярный вариант - это HP MicroServer (тот, что на картинке). В России таких было очень много, так что такую штуку без труда можно найти на вторичном рынке, но вот если вы хотите новую - придётся заказывать из-за рубежа (если получится) по высоким ценам и ещё немало платить за доставку. Так что этот вариант я тоже отклонил.

Плюсы

Минусы

Готовое решение

Многие функции, за которые мы платим, вряд ли будут нужны

Его точно можно назвать отказустойчивым

Не купить в ближайшем магазине

Высокая производительность

Дорого

Некомпактный (но компактнее обычного настольного ПК)

Amber PRO

Напоминает умную колонку
Напоминает умную колонку

Эту штуку я нашёл случайно. Она мне понравилась тем, что точно создана для тех вещей, которые я и хотел. В одном флаконе это: роутер, файлохранилище и домашний сервер. Всё ПО уже установлено и с ним не нужно возиться. Можно заказать сразу с двумя жёсткими дисками для настройки программного RAID. Но есть пара важных для меня минусов: ОЗУ - 2 GB и проприетарное ПО. Проблема с ПО в том, что если что-то не будет работать, то вряд ли я смогу починить это самостоятельно, а помощь от зарубежной компании вряд ли смогу получить оперативно. В этом случае я больше люблю надеятся на собственные силы и на Интернет.

Amber Pro найти можно здесь.

Плюсы

Минусы

Максимально готовое решение

Всего 2 GB ОЗУ без возможности расширить

Красиво выглядит

Проприетарное ПО

Приемлимая цена (хотя не за такие характеристики)

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

Компактно

Минимальное обслуживание

Мини ПК (неттоп)

Minisforum EliteMini HM80
Minisforum EliteMini HM80

Тот вариант, на котором я остановился. Изначально неттопы точно не подходят под те цели, которые передо мной стояли. Такие машины обычно ставятся домой или в офис как персональные ПК, занимая при этом минимум места и не имея большой производительности. Но держим в голове следующие моменты: на домашний сервер хочется потратить минимум места, высокая производительность - это хорошо, но Cyberpunk запускать на нём не надо и нейронки гонять тоже (хотя может и надо, но изначально для этого не рассматривалось). Я просмотрел кучу моделей (особенно привлекали Intel NUC), но остановился на Minisforum, в основном по той причине, что у них есть модели, в которые можно поместить два HDD 2.5 и подключить их по нормальной SATA. Это в итоге и сыграло решающую роль.

На картинке изображён Minisforum HM80, но для себя я приобрёл Minisforum EliteMini HM50 (потому что на AliExpress не нашёл HM80 и не устраивала цена HM90). Во внешнем виде отличия у них минимальны. Сейчас неттопы Minisforym можно свободно купить на Ozon, Wildberries, AliExpress и на официальном сайте. Правда на Ozon и Wildberries они стабильно на 5-10 тысяч дороже. С официального сайта заказывать не решился, так как доставки в Россию нет, а оформлять почтовый адрес в США и делать переотправку не хотелось, так как реальная конечная цена оказалась бы неизвестной, а сервисы, которые всё делают за тебя берут наценку больше, чем наценка на AliExpress. Так что решил просто заказать на AliExpress.

Внутренности
Внутренности

По системных характеристикам:

  • CPU: AMD Ryzen 5 4500U

  • RAM: 16GB

  • SSD: 512GB

Жёстких дисков в комплекте не было, но я использовал тот, который раннее использовался для сервера на Raspberry Pi: Toshiba 2TB HDWL120UZSVA

HDD
HDD

Пока что жёсткий диск у меня один, но позже хочу купить такой же второй, чтобы сделать RAID 1 массив. Несмотря на то, что в корпусе есть специальный отдел для двух HDD 2.5, мой жёсткий диск поставился туго. Такое ощущение, что быть его в корпусе неттопа в принципе не должно. Вот так выглядит установка жёстких дисков. В общей сумме у меня вышло около 37 тысяч (точные подсчёты не вёл). Это не дёшево, но все мои потребности покрывает с головой.

Пользуюсь сервером уже около недели и не могу нарадоваться скорости работы и скорости доступа к данным. А главное - он не греется и совершенно не шумит.

Вот так это выглядит у меня. Сравните с размером роутера Asus RT-N11P
Вот так это выглядит у меня. Сравните с размером роутера Asus RT-N11P

Подключён напрямую Ethernet кабелем к роутеру, дабы не забивать Wi-Fi канал.

И да, на нём я спокойно могу держать сервер Minecraft. В настройках игры ставлю максимальную прорисовку и проблем не происходит совсем. Сейчас у меня запущенно параллельно 12 сервисов и в сумме они занимают в среднем около 10% CPU и 30% RAM (4-5 GB). Больше всего поджирает, конечно же, Майнкрафт, без него RAM съедаться будет около 2-4 GB.

Плюсы

Минусы

Компактное решение

Не купить в свободном доступе

Хорошая сборка (потому что не самостоятельно собирал)

Точно потребует минимального обслуживания

Приятный внешний вид

Любое x86-64 ПО на выбор

Возможность заменить жёсткие диски, SSD, RAM

Итоги

Мог ли я собрать более качественное и дешёвое решение? Определённо, да. Как минимум я находил на AliExpress неттопы сильно дешевле и с возможностью установить два жёстких диска. Но обычно такие решения даже непонятно какая компания делает и очень тяжело вообще о них найти информацию, кроме как на странице продавца. А если бы я заморочился с собственной сборкой на основе Mini-ITX - было бы вообще замечательно. Но дело в том, что Minisforum сделали это уже за меня и мне не пришлось тратить на это силы и время. И главное, в самосборе я был бы завязан на определённые комплектующие, доступность которых могла бы стоять под вопросом. В моём решение стоит под вопросом только доступность самих неттопов (и то есть параллельный импорт).

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

Tags:
Hubs:
Total votes 20: ↑16 and ↓4+13
Comments98

Articles