Кластер на распберри


Все началось с розыгрыша… розыгрыша улья между пчеловодами в обмен на забавную историю — для чего он им нужен.


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


Дальше фантазия нарисовала блэйды Raspberry вместо рамок с сотами, но оказалось что такое решение уже существует (на фото выше).


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


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


Собственно об этом и повествует моя 13-я статья на Хабре.


Расклад по стоимости хостинга в Украине таков — за 30$ в год можно получить бесплатную регистрацию доменного имени и веб-сервер с 4Гб виртуального диска.


Так чтобы привязать эти цифры применительно к моей задаче — даже если писать результаты преобразования Фурье четыре раза в час, это выйдет около килобайта.


В итоге, база в 4ГБ сможет содержать информацию о 400 ульях за год.


Для начала вроде бы ок, но есть одно НО — не все пространство Вам отдадут под базу (обычно только четверть).


Если несколько увеличить аппетиты, ценник сразу переваливает за стодолларовую отметку — жирновато для бесплатного проекта.


Еще один малиновый кластер


Одним словом, тут уже жаба образует коалицию с тараканами и гуглят подобные вещи.


Тем более, что за сотку как раз можно приобрести четыре малинки.


Но господи, какой это гемор с ними возиться, что-то дотачивать и придумывать!


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


На самом деле, лет 15 назад уже имел дело с организацией хостинга веб-сервера на дому, поэтому в пробросе домена и IP проблем не вижу.


Так вот, мое решение задачи выбора платформы — материнская плата на базе двухъядерного Celeron J1800 2.4ГГц с TDP 10W, да хоть такая:



Упаковав все в корпус неттопа, я получил весьма компактную систему.


Сервер можно вертеть на SSD-диске, а бэкапить на классический HDD 2.5".


Дополнительный плюс — во многих неттопах используется оригинальная схема питания — "ноутбучный" БП и преобразователи внутри системника.


Вот так мы и подобрались к "солнечной" части повествования.


Нет, проблема не в установке UPS, даже самый маленький будет способен "тянуть" подобную систему часами, а в скрытом желании сделать автономный сервер, вообще не подключенный проводами (ага, тот самый улей в чистом поле ;-).


Солнечная батарея


В общем, солнечной батареи 100-110W должно быть вполне достаточно, в паре с аккумулятором от "Таврии" и контроллером заряда это послужит прекрасной альтернативой розетке.


Проблема интернета? Есть домашний интернет 100Мбит, да и 4G в Киеве валит дай бог каждому (вы-же не подумали что я и правда в поле все поставлю ;-)


Вопросов софта не касаюсь по двум причинам:


  1. Это тема отдельного холивара
  2. Да и выбирать собственно не придется — посмотреть, что использует хостер, к которому в итоге приду, и поставить то-же самое (из семейства Linux)

Одним словом, конфигурация сервера — Celeron J1800 2-core 2.4GHz, 4GB(2x2) DDR3 SO-DIMM, 32GB SSD-HD, 320GB HDD


А знаете что самое приятное в этой истории?


Бесплатный сыр! Все компоненты уже в наличии и их работоспособность/устойчивость проверена!


Надеюсь, что тринадцатая публикация в целом удалась!


И да, Lets Fight в комментариях!


С вам был электропчеловод Андрей.

Комментарии (28)


  1. mwambanatanga
    03.04.2019 11:58
    +1

    Вы бы организовали домашний хостиг для открытого проекта?
    А я так и хощу (хостю?) свои проекты — у себя под столом, на малюсеньком сервачке на базе Атома. Единственное неудобство: провайдер иногда (может, раз в год) меняет мой IP-адрес.


    1. kirilldzr
      03.04.2019 13:45
      +1

      Также использую дома сервера на OrangePiPC и CubieTruck


      Стойка
      image


      1. Showvars
        03.04.2019 15:52
        -1

        Интересное решение по размещению одноплатников в стойке. Сами сделали рэковую панель или такие есть в продаже?


        1. kirilldzr
          03.04.2019 16:30

          В продаже такого не видел. изготавливал сам.

          Панель
          image


      1. mwambanatanga
        04.04.2019 08:40
        +1

        Также использую дома сервера на OrangePiPC и CubieTruck
        Сорри за оффтоп, но очень уж интересно узнать, для каких целей может понадобиться держать дома стойку с десятками одноплатных компьютеров. Моделировать сеть? Разрабатывать что-то распределённое?


        1. kirilldzr
          05.04.2019 07:41
          +1

          использую для автоматизации и как веб сервера


      1. safari2012
        04.04.2019 14:39
        +1

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


  1. Keremet_2030
    03.04.2019 12:35
    +1

    Вы бы организовали домашний хостиНг для открытого проекта?

    Большинство провайдеров в Казахстане дают «Серый» IP после каждого реконнекта. Да, конечно можно DynDNS, но как-то…


  1. lebedinskiy
    03.04.2019 13:35

    Очень интересно увидеть всё в сборе, а особенно как и где всё это будет смонтировано, в помещении или на улице.
    Жду продолжения.


    1. gerasimenkoao Автор
      03.04.2019 13:57


      Открытый системник выглядит вот так, DVD только поменял на вторые два гига памяти — они нужнее.


      Монтаж будет "балконный" — верхний этаж, южная сторона, остекление-одинарное в смысле не стеклопакет или двойные окна — одинарное стекло в деревянных рамах.


      Батареи — пока гелевые 2x7.5А-Ч от электровелосипеда — не хочу кислотную у себя в мастерской (в которую превратил балкон) ставить.


      Солнечная батарейка — монокристалл, 110Вт, 18В, 5.8А в прыжке, контроллер заряда — китайский

      Два года гонял их вместе с автомобильной батареей 60Ач на даче


      Способ монтажа батареи — вертикальный — на раму (вместо шторки ;-)


      Контроллер обеспечивает ШИМ -заряд и отключение нагрузки при снижении напряжения батареи до порогового.
      Батареи допускают заряд током до 2.8А каждая, а они — в параллель.


  1. 0lom5zhdovdv
    03.04.2019 13:36
    +1

    Я бы хостил бы на мобильном телефоне. Днем заряжать от солнечной панели, а ночью-работать от своей батарейки


    1. ne_kotin
      03.04.2019 14:03
      +1

      Тогда нужен либо достаточно старый телефон с относительно честным Linux (Nokia N9, Nokia N900), либо готовьтесь, что батарейки больше чем на 10 часов хватать не будет: чтобы стабильно держать серверный сокет под Android приложению надо
      — попросить у пользователя разрешение на battery whitelisting
      — запланировать каждые 20 — 30 секунд дергать wake lock с флажком пробуждения (фактически — держать экран включенным постоянно), и желательно — отсылать keep-alive куда-нибудь, после чего отпускать wake lock

      в противном случае устройство впадает в doze — и привет. никак не достучаться, пока система не проснется на обслуживание.


      1. nikandr23
        03.04.2019 21:01

        у меня на телефоне стоит FTP сервер.
        на обычном самсунге андроидном.
        и он работает даже при выключенном экране (ВАУ!)


        1. ne_kotin
          04.04.2019 08:11
          +1

          «Обычный андроидный самсунг» — это очень информативно, конечно же. На «обычном андроидном Highscreen» с 7.0 на борту у меня кроме как указанным образом не получилось сделать — я портировал Tor-клиент на Java. Впадаем в Doze — и всё, перестраивать circuit.


          1. nafikovr
            04.04.2019 11:04

            дайте угадаю. там стоит «обычный медиатек»?


            1. ne_kotin
              04.04.2019 12:29

              Нет, не «обычный», а конкретный MT6737T. Но это неважно, потому что воспроизводится и на 6.0.1 с «обычным квалкоммом» 652-й модели. В общем, для стабильной работы приложения в качестве сетевого сервера после 4.4 надо приплясывать с бубном, и забыть про распространение через Google Play.


  1. r00tGER
    03.04.2019 14:17
    +1

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


  1. nafikovr
    03.04.2019 14:28
    +1

    ок. все это круто. но возьмем 100$, 400 ульев и год. это по 0.25$ в год на улей получается, и стоит оно заморочек? а если учитывать цену оборудования (не, у вас то оно есть, но редко под каждый новый проект железо лишнее дома валяется), то вообще смысл теряется.


  1. dedyshka
    03.04.2019 14:42
    +1

    ИМХО, то, что вы описали непонятное поделие на костылях.
    Вы собираетесь предоставлять некий сервис, а что будет когда у вас диск выпадет или материнка накроется или ещё чего?
    Из ваших расчётов за 30$ в год можно получить 1Гб БД «которая будет содержать информацию о 100 ульях за год». Я не знаю, конечно, масштабов пчеловодства на Украине, но 100 это не мало, как мне кажется, учитывая, что у вас пока, вообще, ни одного клиента нет.
    Другой вопрос, нужны ли все эти данные за год или можно их агрегировать понедельно/помесячно, например.
    Если же количество ваших «клиентов-ульев» перевалит за 100 проще взять второй сервер за 30$.
    Ну и при масштабе проекта 100+ ульев нужно монетизировать услугу (не ради денег, а ради развития инфраструктуры и сервиса).


  1. gerasimenkoao Автор
    03.04.2019 14:53

    За костыли — полностью согласен.

    Знаете, некоторые вещи действительно нужно и важно проговорить/написать, чтобы понять их недостатки.

    Но при этом, как оказалось, некоторые Хабровчане вполне даже освоили передвижение в «инвалидной коляске» ;-)

    Я просто не исключаю варианта конфигурации мониторинга отдельно взятой пасеки, когда все сходится на ту-же малинку и отдается для доступа только владельцу.


    1. dedyshka
      03.04.2019 15:18
      +2

      Я просто не исключаю варианта конфигурации мониторинга отдельно взятой пасеки, когда все сходится на ту-же малинку и отдается для доступа только владельцу.
      Ну, тут уж вы определитесь, что вы делаете — облачный сервис или оn-premise «умный улей».
      Пообщайтесь с пчеловодами, определите свою целевую аудиторию, какую её проблему вы пытаетесь решить. Может окажется, что им ни разу не сдался облачный сервис или наоборот, мало кто захочет ставить себе на пасеку коробку и обслуживать её.


    1. r00tGER
      03.04.2019 15:23
      +1

      Есть риск развести зоопарк конфигураций и потом утонуть в его сопровождении.

      Вариант «на пасеке может не быть интернета» плох тем, что нет возможности обновлять ваше ПО в малине. Обязательно будут хотелки, скорее всего вылезут косяки… Мотаться каждый раз на пасеку?
      А, раз есть интернет, то и малины достаточно только в режиме временного кеширующего буфера, на случай пропадения инета. Разграничение где чья пасека, уже делать на сервере. И все данные смотреть на центральном сервере.


      1. gerasimenkoao Автор
        03.04.2019 15:39

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

        Для такого варианта и ESP8266 пойдет, OTA поддерживается, кушает в разы меньше, одного мегабайта для временного пропадания связи — с головой


        1. r00tGER
          03.04.2019 16:18

          ESP — это 100 метров на открытой местности. Группы ульев, явно, могут быть разбросаны на большие расстояния. WiFi не лучшее решение для «последней мили» в таких условиях.


  1. Mishiko
    03.04.2019 15:55

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


  1. Orange11Sky
    04.04.2019 08:51

    По размеру и функциональности вот эта железяка выглядит многообещающе для такого проекта:image
    www.hardkernel.com/shop/odroid-h2


    1. gerasimenkoao Автор
      04.04.2019 09:03

      Да похоже, что путем недолгой полемики мы пришли к крайней ненадежности домашнего хостинга (ага, мой жил целый год и это с интернетом через телевизионный кабель от провайдера Воля-Киев).
      И прекратил существование только потому, что не взлетела тема той странички.


      Так вот, как раз для первого года подобная железяка — огонь, если покупать не надо, ибо 100$ перекрывают хотелки по хостингу у нормального провайдера.


      Да что и говорить, описанный в статье набор железа баксов на 300 тянет, но он уже есть.
      А на шару — и уксус-Ркацители ;-)


      1. nafikovr
        04.04.2019 11:16

        суть надежности в том, что на хостинге за 30$ вы получаете не только те самые 4Гб под свои задачи, но и некие гарантии.
        то есть вам организуют бэкапы, о которых вы не будете думать, пока не случится чего. в случае выхода из строя железа ваш сервер оперативно перенесут на другое, если повреждена схд, сделают это опять же из бэкапа.
        защиту от легких атак извне вам конечно же тоже предоставят.
        ну и удивлюсь, если у хостера не будет резервной линии интернета и электропитания. у нас тут в городе на днях один провайдер упал так, что у четверти города интернета не было несколько часов. знали бы вы сколько было бугурта на тему «работа всего офиса встала». никто не думает о последствиях даже таких не больших проблем, пока они не случаются.