НОВОСТИ Мини ITX кластер Turing Pi 2 c 32 GB RAM

NewsBot
Оффлайн

NewsBot

.
.
Регистрация
21.07.20
Сообщения
40.408
Реакции
1
Репутация
0
hvvhdjot4ae41goflyn4zpbit44.jpeg


Приветствую сообщество Хабра! Недавно я писал про нашу кластерную плату первой версии [ ]. И сегодня хочу рассказать как мы работали над версией оперативной памяти.

Мы увлекаемся мини серверами которые можно использовать как для локальной разработки так и для хостинга локально. В отличии от настольных компьютеров или лэптопов наши сервера созданы для работы 24/7 их быстро можно соединять в федерацию, например было 4 процессора в кластере, а через 5 минут стало 16 процессоров (без дополнительного сетевого оборудования) и все это в компактном форм-факторе, безшумно и энергоэффективно.

В основе архитектуры наших серверов — кластерный принцип построения т.е. мы делаем кластерные платы которые с помощью ethernet сети на плате соединяют несколько вычислительных модулей (процессоров). Для упрощения мы пока не делаем свои вычислительные модули, а используем Raspberry Pi Compute Modules и мы очень надеялись на новый модуль CM4. Но, все пошло вразрез планам с их новым форм-фактором и думаю многие разочарованы.

Под катом как мы шли от V1 к V2 и как нам пришлось выкручиваться с новым форм-фактором Raspberry Pi CM4.

Итак, после создания кластера на 7 нод, вопросы — что дальше? Как увеличить ценность продукта? 8, 10 или 16 нод? Какие производители модулей? Думая над продуктом в комплексе мы поняли что основное здесь не количество нод или кто производитель, а сама суть кластеров как строительного блока. Надо искать минимальный строительный блок, которые

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

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

Третье, минимальные кластерные блоки должны быть достаточно компактны, мобильны, энергоэффективны, cost-effective и не требовательны к условиям эксплуатации. Это одно из ключевых отличий от server racks и всего что с ними связано.

Мы начали с определения количества нод.

Количество нод


Простыми логическими суждениями мы поняли что 4 ноды лучший вариант для минимального кластерного блока. 1 нода это не кластер, 2 ноды мало (1 мастер 1 воркер, нет возможности масштабирования в рамках блока, особенно для гетерогенных вариантов), 3 ноды выглядит ок, но не кратно степеням 2 и лимитировано масштабирование в рамках блока, 6 нод выходит по цене почти как 7 нод (из нашего опыта это уже большая себестоимость), 8 много, не умещается в mini ITX форм факторе и еще более дорогое решение для PoC.

Четыре ноды на блок считаем золотой серединой:

  • меньше материалов на кластерную плату, следовательно дешевле производство
  • кратно 4, всего 4 блока дают 16 физических процессоров
  • стабильная схема 1 мастер и 3 воркера
  • больше гетерогенных вариаций, general-compute + accelerated-compute модули
  • мини ITX форм-фактор с SSD дисками и платами расширения

Вычислительные модули


Вторая версия базируется на CM4 мы думали что ее выпустят в SODIMM форм-факторе. Но…
Мы приняли решение сделать дочернюю плату SODIMM и собирать CM4 сразу в модули чтобы пользователи не думали о CM4.

ihniva2kz5et9ismnncqktqke-4.jpeg

Turing Pi Compute Module с поддержкой Raspberry Pi CM4

Вообще в поисках модулей был открыт целый рынок вычислительных модулей от небольших модулей на 128 MB RAM до 8 GB RAM. Впереди модули на 16 GB RAM и более. Для edge хостинга приложений базирующихся на cloud native технологиях 1 GB RAM уже мало, а недавнее появление модулей на 2, 4 и даже 8 GB RAM дает хорошее пространство для роста. Даже рассматривали и варианты с FPGA модулями для приложений машинного обучения, но их поддержка отложена потому что не развита софтверная экосистема. Во время изучения рынка модулей пришли к идеи создания универсального интерфейса для модулей и в V2 начинаем унификацию интерфейса вычислительных модулей. Это позволит владельцам версии V2 подключать модули других производителей и смешивать их под конкретные задачи.

V2 поддерживает всю линейку Raspberry Pi 4 Compute Module (CM4), включая Lite версии и модули на 8 GB RAM

eeaf8ubjryku6srufmbbqgvaulo.png


Периферия


После определения вендора модулей и количества нод мы подошли к PCI шине, на которой находится периферия. PCI шина является стандартом для периферийных устройств и она есть почти во всех вычислительных модулях. У нас несколько нод и в идеале чтобы каждая нода могла шерить PCI устройства в режиме конкурентных запросов. Например, если это диск подключенный к шине, то он доступен всем нодам. Мы начали искать PCI свичи с возможностью поддержки мультихост и обнаружили что ни один из них не подходит под наши требования. Все эти решения в основном ограничивались 1 хостом или мульти хостами, но без режима конкурентных запросов к endpoints. Вторая проблема высокая стоимость от $50 и более за чип. В V2 мы решили отложить эксперименты с PCI свичами (мы вернемся к ним позже по мере развития) и пошли по пути назначения роли для каждой ноды: первые две ноды exposed mini PCI express port per node, третья нода exposed 2-ports 6 Gbps SATA контроллер. Для получения доступа к дискам с других нод можно использовать сетевую файловую систему в рамках кластера. Why not?

Sneakpeek


Мы решили поделиться некоторыми эскизами как эволюционировал минимальный кластерный блок с течением времени в процессе обсуждения и обдумывания

3bfe9im2cev752ipdolgnngzr3a.png
sy--gywwxys2non36rwu3hq_rcm.png
xdhwtheacjvh8sl3iuaqhbpr3ga.png


В результате мы пришли к кластерному блоку с 4-мя нодами 260-pin, 2-мя mini PCIe (Gen 2) портами, 2-мя SATA (Gen 3) портами. На плате установлен Layer-2 Managed Switch с поддержкой VLAN. С первой ноды выведен mini PCIe порт, в который можно установить сетевую карту и получить еще один Ethernet порт или 5G модем и сделать из первой ноды роутер для сети на кластере и Ethernet портов.

hg3pcnuyqgbicmawtsgryyc-com.png


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

Применение


Edge infrastructure for self-hosted applications & services


Мы проектировали V2 с целью использовать ее как минимальный строительный блок для consumer/commercial-grade edge инфраструктуры. С V2 дешево начать проверку концепции и масштабироваться по мере роста, постепенно перенося приложения, которые экономически и практически целесообразнее хостить в edge. Кластерные блоки можно соединять вместе, строя кластеры большего размера. Это можно делать постепенно без особых рисков для устоявшихся
процессов. Уже сегодня имеется огромное количество приложений для бизнеса, .

ARM Workstation


С оперативной памятью до 32 GB RAM на кластер, первую ноду можно использовать для desktop версии OS (например Ubuntu Desktop 20.04 LTS) и оставшиеся 3 ноды для задач компиляции, тестирования и отладки, разработки cloud native решений для ARM кластеров. Как узел для CI/CD на ARM периферийную инфраструктуру в проде.

Turing V2 кластер с CM4 модулями архитектурно почти идентичен (разница в минорных версиях ARMv8) кластеру на базе инстансов AWS Graviton. В процессоре CM4 модулей используется архитектура ARMv8 вы можете собирать образы и приложения для AWS инстансов Graviton 1 и 2, которые как известно намного дешевле инстансов x86.
 
Сверху Снизу