В мае у нас появились новые серверы на базе Raspberry Pi 4. И ребята из Selectel Community (это такой неформальный телеграм-чат компании) часто спрашивали, как нам вообще удалось интегрировать их в систему автоматической сдачи. Спустя время мы окинули сделанное ретроспективным взором и готовы подробно ответить на этот вопрос.

Тема использования «малинок» в промышленных масштабах не нова — в сети можно найти множество публикаций на тему сборки вычислительных кластеров. Вначале они представляли собой самодельные фермы, где самым интересным была возможность добавить побольше плат или приспособить водяную систему охлаждения. Но с ростом интереса начали появляться уже готовые кронштейны для монтирования «малинок» в стандартную 19” стойку. Даже были попытки создать blade-варианты.

Но, несмотря на весь оптимизм в медиасфере, вопрос, удастся ли вообще интегрировать «малинки» в дата-центры Selectel, оставался открытым.

Общие требования к размещению в дата-центре


Чтобы понять, что же могло помешать, рассмотрим основные отличия «малинок» от «стандартных» серверов. Под «стандартными» подразумеваются серверы линейки Chipcore на базе десктопного железа.

Чтобы разместить сервер в дата-центре, он должен удовлетворять следующим требованиям:

  • Поддержка сетевых интерфейсов. Самое очевидное требование. Сервер должен быть доступен клиенту по «белому» IP-адресу. Обеспечивается Gigabit Ethernet портом.
  • Размещение в стойке. На время тестов мы использовали распечатанные на 3D-принтере салазки. На 1 монтажный юнит приходится 12 «малинок».
  • Удаленное управление питанием. По умолчанию питание происходит через предназначенный для этого порт USB Type-C, что дает только ручное управление.
    Но через 40-пиновый разъем можно подключить модуль PoE HAT. В таком случае управлять питанием удаленно можно через коммутатор, включая или отключая питание на порту.
  • Независимость от локальных дисковых устройств. Аренда выделенных серверов предполагает полный доступ клиента к железу. Более того, диски могут быть заменены по требованию. В этом случае они должны быть полностью очищены и не содержать дополнительных данных, а развертывание сервера не должно на них опираться.
  • Загрузка по сети (PXE). Самый непонятный и вызывающий вопросы пункт. Мы знали, что «малинки» поддерживают загрузку по PXE, но, как в действительности это работает, оставалось неизвестным.

На последнем пункте остановимся подробнее. Нужно учитывать, что Raspberry Pi относится к железу для встраиваемых систем. А на них процесс инициализации и загрузки системы заметно отличается от привычного.

Процесс загрузки «обычного» сервера


Для сравнения, вкратце рассмотрим, как происходит загрузка на «обычном» сервере.

  1. BIOS/UEFI. Система стартует с BIOS/UEFI, который инициализирует железо и передает управление первому устройству в списке загрузки. По умолчанию это первый диск в системе, но для загрузки по PXE первым выбирается нужный сетевой интерфейс. Важно, что BIOS/UEFI дает нам интерфейс для изменения этого списка и может его сохранять.
  2. NIC. После того, как сетевой интерфейс получил управление, он посылает в сеть широковещательный запрос DHCP, получает в ответе настройки TFTP (tftp-server-name и boot-file-name) и по ним загружает файл, которому передается управление.
  3. iPXE. В нашем случае мы возвращаем кастомизированный iPXE-загрузчик, который через параметр chain запрашивает iPXE-скрипт и получает сценарий загрузки сервера.
  4. Автоустановка / автозагрузка. В зависимости от выбора дистрибутива на базе шаблона генерируется уникальный сценарий (прежде всего данные подключения) автоустановки для конкретного сервера. После завершения автоустановки сценарий загрузки меняется, и iPXE в следующий раз получит другой шаблон загрузки. Загрузка через сетевой интерфейс позволяет нам гибко управлять загрузкой сервера, меняя только ответ сервера, с которого iPXE ожидает ответ.

Процесс загрузки «малинки»


Подробно процесс загрузки для Raspberry Pi 4 описан в официальной документации. Здесь же ограничимся деталями, важными в контексте сравнения.

  1. EEPROM. Старт «малинки» начинается с запуска прошивки из энергонезависимой микросхемы EEPROM. В сценарии она по умолчанию ищет файлы на /boot разделе SD-карты, необходимые для инициализации компонентов. В этом смысле ее можно сравнить с BIOS без графического интерфейса. Для изменения настроек и сценария загрузки (BOOT_ORDER) нужно полностью обновить файл загрузчика с применением опций из текстового файла и заново записать его в микросхему.
  2. Директория загрузки (/boot). По умолчанию загрузчик из EEPROM обращается к первому разделу SD-карты, где располагаются необходимые файлы для дальнейшей загрузки. Прежде всего это файл прошивки (firmware) для GPU, DTB-файлы (описание дерева устройств) и образ ядра kernel.img, из которого загружается операционная система. В установленной и загруженной системе этот раздел монтируется в /boot. Изменение опции BOOT_ORDER по сути меняет только устройство, с которого загрузчик ожидает получить файлы, но не их список.

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

Обновление EEPROM


Для обновления EEPROM нам нужна предустановленная система с утилитой vcgencmd. Получить ее мы можем, загрузив образ Raspberry Pi OS и раскатав его напрямую на SD-карту.

wget https://downloads.raspberrypi.org/raspios_lite_armhf/images/raspios_lite_armhf-2021-05-28/2021-05-07-raspios-buster-armhf-lite.zip

unzip -p 2021-05-07-raspios-buster-armhf-lite.zip | sudo dd of=/dev/sdX

Возвращаем SD-карту обратно в «малинку» и загружаемся с нее в операционную систему. Для входа по умолчанию используются логин и пароль pi / raspberry.

Здесь можно посмотреть текущие опции прошивки EEPROM:

pi@raspberrypi:~ $ vcgencmd bootloader_config
  BOOT_UART=0
  WAKE_ON_GPIO=1
  POWER_OFF_ON_HALT=0
  FREEZE_VERSION=0

Генерируем из файла прошивки файл конфигурации:

cp /lib/firmware/raspberrypi/bootloader/pieeprom-2019-11-18.bin new-pieeprom.bin

rpi-eeprom-config new-pieeprom.bin > bootconf.txt

В файле bootconf.txt необходимо изменить значение BOOT_ORDER для изменения порядка загрузки. Поскольку нас интересует загрузка по сети, сначала указываем загрузку по сети (2), затем — с SD-карты (1), и делать это нужно в цикле (f). Также можно указать максимальное количество попыток загрузки по сети:

BOOT_ORDER=0xf12
NET_BOOT_MAX_RETRIES=1

После подготовки bootconf.txt нужно применить настройки из него к файлу прошивки:

rpi-eeprom-config --out netboot-pieeprom.bin --config bootconf.txt new-pieeprom.bin

В конце записываем новый файл прошивки с нужными нам опциями в EEPROM:

sudo rpi-eeprom-update -d -f ./netboot-pieeprom.bin

Мы в Selectel любим одноплатники, так что собрали для вас еще подборку интересных статей на эту тему:



Загрузка «малинки» в PXE


После перезагрузки мы видим на экране монитора, что сервер начинает грузиться по сети. Одноплатник успешно получает адрес у DHCP-сервера и начинает запрашивать файлы с TFTP-сервера. Ошибка загрузки! Ведь мы еще не подготовили замену /boot директории на TFTP-сервере.

Для этого достаточно скопировать содержимое из директории /boot в установленной Raspberry Pi OS на удаленный TFTP-сервер. Например:

scp -r /boot/* root@tftp-server:/srv/tftp/

В нашем случае эти файлы лучше получить из папки /boot официального репозитория (альтернативная ссылка).

После такой подготовки «малинка» успешно начнет загрузку по сети, получит по TFTP-протоколу запрошенные файлы и загрузится в уже установленную систему.

Остановитесь для оценки происходящего: используя логи TFTP-сервера, внимательно просмотрите список файлов, которые «малинка» запрашивает по сети. Для лучшего понимания будем сверяться с документацией, поясняя только для минимально необходимого набора файлов.

RRQ from 10.51.228.22 filename 04f2ea0a/start4.elf
RRQ from 10.51.228.22 filename config.txt
RRQ from 10.51.228.22 filename start4.elf
RRQ from 10.51.228.22 filename fixup4.dat
RRQ from 10.51.228.22 filename recovery.elf
RRQ from 10.51.228.22 filename config.txt
RRQ from 10.51.228.22 filename dt-blob.bin
RRQ from 10.51.228.22 filename recovery.elf
RRQ from 10.51.228.22 filename config.txt
RRQ from 10.51.228.22 filename bootcfg.txt
RRQ from 10.51.228.22 filename bcm2711-rpi-4-b.dtb
RRQ from 10.51.228.22 filename overlays/overlay_map.dtb
RRQ from 10.51.228.22 filename overlays/rpi-poe.dtbo
RRQ from 10.51.228.22 filename config.txt
RRQ from 10.51.228.22 filename overlays/vc4-fkms-v3d.dtbo
RRQ from 10.51.228.22 filename cmdline.txt
RRQ from 10.51.228.22 filename recovery8.img
RRQ from 10.51.228.22 filename recovery8-32.img
RRQ from 10.51.228.22 filename recovery7l.img
RRQ from 10.51.228.22 filename recovery7.img
RRQ from 10.51.228.22 filename recovery.img
RRQ from 10.51.228.22 filename kernel8.img
RRQ from 10.51.228.22 filename kernel8-32.img
RRQ from 10.51.228.22 filename kernel7l.img
RRQ from 10.51.228.22 filename armstub8-32-gic.bin
RRQ from 10.51.228.22 filename kernel7l.img

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

start4.elf и fixup4.dat — блоб и линкер, необходимые для инициализации видеоядра, так как GPU инициализируется еще до CPU.

сonfig.txt — файл с пользовательскими параметрами, влияющими на поведение прошивки EEPROM и инициализацию железа. Если проводить аналогию между eeprom и bios, в файле хранятся все настройки, измененные пользователем через графическое меню. Активные значения можно посмотреть через утилиту vcgencmd.

bcm2711-rpi-4-b.dtb — базовый файл, описывающий дерево устройств (device tree binary) на плате. Вообще тема DTB-файлов (и DTBO из папки overlays/) достойна отдельной статьи. В нашем контексте ограничимся, что это дерево впоследствии передается ядру Linux.

kernel8.img и cmdline.txt — ядро Linux, с которого начинается загрузка операционной системы. Через файл cmdline.txt передаются дополнительные параметры ядра.

В нашем случае, когда мы скопировали директорию /boot из установленной ОС, мы скопировали и файл cmdline.txt. Если просмотреть его содержимое, становится понятно почему, загружаясь по сети, мы попадали в установленную на SD-карту операционную систему.

cat cmdline.txt

console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait dwc_otg.lpm_enable=0

Опция root, которая указывает на корневую файловую систему, ведет на второй раздел SD-карты с ранее установленной Raspberry Pi OS.

Итоги и дальнейшие планы


Мы разобрались, как именно происходит загрузка по сети у Raspberry Pi 4. Осталось придумать, что в описанной схеме заменит загрузчик iPXE, через который мы управляем загрузкой сервера.

Стоп. А так ли нужно искать замену iPXE? Может, каким-то образом загрузить «малинку» сразу в iPXE?

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

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


  1. Filex
    02.10.2021 11:38
    +30

    А фотографии малинок в стойке покажете?


    1. RiddickABSent
      02.10.2021 19:25
      +4

      Тоже ожидал в конце статьи..

      Плюсую за обновление с картинками.


    1. Krypt
      03.10.2021 05:08

      Судя по описанию и фото в статье — они используют вот этот блок:
      https://www.thingiverse.com/thing:4078710
      А вообще вот, видео об использовании кластера RPi в локальной сети:
      www.youtube.com/watch?v=LcuNc4jz-iU


      1. burlunder Автор
        04.10.2021 13:47

        Да, но нет.
        Указанный вами блок - использовался в первой партии на 10 штук, ещё когда это всё только тестировалось. Сейчас уже всё монтируется в готовый юнит по 12 штук. В этот раз не успели доделать нормальные фото как это выглядит в уже смонтированном виде, в следующей статье будет.


    1. Darksa
      23.10.2021 10:46

      Уже можно полюбоваться во второй части статьи habr.com/ru/company/selectel/blog/582576


  1. interprise
    02.10.2021 14:46
    +2

    Было бы хорошо провести тесты по производительности в сравнении с сопоставимым по цене vps. И немного смущает sd карта, насколько это надежно.


    1. Calc
      02.10.2021 15:09

      sd карта, насколько это надежно.

      Если с неё только читать и писать файлы по необходимости, то проблем нет
      Если забыть выключить лог, то блоки могут выгореть и за 2-4 недели. (тесты были на OpenWRT лет 8 назад, сейчас карточки могут быть и лучше)

      А так особых проблем нет.


      1. alexzen
        02.10.2021 15:31

        У меня дома стоит IP камера, уже 3.5 года круглосуточно пишет видео в FullHD на microSD 64 ГБ. Карта до сих пор прекрасно работает.


      1. Sergey_datex
        02.10.2021 17:09
        +5

        У современных флешек (SD в том числе) на памяти TLC/QLC время гарантированной сохранности данных 3 месяца, на практике нам на восстановление прут карты памяти возрастом полгода-полтора года очень часто, все с симптомами стекшего заряда. Так что носитель недолговечный даже в режиме чтения. Пруфы про 3 месяца в даташитах на энтерпрайз ссд/emmc и прочих индустриальных вещах, где принято честно писать характеристики.

        Старые флешки мелких емкостей (2 гига и около того) почти вечны - там был 2-bit MLC и он не подвержен существенному стеканию заряда.


        1. le2
          03.10.2021 01:49
          +1

          главная проблема должна быть всё же «софтверная». Пруф — айфоны и прочие нормальные работают долго. (мой айфон работает 8 лет. Один раз менял батарею). Там та же хрен-знает-сколькиуровневая NAND-флеш на 32ГБ, которую я забиваю периодически полностью.
          Раньше в процессорах (SoC) был контроллер NAND который программно-аппаратно подсчитывал контрольные суммы внешней памяти NAND. Сейчас от этого отказались и везде используют в телефонах и прочих железках eMMC. eMMC это NAND + чип отвечающий за контрольные суммы.
          SD-карты по смыслу тоже самое. Отличаются только транспортом. Новые стандарты A1 и A2 (А2 — пока еще нигде не поддерживается аппартно и смысла почти нет, хотя они, как правило, чуть быстрее, но дороже) — позволяют быстро оперировать мелкими блоками, когда старая SD-карта заточена на потоковую передачу, типа видеопотоков.

          Я провел домашнее тестирование на скорость работы и оперирование мелкими блоками. Kingston A1 — оказался фуфлом, это не A1. SanDisk Extreme A2 и SanDisk Extreme Plus A1 показали 56 МБ на запись и 80-90 на чтение
          eMMC — даёт вдвое большую скорость записи, но данные сходу я не смог найти.

          Да, есть «индустриальные версии» SD-карт, но, думаю, вся хитрость все же в контроллере и софте.


          1. Sergey_datex
            03.10.2021 12:32
            +2

            Во-первых - "ошибка выжившего". В айфонах, как и в андроидах память дохнет, и дохнет часто. Во-вторых, в айфонах еще со времен, кажись, 5ки используется не EMMC, а SSD на PCIe интерфейсе, соответственно контроллер поумней, и умеет в рефреш. Так что, пока ваш айфон включен (под питанием) - он сдохнет с меньшей вероятностью, чем если он будет лежать в столе выключенным (без шанса на рефреш стекших страниц).

            В SD, EMMC, USB рефреш почти никогда не используется, учитывая природу их использования - вероятность внезапного отключения питания, и простоту контроллеров. Поэтому на них стекание заряда проявляется в полный рост.

            На SSD low cost сегмента это тоже проявляется, ибо рефреша обычно нет в phison и из моих наблюдений в SMI безбуферных. А это - большинство дешевых SSD почти всех вендоров.

            Кстати, по поводу вашего айфона. 32 флешки что в них ставились - были 2-bit MLC чаще всего. Вы можете это посмотреть в том же 3u-Tools.


        1. mkll
          03.10.2021 16:38

          Стекание заряда происходит только если флэшка не запитана? Или под питанием тоже?


          1. Sergey_datex
            03.10.2021 19:46

            Оно происходит всегда. НО, если устройство под питанием И контроллер умеет в рефреш - он МОЖЕТ находить страницы с повышенным BER (подстекшие) и перезаписывать их в новые блоки. Рефрешить, короче. Если носитель лежит в столе без питания - такого шанса уже нет.

            Именно поэтому я считаю большой ошибкой факт появления официальных внешних SSD. Отличный способ разом потерять большой объем ценных данных


            1. mkll
              03.10.2021 20:36

              Понятно, спасибо.


  1. Disasm
    02.10.2021 17:23

    А требования "пользователь не должен иметь возможность запороть EEPROM/процесс загрузки" у вас нет?


    1. burlunder Автор
      04.10.2021 14:57

      На данный момент нет.

      Возможность заблокировать переписывание EEPROM есть, она описана в документации, но по ней же требуется небольшая модификация самой платы, а не только изменение конфигураци.

      В крайнем случае всё ещё остаётся возможность восстановления через файл recovery.bin. В статье это явно не обозначено, но EEPROM - это уже вторая стадия, а первая - ROM на SoC (можно свериться по bootflow), что даёт некоторую гарантию, что восстановить всё равно можно.


      1. Disasm
        05.10.2021 10:33
        +1

        Мне кажется, тут не столько возможность восстановления важна, сколько потенциальная возможность внедрить вредоносный код в процесс загрузки, о котором другие клиенты и знать не будут, особенно если этот код крутится на GPU.


        1. burlunder Автор
          10.10.2021 01:29

          Да, проблема понятна, и, в общем-то, не новая. Тут единственный вариант - это принудительно "обнулять" платформу перед сдачей клиенту, в этом месте как раз файл recovery.bin становится актуальным.


  1. Max-812
    02.10.2021 21:07
    +8

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


    1. burlunder Автор
      04.10.2021 15:04

      Ну, за клиентов сложно говорить, человеческая фантазия иногда преподносит сюрпризы.

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


  1. Krypt
    02.10.2021 22:00
    +2

    Для каких задач Pi может использоваться при хостинге в датацентре?
    Это не первый случай когда я слышу о ней в таком контексте, но как-то не слышал именно про практические применения


    1. DirectX
      02.10.2021 22:49

      Вполне адекватный вариант для работы телеграм-ботов и подобного.


      1. elfukado
        03.10.2021 07:30
        +1

        А в чём адекватность?

        Столько времени инженеров на ввод в эксплуатацию простой потребительской железки без нормальной корпоративной поддержки.

        Просто взять нормальный не самый новый сервер и будет несколько десятков vps аналогичной мощности. На нормальных дисках с raid, а не sd-карточках.

        Даже в голову не приходит, кому надо арендовать такое. Может автор статьи ответит.


        1. DGN
          09.10.2021 19:03
          +1

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


          1. elfukado
            12.10.2021 05:52

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

            У неё же весь смысл в личном владении. Маленькое энергопотребление, можно подключать всякие датчики, реле, маленький экранчик, кнопки всякие. А в датацентре все эти плюсы пропадают, остаётся только низкопроизводительная неотказоустойчивая железка.


            1. DGN
              12.10.2021 15:34

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


              1. elfukado
                12.10.2021 15:54

                Да кто ж спорит, но raspberry им зачем?

                Как-то странно предполагать, что человек, беспокоящийся об утечках памяти при виртуализации, будет арендовать raspberry за 500 рублей в месяц. И к нему защиту от DDoS 10 Мбит/с за 2550 рублей?


                1. DGN
                  13.10.2021 17:17

                  Я не знаю, но это и правда самый дешевый дедик. Можно спросить burlunder, какая часть установленных мощностей малинок распродана?


    1. nobodysu
      03.10.2021 17:13
      +1

      Что сразу приходит на ум — переносимость проектов 1 в 1.
      Еще может быть желание уверенности в полноценности потребления ресурсов — чтобы соседи по железу не мешали.
      Или отсутствие CPU side-channel'а от соседей, но тут клиентская база совсем маленькая.
      Так что думаю здесь скорее маркетинговые выгоды.


      1. CampoT1P
        06.10.2021 01:20

        Все эти проблемы потребителем решаются в пару галочек на aws/gcp. Мне кажется, что реальное обоснование необходимости иметь стойку с малинками в датацентре выглядит так:

        1) Потому что можем

        2) Это прикольно

        3) А потом еще и статью на хабре запилим


        1. nobodysu
          06.10.2021 01:43

          Прямо все интерфейсы будут присутствовать? Кеши одинаковые, и вести себя будут на самом деле идентично? Сильно сомневаюсь.
          А CPU side channel не фиксится наверняка, это цена скорости современных CPU.


          1. CampoT1P
            06.10.2021 16:23

            А CPU side channel не фиксится наверняка, это цена скорости современных CPU.

            При аренде выделенных инстансов проблема CPU side channel отсутствует. Да, малинка тоже может так применяться. Другой вопрос, стоит ли на малинке крутить что-то серьезней пет-проектов. А им секьюрность не особо важна.

            Прямо все интерфейсы будут присутствовать?

            Какие интерфейсы кроме сетевого и силового вам нужны от железки в датацентре?

            Кеши одинаковые, и вести себя будут на самом деле идентично? Сильно сомневаюсь.

            Делаете снапшот, разворачиваете его на идентичной машине - получаете одинаковые кеши и идентичное поведение.


  1. kasigor
    03.10.2021 09:23
    +1

    1. Как то не серьезно Raspberry Pi OS ставить на сервер. Почему не Ubuntu Server?

    2. Что мешает человеку купить и самому дома поставить? Зачем кому-то платить?


    1. dikey_0ficial
      03.10.2021 19:33
      +1

      К пункту 2. Ситуация: человек живёт в деревне, где во время грозы выключают, а интернет работает со скоростью 30 килобит в секунду. Есть задача, которую надо выполнять довольно долгое время и, желательно, со стабильным подключением к интернету, например, прокси, бот для telegram, едечасное выкладывание твитов с текстом "выпрями спину", хостинг маленького сайта с почтовым сервероми, тдтп


    1. AndreyHenneberg
      27.10.2021 21:09

      Соглашусь с первым: к сожалению, родная ОС RPi, как я неожиданно обнаружил, 32-битная и не выбирает всю мощность даже третьей «малинки», которую я как-то купил для экспериментов. Пока этого хватает, но в перспективе хочу поставить другой дистрибутив. К сожалению, других дистрибутивов, которые можно просто развернуть на карту и работать, не нашёл, а монитора с HDMI у меня пока нет.


  1. TRaMeLL
    03.10.2021 11:58

    Вопрос знатокам: нужно поднять OpenVPN сервер для сети с небольшим количеством рабочих мест (около 10-15), подойдет ли для это Raspberry Pi 4 или есть варианты более подходящие для такой задачи при сравнимой стоимости и габаритах?


    1. splastunov
      04.10.2021 12:16

      Как вариант нормальный VDS/VPS на линуксе или сразу с CHR/pfSense (в зависимости от предпочтений)


  1. kreo_OL
    03.10.2021 13:11

    А зачем?


    1. fortsev
      04.10.2021 12:33
      +1

      Создавая интересные проекты, они подогревают интерес к данным одноплатникам. Чем больше народу интересуется, тем больше комьюнити. И следовательно, платформа интенсивнее развивается


  1. NikaLapka
    04.10.2021 12:16

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

    Позвольте два вопроса: 1 - как обстоят дела со сроком жизни microSD флешки? 2 - малинки нужны только для рекламы? Ведь с точки зрения пользователя, намного выгоднее иметь возможность арендовать обычный VPS, но в микро размере, с 1\8 CPU, 128 Мб памяти и т.п. и за микро денежки, нежели дефолтные 5$.


    1. burlunder Автор
      04.10.2021 15:26

      1. Для нас это тоже вопрос. Мы, конечно, износ закладывали, но адекватно судить можно будет только после некоторого опыта эксплуатации.

      2. Маркетинг тоже имелся в виду. Но если бы решалась только эта задача, то не было бы необходимости настолько заморачиваться (насколько будет понятно по следующим статьям, сохраню интригу) с их интеграцией в автоматическую сдачу.
        С выгодой не так однозначно. В вашем сценарии лучше микро-vps, но если ресурсы виртуалки становятся сопоставимы с "малинкой", то уже не так однозначно.


  1. jobless
    04.10.2021 12:16

    А вы не рассматривали odroid-hc1 /& odroid-hc2 ?


    1. burlunder Автор
      04.10.2021 15:16

      Всё упирается в хоть какую-то поддержку PXE.

      Одноплатников всяких разных уже много, но вот информацию по поддержке PXE довольно сложно найти. Беглый поиск для ordorid-hc2, так чтобы не пришлось привязываться к SD-карте, ничего внятного по этой теме не показал.


      1. jobless
        04.10.2021 18:27

        так в том и дело, что модели hc 1/2 это как бы не про sd карту

        https://www.hardkernel.com/shop/odroid-hc1-home-cloud-one/


        1. burlunder Автор
          06.10.2021 15:20

          Поизучал подробнее, выглядит интересно. Хотя всё равно не очень понятно насколько она способна грузиться напрямую по сети, даже не смотря на наличие BIOS. Дальше уже вопрос экономической целесообразоности.


  1. hasu
    04.10.2021 12:16

    Wi-Fi на этих малинках вы отключили аппаратно или через config.txt?


    1. burlunder Автор
      04.10.2021 15:30

      Аппаратно. После установки операционной системы, она начинает грузится с /boot раздела на SD-карте, к которому у клиента есть полный доступ. Поэтому для клиента нет никакой проблемы отредактировать файл config.txt и внести туда активацию нужного оверлея.


      1. hasu
        05.10.2021 05:26

        А не поделитесь способом? Каким-то образом питание отключили или антенну на землю закоротили?


        1. burlunder Автор
          06.10.2021 15:20

          закоротили антену


  1. fortsev
    04.10.2021 12:16
    +2

    Сам использую Raspberry Pi 3+ для парочки телеграм ботов. Поставил на нее Node.js, скрипты добавил в автозапуск и все. Отличная штука. Дополнительно поставил вентилятор для активного охлаждения. Работает 24/7 уже пол года, пока полет нормальный. Я посчитал, что это будет заметно выгоднее VPS. Малинка в пике потребляет 10Вт (т.к. питание 5в и 2А), и это примерно 30-40 рублей в месяц за электричество. Нужно только найти место со более менее стабильной подачей электроэнергии и интернетом.


  1. AlexandreFrolov
    04.10.2021 13:09
    +1

    Использую Raspberry Pi 3+ в качестве шлюза онлайн-касс, но это на территории заказчика. С их помощью сделан доступ через OpenVPN в локальную сеть с сервера, размещенного в датацентре. И это самое недорогое решение, которое мне удалось придумать.

    По опыту раз в год приходится переформатировать или менять флеш-карты. Еще была проблема с перегревом, но это я отслеживаю с помощью Zabbix. При перегреве смотрю ситуацию на месте, где установлен микрокомпьютер.

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

    Все же Raspberry Pi удобен для работы с какой-нибудь периферией, как элемент автоматизации, например, умного дома или типа того. И тут уже чисто программный вариант не подойдет - нужна шина GPIO.

    Вот, например, подключение к Raspberry Pi модуля LoRa. В датацентре не получится)


  1. MPS78
    06.10.2021 11:06

    Как подключить массив из дисков? Может есть контролем, 5,6 дисков в рейд массив?


    1. burlunder Автор
      06.10.2021 15:32

      Если непосредственно на Raspberry Pi 4, то, пожалуй никак. PCI-шина есть, только в данном форм-факторе не выведена. Есть варианты замены usb-контроллера https://mysku.ru/blog/china-stores/84533.html, но тут уже на свой страх и риск.

      Если действительно интересна эта тема, то смотрите лучше в сторону Raspberry Pi Compute Module 4 https://www.jeffgeerling.com/blog/2020/building-fastest-raspberry-pi-nas-sata-raid. Но пока это всё равно на уровне экспериментов.


    1. strider
      07.10.2021 14:09

      можно попробовать начать с этого https://github.com/geerlingguy/raspberry-pi-pcie-devices/issues/14