В мае у нас появились новые серверы на базе 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 относится к железу для встраиваемых систем. А на них процесс инициализации и загрузки системы заметно отличается от привычного.
Процесс загрузки «обычного» сервера
Для сравнения, вкратце рассмотрим, как происходит загрузка на «обычном» сервере.
- BIOS/UEFI. Система стартует с BIOS/UEFI, который инициализирует железо и передает управление первому устройству в списке загрузки. По умолчанию это первый диск в системе, но для загрузки по PXE первым выбирается нужный сетевой интерфейс. Важно, что BIOS/UEFI дает нам интерфейс для изменения этого списка и может его сохранять.
- NIC. После того, как сетевой интерфейс получил управление, он посылает в сеть широковещательный запрос DHCP, получает в ответе настройки TFTP (tftp-server-name и boot-file-name) и по ним загружает файл, которому передается управление.
- iPXE. В нашем случае мы возвращаем кастомизированный iPXE-загрузчик, который через параметр chain запрашивает iPXE-скрипт и получает сценарий загрузки сервера.
- Автоустановка / автозагрузка. В зависимости от выбора дистрибутива на базе шаблона генерируется уникальный сценарий (прежде всего данные подключения) автоустановки для конкретного сервера. После завершения автоустановки сценарий загрузки меняется, и iPXE в следующий раз получит другой шаблон загрузки. Загрузка через сетевой интерфейс позволяет нам гибко управлять загрузкой сервера, меняя только ответ сервера, с которого iPXE ожидает ответ.
Процесс загрузки «малинки»
Подробно процесс загрузки для Raspberry Pi 4 описан в официальной документации. Здесь же ограничимся деталями, важными в контексте сравнения.
- EEPROM. Старт «малинки» начинается с запуска прошивки из энергонезависимой микросхемы EEPROM. В сценарии она по умолчанию ищет файлы на /boot разделе SD-карты, необходимые для инициализации компонентов. В этом смысле ее можно сравнить с BIOS без графического интерфейса. Для изменения настроек и сценария загрузки (BOOT_ORDER) нужно полностью обновить файл загрузчика с применением опций из текстового файла и заново записать его в микросхему.
- Директория загрузки (/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 любим одноплатники, так что собрали для вас еще подборку интересных статей на эту тему:
- Интересные проекты на Raspberry Pi: от счетчика Гейгера до коммерческих серверов
- PXE-мультитул на базе Raspberry Pi
- VMware ESXi на Raspberry Pi: они реально это сделали
Загрузка «малинки» в 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)
interprise
02.10.2021 14:46+2Было бы хорошо провести тесты по производительности в сравнении с сопоставимым по цене vps. И немного смущает sd карта, насколько это надежно.
Calc
02.10.2021 15:09sd карта, насколько это надежно.
Если с неё только читать и писать файлы по необходимости, то проблем нет
Если забыть выключить лог, то блоки могут выгореть и за 2-4 недели. (тесты были на OpenWRT лет 8 назад, сейчас карточки могут быть и лучше)А так особых проблем нет.
alexzen
02.10.2021 15:31У меня дома стоит IP камера, уже 3.5 года круглосуточно пишет видео в FullHD на microSD 64 ГБ. Карта до сих пор прекрасно работает.
Sergey_datex
02.10.2021 17:09+5У современных флешек (SD в том числе) на памяти TLC/QLC время гарантированной сохранности данных 3 месяца, на практике нам на восстановление прут карты памяти возрастом полгода-полтора года очень часто, все с симптомами стекшего заряда. Так что носитель недолговечный даже в режиме чтения. Пруфы про 3 месяца в даташитах на энтерпрайз ссд/emmc и прочих индустриальных вещах, где принято честно писать характеристики.
Старые флешки мелких емкостей (2 гига и около того) почти вечны - там был 2-bit MLC и он не подвержен существенному стеканию заряда.
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-карт, но, думаю, вся хитрость все же в контроллере и софте.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.
mkll
03.10.2021 16:38Стекание заряда происходит только если флэшка не запитана? Или под питанием тоже?
Sergey_datex
03.10.2021 19:46Оно происходит всегда. НО, если устройство под питанием И контроллер умеет в рефреш - он МОЖЕТ находить страницы с повышенным BER (подстекшие) и перезаписывать их в новые блоки. Рефрешить, короче. Если носитель лежит в столе без питания - такого шанса уже нет.
Именно поэтому я считаю большой ошибкой факт появления официальных внешних SSD. Отличный способ разом потерять большой объем ценных данных
Disasm
02.10.2021 17:23А требования "пользователь не должен иметь возможность запороть EEPROM/процесс загрузки" у вас нет?
burlunder Автор
04.10.2021 14:57На данный момент нет.
Возможность заблокировать переписывание EEPROM есть, она описана в документации, но по ней же требуется небольшая модификация самой платы, а не только изменение конфигураци.
В крайнем случае всё ещё остаётся возможность восстановления через файл recovery.bin. В статье это явно не обозначено, но EEPROM - это уже вторая стадия, а первая - ROM на SoC (можно свериться по bootflow), что даёт некоторую гарантию, что восстановить всё равно можно.
Disasm
05.10.2021 10:33+1Мне кажется, тут не столько возможность восстановления важна, сколько потенциальная возможность внедрить вредоносный код в процесс загрузки, о котором другие клиенты и знать не будут, особенно если этот код крутится на GPU.
burlunder Автор
10.10.2021 01:29Да, проблема понятна, и, в общем-то, не новая. Тут единственный вариант - это принудительно "обнулять" платформу перед сдачей клиенту, в этом месте как раз файл recovery.bin становится актуальным.
Max-812
02.10.2021 21:07+8Я даже не сомневаюсь, что вы решите все вопросы с интеграцией малинок в вашу систему. Мне более любопытно, а задачи-то для них вы или клиенты придумали? Как планируется их использовать?
burlunder Автор
04.10.2021 15:04Ну, за клиентов сложно говорить, человеческая фантазия иногда преподносит сюрпризы.
Если брать возможный типовой вариант, то "малинка" выглядит неплохой альтернативой виртуалке, только с "монопольным" доступом на все ресурсы железки.
Krypt
02.10.2021 22:00+2Для каких задач Pi может использоваться при хостинге в датацентре?
Это не первый случай когда я слышу о ней в таком контексте, но как-то не слышал именно про практические примененияDirectX
02.10.2021 22:49Вполне адекватный вариант для работы телеграм-ботов и подобного.
elfukado
03.10.2021 07:30+1А в чём адекватность?
Столько времени инженеров на ввод в эксплуатацию простой потребительской железки без нормальной корпоративной поддержки.
Просто взять нормальный не самый новый сервер и будет несколько десятков vps аналогичной мощности. На нормальных дисках с raid, а не sd-карточках.
Даже в голову не приходит, кому надо арендовать такое. Может автор статьи ответит.
DGN
09.10.2021 19:03+1По миру бродят слухи о возможности утечек данных через систему виртуализации, тут у нас маленький но гордый аппаратный сервак с выделенным сетевым интерфейсом.
elfukado
12.10.2021 05:52Настолько важный проект, что приходится учитывать возможную утечку памяти при виртуализации, и это на raspberry? Там же производительности кот наплакал, если нет пока денег на нормальный сервер - оставь домашний комп включенным и всё, будет дешевле и никто память не сопрёт. Или купи эту raspberry, наверняка аренда за год-два будет дороже.
У неё же весь смысл в личном владении. Маленькое энергопотребление, можно подключать всякие датчики, реле, маленький экранчик, кнопки всякие. А в датацентре все эти плюсы пропадают, остаётся только низкопроизводительная неотказоустойчивая железка.
DGN
12.10.2021 15:34Ну не у всех есть белые IP домой со стабильным каналом, кому-то может быть нужна дидос защита, кому-то арбузоустойчивость - проекты разные бывают.
elfukado
12.10.2021 15:54Да кто ж спорит, но raspberry им зачем?
Как-то странно предполагать, что человек, беспокоящийся об утечках памяти при виртуализации, будет арендовать raspberry за 500 рублей в месяц. И к нему защиту от DDoS 10 Мбит/с за 2550 рублей?
nobodysu
03.10.2021 17:13+1Что сразу приходит на ум — переносимость проектов 1 в 1.
Еще может быть желание уверенности в полноценности потребления ресурсов — чтобы соседи по железу не мешали.
Или отсутствие CPU side-channel'а от соседей, но тут клиентская база совсем маленькая.
Так что думаю здесь скорее маркетинговые выгоды.CampoT1P
06.10.2021 01:20Все эти проблемы потребителем решаются в пару галочек на aws/gcp. Мне кажется, что реальное обоснование необходимости иметь стойку с малинками в датацентре выглядит так:
1) Потому что можем
2) Это прикольно
3) А потом еще и статью на хабре запилим
nobodysu
06.10.2021 01:43Прямо все интерфейсы будут присутствовать? Кеши одинаковые, и вести себя будут на самом деле идентично? Сильно сомневаюсь.
А CPU side channel не фиксится наверняка, это цена скорости современных CPU.CampoT1P
06.10.2021 16:23А CPU side channel не фиксится наверняка, это цена скорости современных CPU.
При аренде выделенных инстансов проблема CPU side channel отсутствует. Да, малинка тоже может так применяться. Другой вопрос, стоит ли на малинке крутить что-то серьезней пет-проектов. А им секьюрность не особо важна.
Прямо все интерфейсы будут присутствовать?
Какие интерфейсы кроме сетевого и силового вам нужны от железки в датацентре?
Кеши одинаковые, и вести себя будут на самом деле идентично? Сильно сомневаюсь.
Делаете снапшот, разворачиваете его на идентичной машине - получаете одинаковые кеши и идентичное поведение.
kasigor
03.10.2021 09:23+11. Как то не серьезно Raspberry Pi OS ставить на сервер. Почему не Ubuntu Server?
2. Что мешает человеку купить и самому дома поставить? Зачем кому-то платить?
dikey_0ficial
03.10.2021 19:33+1К пункту 2. Ситуация: человек живёт в деревне, где во время грозы выключают, а интернет работает со скоростью 30 килобит в секунду. Есть задача, которую надо выполнять довольно долгое время и, желательно, со стабильным подключением к интернету, например, прокси, бот для telegram, едечасное выкладывание твитов с текстом "выпрями спину", хостинг маленького сайта с почтовым сервероми, тдтп
AndreyHenneberg
27.10.2021 21:09Соглашусь с первым: к сожалению, родная ОС RPi, как я неожиданно обнаружил, 32-битная и не выбирает всю мощность даже третьей «малинки», которую я как-то купил для экспериментов. Пока этого хватает, но в перспективе хочу поставить другой дистрибутив. К сожалению, других дистрибутивов, которые можно просто развернуть на карту и работать, не нашёл, а монитора с HDMI у меня пока нет.
TRaMeLL
03.10.2021 11:58Вопрос знатокам: нужно поднять OpenVPN сервер для сети с небольшим количеством рабочих мест (около 10-15), подойдет ли для это Raspberry Pi 4 или есть варианты более подходящие для такой задачи при сравнимой стоимости и габаритах?
splastunov
04.10.2021 12:16Как вариант нормальный VDS/VPS на линуксе или сразу с CHR/pfSense (в зависимости от предпочтений)
NikaLapka
04.10.2021 12:16Сама область применения довольно интересна, если конечно же к арендной малинке будет выдаваться отдельный IPv4 адрес. С другой стороны это не х86.
Позвольте два вопроса: 1 - как обстоят дела со сроком жизни microSD флешки? 2 - малинки нужны только для рекламы? Ведь с точки зрения пользователя, намного выгоднее иметь возможность арендовать обычный VPS, но в микро размере, с 1\8 CPU, 128 Мб памяти и т.п. и за микро денежки, нежели дефолтные 5$.
burlunder Автор
04.10.2021 15:26Для нас это тоже вопрос. Мы, конечно, износ закладывали, но адекватно судить можно будет только после некоторого опыта эксплуатации.
Маркетинг тоже имелся в виду. Но если бы решалась только эта задача, то не было бы необходимости настолько заморачиваться (насколько будет понятно по следующим статьям, сохраню интригу) с их интеграцией в автоматическую сдачу.
С выгодой не так однозначно. В вашем сценарии лучше микро-vps, но если ресурсы виртуалки становятся сопоставимы с "малинкой", то уже не так однозначно.
jobless
04.10.2021 12:16А вы не рассматривали odroid-hc1 /& odroid-hc2 ?
burlunder Автор
04.10.2021 15:16Всё упирается в хоть какую-то поддержку PXE.
Одноплатников всяких разных уже много, но вот информацию по поддержке PXE довольно сложно найти. Беглый поиск для ordorid-hc2, так чтобы не пришлось привязываться к SD-карте, ничего внятного по этой теме не показал.
jobless
04.10.2021 18:27так в том и дело, что модели hc 1/2 это как бы не про sd карту
burlunder Автор
06.10.2021 15:20Поизучал подробнее, выглядит интересно. Хотя всё равно не очень понятно насколько она способна грузиться напрямую по сети, даже не смотря на наличие BIOS. Дальше уже вопрос экономической целесообразоности.
hasu
04.10.2021 12:16Wi-Fi на этих малинках вы отключили аппаратно или через config.txt?
burlunder Автор
04.10.2021 15:30Аппаратно. После установки операционной системы, она начинает грузится с /boot раздела на SD-карте, к которому у клиента есть полный доступ. Поэтому для клиента нет никакой проблемы отредактировать файл config.txt и внести туда активацию нужного оверлея.
fortsev
04.10.2021 12:16+2Сам использую Raspberry Pi 3+ для парочки телеграм ботов. Поставил на нее Node.js, скрипты добавил в автозапуск и все. Отличная штука. Дополнительно поставил вентилятор для активного охлаждения. Работает 24/7 уже пол года, пока полет нормальный. Я посчитал, что это будет заметно выгоднее VPS. Малинка в пике потребляет 10Вт (т.к. питание 5в и 2А), и это примерно 30-40 рублей в месяц за электричество. Нужно только найти место со более менее стабильной подачей электроэнергии и интернетом.
AlexandreFrolov
04.10.2021 13:09+1Использую Raspberry Pi 3+ в качестве шлюза онлайн-касс, но это на территории заказчика. С их помощью сделан доступ через OpenVPN в локальную сеть с сервера, размещенного в датацентре. И это самое недорогое решение, которое мне удалось придумать.
По опыту раз в год приходится переформатировать или менять флеш-карты. Еще была проблема с перегревом, но это я отслеживаю с помощью Zabbix. При перегреве смотрю ситуацию на месте, где установлен микрокомпьютер.
Насчет аренды Raspberry Pi в датацентре идея интересная, но вот из практического применения вижу только какое-нибудь быстрое тестирование чисто программных решений, когда срочно нужен Raspberry Pi, а под рукой нет. Можно попробовать смоделировать вычислительный кластер перед покупкой оборудования для его создания своими силами, например.
Все же Raspberry Pi удобен для работы с какой-нибудь периферией, как элемент автоматизации, например, умного дома или типа того. И тут уже чисто программный вариант не подойдет - нужна шина GPIO.
Вот, например, подключение к Raspberry Pi модуля LoRa. В датацентре не получится)
MPS78
06.10.2021 11:06Как подключить массив из дисков? Может есть контролем, 5,6 дисков в рейд массив?
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. Но пока это всё равно на уровне экспериментов.
strider
07.10.2021 14:09можно попробовать начать с этого https://github.com/geerlingguy/raspberry-pi-pcie-devices/issues/14
Filex
А фотографии малинок в стойке покажете?
RiddickABSent
Тоже ожидал в конце статьи..
Плюсую за обновление с картинками.
Krypt
Судя по описанию и фото в статье — они используют вот этот блок:
https://www.thingiverse.com/thing:4078710
А вообще вот, видео об использовании кластера RPi в локальной сети:
www.youtube.com/watch?v=LcuNc4jz-iU
burlunder Автор
Да, но нет.
Указанный вами блок - использовался в первой партии на 10 штук, ещё когда это всё только тестировалось. Сейчас уже всё монтируется в готовый юнит по 12 штук. В этот раз не успели доделать нормальные фото как это выглядит в уже смонтированном виде, в следующей статье будет.
Darksa
Уже можно полюбоваться во второй части статьи habr.com/ru/company/selectel/blog/582576