Міні ITX кластар Turing Pi 2 c 32 GB RAM

Міні ITX кластар Turing Pi 2 c 32 GB RAM

Вітаю супольнасць Хабра! Нядаўна я пісаў пра наш кластарны поплатак першай версіі [V1]. І сёння хачу расказаць як мы працавалі над версіяй Turing V2 з 32 GB аператыўнай памяці.

Мы захапляемся міні серверамі, якія можна выкарыстоўваць як для лакальнай распрацоўкі так і для хостынгу лакальна. У адрозненні ад настольных кампутараў ці лэптопаў нашы серверы створаны для працы 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.

Міні ITX кластар Turing Pi 2 c 32 GB RAM
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

Міні ITX кластар Turing Pi 2 c 32 GB RAM

перыферыя

Пасля вызначэння вендара модуляў і колькасці нод мы падышлі да PCI шыны, на якой знаходзіцца перыферыя. PCI шына з'яўляецца стандартам для перыферыйных прылад і яна ёсць амаль ва ўсіх вылічальных модулях. У нас некалькі нод і ў ідэале, каб кожная нода магла шарыць PCI прылады ў рэжыме канкурэнтных запытаў. Напрыклад, калі гэта кружэлка падлучаны да шыны, то ён даступны ўсім нодам. Мы пачалі шукаць PCI свічы з магчымасцю падтрымкі мульціхост і выявілі што ні адзін з іх не падыходзіць пад нашы патрабаванні. Усе гэтыя рашэнні ў асноўным абмяжоўваліся 1 хастом ці мульты хастамі, але без рэжыму канкурэнтных запытаў да endpoints. Другая праблема - высокі кошт ад $ 50 і больш за чып. У V2 мы вырашылі адкласці эксперыменты з PCI свічкамі (мы вернемся да іх пазней па меры развіцця) і пайшлі па шляху прызначэння ролі для кожнай ноды: першыя дзве ноды, трэцяя нода exposed 2-ports . Для атрымання доступу да дыскаў з іншых нод можна выкарыстоўваць сеткавую файлавую сістэму ў рамках кластара. Why not?

Sneakpeek

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

Міні ITX кластар Turing Pi 2 c 32 GB RAMМіні ITX кластар Turing Pi 2 c 32 GB RAMМіні ITX кластар Turing Pi 2 c 32 GB RAM

У выніку мы прыйшлі да кластарнага блока з чатырма нодамі 4-pin, двума mini PCIe (Gen 260) партамі, двума SATA (Gen 2) партамі. На плаце ўсталяваны Layer-2 Managed Switch з падтрымкай VLAN. З першай ноды выведзены mini PCIe порт, у які можна ўсталяваць сеткавую карту і атрымаць яшчэ адзін Ethernet порт ці 2G мадэм і зрабіць з першай ноды роўтэр для сеткі на кластары і Ethernet партоў.

Міні ITX кластар Turing Pi 2 c 32 GB RAM

Кластарная шына мае больш функцый, уключаючы магчымасць прашыўкі модуляў напрамую праз усе слоты і вядома 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/3 LTS) і пакінутыя XNUMX ноды для задач кампіляцыі, тэставанні і адладкі, распрацоўкі cloud native рашэнняў для ARM кластараў. Як вузел для CI/CD на ARM перыферыйную інфраструктуру ў продзе.

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

Крыніца: habr.com