Mini Clúster ITX Turing Pi 2 amb 32 GB de RAM

Mini Clúster ITX Turing Pi 2 amb 32 GB de RAM

Salutacions a la comunitat Habr! Fa poc vaig escriure sobre la nostra primera versió del tauler de clúster [V1]. I avui us vull explicar com hem treballat la versió Turing V2 amb 32 GB memòria d'accés aleatori.

Ens agraden els mini servidors que es poden utilitzar tant per al desenvolupament local com per a l'allotjament local. A diferència dels ordinadors de sobretaula o portàtils, els nostres servidors estan dissenyats per funcionar les 24 hores del dia, els 7 dies de la setmana, es poden federar ràpidament, per exemple, hi havia 4 processadors en un clúster, i al cap de 5 minuts hi havia 16 processadors (sense equips de xarxa addicionals) i tot això en un format compacte silenciós i eficient energèticament.

L'arquitectura dels nostres servidors es basa en el principi de construcció del clúster, és a dir. fem plaques de clúster que, utilitzant la xarxa ethernet de la placa, connecten diversos mòduls informàtics (processadors). Per simplificar, encara no fem els nostres propis mòduls informàtics, sinó que utilitzem els mòduls de càlcul Raspberry Pi i realment esperàvem el nou mòdul CM4. Però, tot va anar en contra dels plans amb el seu nou factor de forma i crec que molts estan decebuts.

Sota el tall com vam passar de V1 a V2 i com vam haver de sortir amb el nou factor de forma Raspberry Pi CM4.

Per tant, després de crear un clúster per a 7 nodes, les preguntes són: què passa? Com augmentar el valor d'un producte? 8, 10 o 16 nodes? Quins fabricants de mòduls? Pensant en el producte en conjunt, ens vam adonar que el més important aquí no és el nombre de nodes o qui és el fabricant, sinó l'essència mateixa dels clústers com a element de construcció. Hem de buscar l'element mínim de construcció

La primera, serà un clúster i alhora podrà connectar discos i plaques d'expansió. El bloc de clúster hauria de ser un node base autosuficient i amb una àmplia gamma d'opcions d'expansió.

La segona, de manera que els blocs de clúster mínims es puguin connectar entre ells mitjançant la construcció de clústers de mida més gran i perquè sigui eficient en termes de pressupost i velocitat d'escala. La velocitat d'escala ha de ser més ràpida que la de connectar ordinadors normals a una xarxa i molt més barata que el maquinari del servidor.

Tercer, les unitats de clúster mínimes han de ser prou compactes, mòbils, eficients energèticament, rendibles i no exigents en les condicions de funcionament. Aquesta és una de les diferències clau dels bastidors de servidors i tot el que hi està connectat.

Vam començar determinant el nombre de nodes.

Nombre de nodes

Amb judicis lògics senzills, ens vam adonar que 4 nodes són la millor opció per al bloc mínim de clúster. 1 node no és un clúster, 2 nodes no són suficients (1 mestre 1 treballador, no hi ha possibilitat d'escalar dins d'un bloc, especialment per a opcions heterogènies), 3 nodes semblen correctes, però no un múltiple de potències de 2 i escalar dins un bloc és limitat, 6 nodes tenen un preu gairebé com 7 nodes (segons la nostra experiència ja és un gran preu de cost), 8 és molt, no encaixa en el factor de forma mini ITX i una solució PoC encara més cara.

Es consideren la mitjana daurada quatre nodes per bloc:

  • menys materials per placa de clúster, per tant més barat de fabricar
  • múltiple de 4, un total de 4 blocs donen 16 processadors físics
  • circuit estable 1 mestre i 3 treballadors
  • variacions més heterogènies, mòduls de càlcul general + càlcul accelerat
  • Factor de forma mini ITX amb unitats SSD i targetes d'expansió

Mòduls de càlcul

La segona versió es basa en CM4, vam pensar que es llançarà en factor de forma SODIMM. Però…
Vam prendre la decisió de fer una placa filla SODIMM i muntar CM4 directament en mòduls perquè els usuaris no hagin de pensar en CM4.

Mini Clúster ITX Turing Pi 2 amb 32 GB de RAM
Mòdul de càlcul Turing Pi compatible amb Raspberry Pi CM4

En general, a la recerca de mòduls, es va obrir tot un mercat de mòduls informàtics des de petits mòduls amb 128 MB de RAM fins a 8 GB de RAM. Els mòduls amb 16 GB de RAM i més estan al davant. Per a l'allotjament d'aplicacions de punta basats en tecnologies natives del núvol, 1 GB de RAM ja no n'hi ha prou, i l'aparició recent de mòduls per a 2, 4 i fins i tot 8 GB de RAM ofereix un bon marge de creixement. Fins i tot van considerar opcions amb mòduls FPGA per a aplicacions d'aprenentatge automàtic, però el seu suport s'ha retardat perquè l'ecosistema de programari no està desenvolupat. Mentre estudiàvem el mercat de mòduls, ens va ocórrer la idea de crear una interfície universal per a mòduls, i a la V2 comencem a unificar la interfície dels mòduls informàtics. Això permetrà als propietaris de la versió V2 connectar mòduls d'altres fabricants i barrejar-los per a tasques específiques.

V2 és compatible amb tota la línia de mòduls de càlcul Raspberry Pi 4 (CM4), incloses les versions Lite i els mòduls de 8 GB de RAM

Mini Clúster ITX Turing Pi 2 amb 32 GB de RAM

Perifèria

Després de determinar el venedor dels mòduls i el nombre de nodes, ens vam apropar al bus PCI on es troben els perifèrics. El bus PCI és l'estàndard per als perifèrics i es troba en gairebé tots els mòduls informàtics. Tenim diversos nodes i, idealment, cada node hauria de poder compartir dispositius PCI en mode de sol·licitud simultània. Per exemple, si és un disc connectat al bus, està disponible per a tots els nodes. Vam començar a buscar commutadors PCI amb suport multi-amfitrió i vam trobar que cap d'ells s'adaptava als nostres requisits. Totes aquestes solucions es limitaven majoritàriament a 1 amfitrió o múltiples amfitrions, però sense el mode de sol·licituds concurrents als punts finals. El segon problema és l'alt cost de 50 dòlars o més per xip. A la V2, vam decidir ajornar els experiments amb commutadors PCI (hi tornarem més endavant a mesura que desenvolupem) i vam seguir el camí d'assignar un paper per a cada node: els dos primers nodes exposaven el port mini PCI express per node, el tercer node. Controlador SATA de 2 Gbps de 6 ports exposat. Per accedir als discs des d'altres nodes, podeu utilitzar el sistema de fitxers de xarxa dins del clúster. Perquè no?

Una ullada

Vam decidir compartir alguns esbossos de com ha anat evolucionant el bloc mínim de clúster al llarg del temps mitjançant la discussió i la reflexió.

Mini Clúster ITX Turing Pi 2 amb 32 GB de RAMMini Clúster ITX Turing Pi 2 amb 32 GB de RAMMini Clúster ITX Turing Pi 2 amb 32 GB de RAM

Com a resultat, vam arribar a una unitat de clúster amb 4 nodes de 260 pins, 2 ports mini PCIe (Gen 2), 2 ports SATA (Gen 3). La placa té un commutador gestionat de capa 2 amb suport VLAN. S'ha eliminat un port mini PCIe del primer node, on podeu instal·lar una targeta de xarxa i obtenir un altre port Ethernet o mòdem 5G i fer un encaminador per a la xarxa al clúster i ports Ethernet des del primer node.

Mini Clúster ITX Turing Pi 2 amb 32 GB de RAM

El bus del clúster té més funcions, inclosa la possibilitat de flashejar mòduls directament a totes les ranures i, per descomptat, connectors de ventilador a cada node amb control de velocitat.

Aplicació

Infraestructura Edge per a aplicacions i serveis autoallotjats

Hem dissenyat V2 perquè sigui el bloc mínim per a una infraestructura d'avantguarda de qualitat comercial/de consum. Amb la V2, és barat començar la prova de concepte i escalar a mesura que creixes, portant gradualment aplicacions que siguin més rendibles i pràctiques d'allotjar a la vora. Els blocs de clúster es poden connectar entre ells per crear clústers més grans. Això es pot fer gradualment sense que s'estableixi gaire risc
processos. Avui ja hi ha un gran nombre d'aplicacions per a empreses, que es pot allotjar localment.

Estació de treball ARM

Amb fins a 32 GB de RAM per clúster, el primer node es pot utilitzar per a la versió d'escriptori del sistema operatiu (per exemple, Ubuntu Desktop 20.04 LTS) i els 3 nodes restants per a tasques de compilació, prova i depuració, desenvolupant solucions natives al núvol per a ARM. clústers. Com a node per a CI / CD a la infraestructura de vora ARM al producte.

El clúster Turing V2 amb mòduls CM4 és gairebé idèntic arquitectònicament (diferència en les versions menors d'ARMv8) al clúster basat en instàncies AWS Graviton. El processador del mòdul CM4 utilitza l'arquitectura ARMv8 perquè pugueu crear imatges i aplicacions per a instàncies AWS Graviton 1 i 2, que se sap que són molt més barates que les instàncies x86.

Font: www.habr.com