История этого проекта началась в 2017 году, тогда я углубился в работу с NodeJS ещё и ASP.NET Core хотелось попробовать. Но использовать свой рабочий ноутбук в качестве тестового сервера с не хотелось, так как он был достаточно шумным(а хотелось возможность работы сервера 24/7), а арендовать сервер было как-то не спортивно, да и денег было жалко на PET-проекты. Изначально я планировал сделать сервер на базе старого ПК(который завалялся на полках у родителей), но шум производимый этим компьютером был достаточно сильным, чтобы мешать ночью спать. Всё поменялось когда мне подарили Raspberry Pi 2 Model B.
После того как наигрался с различными модулями для малинки, пришла в голову идея что данного микрокомпьютера будет достаточно для запуска миниатюрных серверных приложений. А если расширить его возможности благодаря внешним USB устройствам – получится вполне рабочий аппарат с интересными характеристиками. Ещё одним приемуществом будет компактность и достаточно низкий уровнь шума(если использовать только жесткий диск)
В качестве основы было взято:
Raspberry Pi 2 Model B(4-x ядерный ARM процессор, 1GB RAM)
Модем от компании Djunce(на базе ZTE MF170)
Корпус от роутера Asus RT-G32
Жесткий диск 2.5 Hitachi 500GB 3Gb/s
Блок питания от роутера на 10W
Micro SD card 16Gb class 10
Ubuntu Core
Благодаря мобильному процессору — получилось обойтись без активного охлаждения, но жесткий диск создавал небольшой шум во время работы(записи и чтения, после чего переходил в режим сна). Питание для жесткого диска было взято из блока питания, так как требовалось большая мощность, чем выдавала “малинка”.
Удивительно, но эти комплектующие, почти идеально, помещаются в коробку от старенького роутера Asus. Пришлось только немного увеличить отверстия для USB портов и разъема для питания.
Для создания сервиса по отправки СМС, был подключён модуль ZTE, со стандартными драйверами. Никаких танцев с бубном не было.
Большинство npm пакетов, которые использовались в серверных приложений, были доступны для работы на процессорах ARM32. Но всё-же иногда приходилось искать альтернативные библиотеки, что было совсем не приятно.
.Net Core не удалось запустить и после нескольких попыток стало понятно что это займёт намного больше времени чем выполнение npm install на этом же устройства(поверьте на установку пакетов уходит вечность). Зато mongoDB и Nginx — встали из коробки и работали без каких-либо нареканий(кроме скорости записи данных в базу данных).
В итоге устройство проработало около полу года. За это время удалось перепробовать множество разных программ(в числе из них plex сервер, git сервер и т.д.). Но были и критичные проблемы такие как медленная скорость работы и регулярные «отвалы» microSD карты памяти, что постоянно требовало ручной перезагрузки устройства.
Резюмирую
Преимущества:
Миниатюрный ПК с Linux, SSH и другими прелестями
Почти бесшумная работа
Большая комьюнити готовая поддержать и дать советы
Недостатки:
Жесткий диск работает через USB-порт, который совмещён с LAN-портом посредством USB-hub’а. Из-за этого скорость обмена данными замедляется
Расшифровка/шифрование HTTPS трафика происходит очень медленно на данном ARM процессоре. Возможно это происходит из-за настройки программного обеспечения, но этот процесс ощутим
Некоторые библиотеки не имеют альтернатив под архитектуру ARM
Перегрев процессора, из-за температуры от работы жесткого диска и самого процессора. Эта проблема может с легкостью решиться с помощью радиатора
Нестабильная работа SD карты
Стоимость этого проекта
Итого мне это всё обошлось где-то в 50 USD(“малинка”, б/у жесткий диск), с учётом того что некоторые комплектующие были дома. Конечно для удалённого доступа арендовал выделенный IP-адрес – 0.8 USD/месяц
Show must go on
Хоть и не удалось найти идеальное решение на тот момент времени, я продолжал экспериментировать с различными версиями микрокомпьютеров и спустя несколько лет нашел ещё одно решение. Это решение намного мощнее, быстрее и тише. Об этом решении пойдёт речь в следующем посте.
Спасибо за внимание. И удачных вам экспериментов.
Комментарии (30)
horodchukanton
29.01.2022 00:25Тоже держу домашний сервер на raspberry. Много намучился с 3B+ (перегрев и проблемы с памятью), после покупки 4B на 8Gb с металлическим корпусом осталась только одна - не знаю чем его занять (сейчас там торренты, Plex, Home Assistant, Homebridge, ESPHome, MQTT, NodeRed и Pihole). Для вот этих ширпотребных задач домашнего сервера подходит идеально, оригинального БП хватает еще и на 2.5" USB HDD
Относительно проблем с IO microSD карты - у 4B есть полноценные USB 3.0 порты (с отдельной PCI Express шиной), можно воткнуть SSD или m.2 через переходник.stalko23 Автор
29.01.2022 00:30Вот это как раз тема моей следующей статьи. По поводу чем занять как раз опишу и некоторые особенности работы такого сервера.
По поводу PCI express шины есть нюанс, его потенциал не возможно раскрыть благодаря порту USB 3.0. В итоге максимальная скорость даже SSD NWMe будет ограниченна всё тем же интерыейсом и будет выдовать около 300 МБит/с. В любом случае это лучше чем SD карта в плане скорости чтения/записи особенно радомного и небольших файлов.
Подскажи а какую систему используешь? Стандартную - Raspbian?
horodchukanton
29.01.2022 01:44Да, стандартный Raspbian Lite.
stalko23 Автор
31.01.2022 11:50Советую попробовать Ubuntu ARM64. Это откроет возможности связанные с использованием различных докер контейнеров, которые есть исключительно под ARM64. Но будут и некоторые ограничения.
chukov
29.01.2022 12:01Мне кажется, намного удобней и надежней получить виртуалку Oracle Always Free. Намного бесшумнее и производительнее.
fshp
29.01.2022 12:14Пробовал получить, на последнем этапе привязывается карта, а затем "ой что-то сломалось, но мы не скажем вам что". И есть куча комментариев в соседних статьях, где людям блочили аккаунты без предупреждений и объяснений.
stalko23 Автор
29.01.2022 12:53Я пользовался бесплатными web-сервисами Azure. Это было удобно и быстро, но слишком много ограничений вплоть до лимита по аптайму в месяц(кажется до 200часов в месяц, но это не точно). Опять таки давали не виртуалку, а сервис - что такжн было не удобно в плане возможностей в использовании разного ПО.
nibb13
30.01.2022 19:42Хо-хо, вот так джекпот!.. Тёзка, коллега, единомышленник-техноманьяк, да ещё и одессит!
Оставлю ссылку на свой пост по теме, не сочтите за излишнюю саморекламу.
Как раз сейчас "переезжаем" с роутера на RPi 2 model b. 99% переезда завершено, осталось чуть-чуть скрипты поправить под новое окружение.Буду счастлив пересечься в оффлайне. Наше "логово" в центре, Олеши, 10.
Техноманьячная тусовка собирается довольно часто, по вечерам.stalko23 Автор
31.01.2022 11:55Шалом! Вот это совпадение. С удовольствие почитал статью и буду рад встречи. По поводу RPi2 model b - всё-таки переживаю что вашему проекту это может не подойти и начнуться бессоные ночи. micro SD карта, с которой будет происходит загрузка системы, достаточно капризна(в отличии от флеш памяти того же роутера). Что приведёт к зависаниям или же перезагрузкам.
Предлагаю лично связаться, может найдём решение по лучше.
maxzabl
Intel NUC / Gigabyte Brix / etc ?
stalko23 Автор
Хорошие варианты, но это было бы слишком просто. Да и шума в любом случае не избежать(хотя соглашусь что его будет намного тише обычного ПК). Честно говоря были такие идеи чтобы купить Intel nuc( подержанный - дабы съекономить), но цены на них казались слишком высокими.
Fox_exe
Любой из сотен китайцев на Celeron J1900 и подобных - тут вам и пассивное охлаждение и компактный размер (Pico-ITX) и ценник в пределах 10т.р. Есть варианты без корпуса (Если есть 3D принтер - самый идеальный вариант для создания кастомного сервера под любые нужды).
Да и потребление платки с "Селероном", как правило, не первышается 15-20W.
stalko23 Автор
Это звучит интересно. Здесь тоже не ощущаю каких то сложностей. Но, чисто для того чтобы понять лучше ли моя новая сборка китайского миниПК - попробую провести тесты.
Может есть какие-то рекомендации в какую сторону(производителя) стоит посмотреть? Главное чтобы это было не дорого(до 100$) и тихо(с пассивным охлаждением).
Fox_exe
Да они все штампуются на одних и техже заводах и, зачастую, представляют из себя копии референсного дизайна платы с незначительными откланениями.
Главный плюс таких железок - это "полноценный" процессор x86/x64, что позволяет запустить на нем практически что угодно. Плюс возможность дальнейшего апгрейда: Нарастить оперативку, подключить что-то по полноценному USB (Или даже usb-3.0), NVME, опять-же, можно поставить в некоторых моделях. Или расширить через него кол-во SATA портов и собрать NAS на 6+ дисков.
Есть даже очень компактные клоны NUC'ов, полноразмерным сокетом, позволяющим менять даже процессор (Купить Celeron, со временем проапгрейдить до Core i3-5-7)
Ну а Raspberry - это, всёже, больше про GPIO и всякие девайсы с подключением по i2c/spi/uart/и т.д.
stalko23 Автор
Наличие pci-e шины для подключение NVMe - очень радует, его потенциал должен с легкостью сгладить работу с npm пакетами и другой мелочевкой. Вроде даже цена сейчас близка к накопителям с SATA интерфейсом. Попробую подискать что-то подобное.
Мне в Raspberry нравится конкретно ARM процессор. Да, именно из-за него множество софта не подходит(особенно больно работать с кодированием/декодированием видео). Но теплопакет и энергопотреблене при этом очень радует. А тут ещё и Apple стимулирует рынок на переход с x86/x64 на ARM.
Jury_78
Можно еще рассмотреть б/у Тонкие клиенты - это сразу БП, корпус и много USB.
stalko23 Автор
Даже не думал в эту сторону. У них, наверно, на базе стразу установлен linux?
Ещё они должны быть готовы работать 24/7. Но не уверен что характеристику(ЦП, Память и т.д) у них будут приятные.
Jury_78
ОС у них там огрызок, только что б грузить с сервера. ЦП и память разные бывают. Можно найти вполне годные.
Lopar
Шум? Его нет. Цена: $175, но это самый-самый новый, купленный в декабре.
stalko23 Автор
А что при этом у него за 175$ внутри? Я так понял что некоторые модели продаются даже без CPU/RAM/HDD - пустишка, которую самому нужно укомплектовать.
ximik666
Брал за 6.000 рублей год назад б/у.
Intel Nuc NUC6CAYH
Celeron J3455 (4 ядра)
SSD SmartBuy Ignition PLUS 60 GB
4 Gb памяти (KVR16LS11/4 4GB 1Rx8 512M x 64-Bit PC3L-12800)
Видео Intel HD Graphics 500
Стоит Ubuntu, Home Assistant, z2m, несколько web-приложений python, Klipper для 3д печати, Influxdb, Grafana, Elasticsearch. Никакого шума нет вообще, аптайм 240 дней, компактный. Не пожалел ни разу.
До этого стоял Raspberry Pi 3 Model. Замучился постоянными фризами и ребутами.
stalko23 Автор
Аптайм - радует, как и вариации софта. По поводу pi 3 - я так понимаю что система запускалась с microSD - это могло послужить проблемой с зависанием и потребностью в постоянных перезагрузках.
Lopar
На фото - пустышка. Но на деле есть модель за те же деньги с 4ГБ озу, 64 гб eMMC и даже Windows 10 Home лицензионной. Просто снимать его ради фотки грустно.
Модель: BOXNUC7CJYSAMN
stalko23 Автор
С такими характеристиками должно быть машина - зверь. Но у нас в Одессе таких экземпляров не встречал на барахолках/площадках. Может плохо искал, а может их разбирают как горячую кукурузу в сезон.
Попробую на днях ещё поискать, может найдётся что-то подходящие. После чего попробую сравнить со своей сборкой. Заодно и будет что обсудить)
fshp
Вот зверь https://forum.radxa.com/t/introduce-rock-5-model-b-arm-desktop-level-sbc/8361
stalko23 Автор
Спасибо! Вот это уже выгладит очень даже интересно. Попробую приобрести такую штуку
junari
ТВ бокс на s905x3 (4x cortex a53 1.9Ghz) с 4gb оперативы, гигабитным портом (без всяких USB), USB3, WIFI5, BT полгода назад обошелся в 30 долларов. Также в цену входит пульт, корпус, блок питания и шнур hdmi. Умеет грузиться с жесткого диска, подключенного по USB. Установлена бомжара, полгода полет нормальный. До этого был год бокс на s905x.
RPI избыточен для такого простого применения.
stalko23 Автор
Честно говоря, даже и не думал что такой вариант существует. Хотя, наверное, должен был придпологать, учитывая что количество ТВ боксов сейчас - достаточно разнообразно. А их характеристики должны быть схожи с характеристиками обычного ноутбука.