Mini ITX Cluster Turing Pi 2 su 32 GB RAM

Mini ITX Cluster Turing Pi 2 su 32 GB RAM

Sveikinimai Habr bendruomenei! Neseniai rašiau apie mūsų pirmosios versijos klasterio lentą [V1]. Ir šiandien noriu papasakoti, kaip mes dirbome su versija Turing V2 su 32 GB laisvosios kreipties atmintis.

Mes aistringai vertiname mini serverius, kurie gali būti naudojami tiek vietinei plėtrai, tiek vietiniam prieglobai. Skirtingai nei staliniai ar nešiojamieji kompiuteriai, mūsų serveriai yra skirti dirbti 24 valandas per parą, 7 dienas per savaitę, juos galima greitai sujungti į federaciją, pavyzdžiui, klasteryje buvo 4 procesoriai, o po 5 minučių - 16 procesorių (be papildomos tinklo įrangos). ir visa tai kompaktiškai, tyliai ir taupiai energiją.

Mūsų serverių architektūra paremta klasterio konstravimo principu, t.y. Gaminame klasterines plokštes, kurios sujungia kelis skaičiavimo modulius (procesorius), naudojant ethernet tinklą plokštėje. Kad viskas būtų supaprastinta, kol kas nekuriame savo skaičiavimo modulių, o naudojame Raspberry Pi Compute Modules ir tikrai tikėjomės naujojo CM4 modulio. Tačiau viskas prieštarauja planams dėl jų naujos formos ir manau, kad daugelis yra nusivylę.

Žemiau parodyta, kaip mes perėjome iš V1 į V2 ir kaip turėjome susidoroti su nauju Raspberry Pi CM4 formos faktoriumi.

Taigi, sukūrus klasterį su 7 mazgais, kyla klausimai: kas toliau? Kaip padidinti prekės vertę? 8, 10 ar 16 mazgų? Kokie modulių gamintojai? Galvodami apie gaminį kaip visumą, supratome, kad čia svarbiausia ne mazgų skaičius ar kas yra gamintojas, o pati klasterių, kaip konstrukcinio bloko, esmė. Turime ieškoti minimalaus statybinio bloko

Pirmasis, bus klasteris ir tuo pačiu turės galimybę prijungti diskus ir išplėtimo plokštes. Klasterio vienetas turi būti savarankiškas bazinis mazgas su plačiomis išplėtimo galimybėmis.

Antra, kad minimalūs klasterių blokai galėtų būti sujungti vienas su kitu kuriant didesnes grupes ir kad tai būtų efektyvu biudžeto ir mastelio greičio požiūriu. Mastelio keitimo greitis turėtų būti didesnis nei įprastų kompiuterių prijungimas prie tinklo ir daug pigesnis nei serverio įranga.

trečias, minimalūs klasterių įrenginiai turi būti gana kompaktiški, mobilūs, efektyvūs energiją, ekonomiški ir nereiklūs eksploatavimo sąlygoms. Tai vienas iš pagrindinių skirtumų nuo serverių stelažų ir visko, kas su jais susiję.

Pradėjome nuo mazgų skaičiaus nustatymo.

Mazgų skaičius

Naudodami paprastus loginius sprendimus supratome, kad 4 mazgai yra geriausias pasirinkimas minimaliam klasterio blokui. 1 mazgas nėra klasteris, 2 mazgų neužtenka (1 pagrindinis 1 darbuotojas, nėra galimybės keisti mastelio bloke, ypač heterogeninėms parinktims), 3 mazgai atrodo gerai, bet ne 2 galių kartotinis ir mastelio keitimas viduje blokas yra ribotas, 6 mazgai kainuoja beveik kaip 7 mazgai (iš mūsų patirties tai jau yra didelė kaina), 8 yra daug, netelpa į mini ITX formos koeficientą ir dar brangesnis sprendimas PoC.

Aukso viduriu laikome keturis mazgus viename bloke:

  • mažiau medžiagų vienai klasterinei plokštei, todėl pigesnė gamyba
  • dalijasi iš 4, tik 4 blokai suteikia 16 fizinių procesorių
  • stabili schema 1 meistras ir 3 darbininkai
  • heterogeniškesni variantai, bendro skaičiavimo + pagreitinto skaičiavimo moduliai
  • mini ITX formos faktorius su SSD diskais ir išplėtimo kortelėmis

Skaičiavimo moduliai

Antroji versija yra pagrįsta CM4, manėme, kad ji bus išleista SODIMM formatu. Bet…
Nusprendėme sukurti dukterinę SODIMM plokštę ir surinkti CM4 tiesiai į modulius, kad vartotojai negalvotų apie CM4.

Mini ITX Cluster Turing Pi 2 su 32 GB RAM
Turing Pi skaičiavimo modulis, palaikantis Raspberry Pi CM4

Apskritai, ieškant modulių, atsivėrė visa skaičiavimo modulių rinka – nuo ​​mažų modulių su 128 MB RAM iki 8 GB RAM. Priekyje yra moduliai su 16 GB ar daugiau RAM. Krašto prieglobos programoms, pagrįstoms vietinėmis debesų technologijomis, 1 GB RAM nebeužtenka, o pastaruoju metu atsiradę moduliai su 2, 4 ir net 8 GB RAM suteikia pakankamai galimybių augti. Mes netgi svarstėme galimybes su FPGA moduliais mašininio mokymosi programoms, tačiau jų palaikymas buvo atidėtas, nes nebuvo sukurta programinės įrangos ekosistema. Studijuodami modulių rinką sugalvojome sukurti universalią modulių sąsają, o V2 ​​pradedame suvienodinti skaičiavimo modulių sąsają. Tai leis V2 versijos savininkams prijungti kitų gamintojų modulius ir maišyti juos konkrečioms užduotims atlikti.

V2 palaiko visą „Raspberry Pi 4 Compute Module“ (CM4) liniją, įskaitant „Lite“ versijas ir modulius su 8 GB RAM

Mini ITX Cluster Turing Pi 2 su 32 GB RAM

Periferija

Nustačius modulių pardavėją ir mazgų skaičių, priėjome prie PCI magistralės, kurioje yra periferiniai įrenginiai. PCI magistralė yra išorinių įrenginių standartas ir yra beveik visuose skaičiavimo moduliuose. Turime kelis mazgus ir idealiu atveju kiekvienas mazgas gali bendrinti PCI įrenginius konkurencinės užklausos režimu. Pavyzdžiui, jei tai yra diskas, prijungtas prie magistralės, jis yra prieinamas visiems mazgams. Pradėjome ieškoti PCI jungiklių su kelių prieglobų palaikymu ir nustatėme, kad nė vienas iš jų neatitinka mūsų reikalavimų. Visi šie sprendimai daugiausia buvo apriboti iki 1 pagrindinio kompiuterio arba kelių prieglobų, tačiau nebuvo vienu metu teikiamų užklausų galutiniams taškams režimo. Antroji problema yra didelė kaina 50 USD ar daugiau už vieną lustą. 2 versijoje nusprendėme atidėti eksperimentus su PCI jungikliais (prie jų grįšime vėliau, kai kursime) ir pasirinkome kiekvienam mazgui priskirti vaidmenį: pirmieji du mazgai atidengė mini PCI greitąjį prievadą kiekvienam mazgui, trečiasis mazgas. 2 prievadų 6 Gbps SATA valdiklis. Norėdami pasiekti diskus iš kitų mazgų, galite naudoti tinklo failų sistemą klasteryje. Kodėl gi ne?

Užmesti akį

Diskusijų ir apmąstymų metu nusprendėme pasidalinti kai kuriais eskizais, kaip laikui bėgant keitėsi minimalus klasterio blokas.

Mini ITX Cluster Turing Pi 2 su 32 GB RAMMini ITX Cluster Turing Pi 2 su 32 GB RAMMini ITX Cluster Turing Pi 2 su 32 GB RAM

Dėl to priėjome prie klasterio su 4 260 kontaktų mazgais, 2 mini PCIe (Gen 2) prievadais, 2 SATA (Gen 3) prievadais. Plokštėje yra 2 sluoksnio valdomas jungiklis su VLAN palaikymu. Pirmasis mazgas turi mini PCIe prievadą, į kurį galite įdiegti tinklo plokštę ir gauti kitą Ethernet prievadą arba 5G modemą, o pirmąjį mazgą paversti tinklo maršrutizatoriumi klasteryje ir Ethernet prievaduose.

Mini ITX Cluster Turing Pi 2 su 32 GB RAM

Klasterio magistralė turi daugiau funkcijų, įskaitant galimybę perjungti modulius tiesiai per visus lizdus ir, žinoma, FAN jungtis kiekviename mazge su greičio valdymu.

taikymas

Krašto infrastruktūra, skirta savarankiškai priglobtoms programoms ir paslaugoms

Sukūrėme V2, siekdami panaudoti jį kaip minimalų vartotojų / komercinio lygio infrastruktūros elementą. Naudojant V2, pigu pradėti koncepcijos ir masto įrodymą augant, palaipsniui perkeliant programas, kurios yra ekonomiškesnės ir praktiškesnės. Klasterių blokus galima sujungti, kad būtų galima sukurti didesnes grupes. Tai galima padaryti palaipsniui, nesukeliant jokios ypatingos rizikos
procesus. Šiandien yra daug paraiškų verslui, kuris gali būti priglobtas vietoje.

ARM darbo stotis

Turint iki 32 GB RAM viename klasteryje, pirmasis mazgas gali būti naudojamas OS darbalaukio versijai (pavyzdžiui, Ubuntu Desktop 20.04 LTS), o likusieji 3 mazgai gali būti naudojami kompiliavimo, testavimo ir derinimo užduotims bei debesų savųjų duomenų kūrimui. sprendimai ARM klasteriams. Kaip CI / CD mazgas ARM periferinėje infrastruktūroje gamyboje.

Turing V2 klasteris su CM4 moduliais yra beveik identiškas savo architektūra (skirtumas yra nedidelėse ARMv8 versijose) su klasteriu, pagrįstu AWS Graviton egzemplioriais. CM4 modulio procesorius naudoja ARMv8 architektūrą; galite rinkti vaizdus ir programas AWS Graviton 1 ir 2 egzemplioriams, kurie, kaip žinoma, yra daug pigesni nei x86 egzemplioriai.

Šaltinis: www.habr.com