Mini ITX Cluster Turing Pi 2 dengan RAM 32 GB

Mini ITX Cluster Turing Pi 2 dengan RAM 32 GB

Salam untuk komunitas Habr! Saya baru-baru ini menulis tentang papan cluster versi pertama kami [V1]. Dan hari ini saya ingin memberi tahu Anda bagaimana kami mengerjakan versi tersebut Turing V2 dengan 32 GB memori akses acak.

Kami menyukai server mini yang dapat digunakan untuk pengembangan lokal dan hosting lokal. Tidak seperti komputer desktop atau laptop, server kami dirancang untuk bekerja 24/7, mereka dapat digabungkan dengan cepat, misalnya, ada 4 prosesor dalam satu cluster, dan setelah 5 menit ada 16 prosesor (tidak ada peralatan jaringan tambahan) dan semua ini dalam faktor bentuk yang kompak senyap dan hemat energi.

Arsitektur server kami didasarkan pada prinsip cluster konstruksi, yaitu. kami membuat papan cluster yang, menggunakan jaringan ethernet di papan, menghubungkan beberapa modul komputasi (prosesor). Untuk mempermudah, kami belum membuat modul komputasi sendiri, tetapi menggunakan Modul Compute Raspberry Pi dan kami sangat mengharapkan modul CM4 yang baru. Tapi, semuanya bertentangan dengan rencana dengan faktor bentuk baru mereka dan saya rasa banyak yang kecewa.

Di bawah potongan bagaimana kami beralih dari V1 ke V2 dan bagaimana kami harus keluar dengan faktor bentuk CM4 Raspberry Pi yang baru.

Jadi, setelah membuat cluster untuk 7 node, pertanyaannya adalah - apa selanjutnya? Bagaimana cara meningkatkan nilai suatu produk? 8, 10 atau 16 node? Produsen modul mana? Memikirkan produk secara keseluruhan, kami menyadari bahwa hal utama di sini bukanlah jumlah node atau siapa pembuatnya, tetapi inti dari cluster sebagai blok bangunan. Kita perlu mencari blok bangunan minimum itu

Yang pertama, akan menjadi cluster dan pada saat yang sama dapat menghubungkan disk dan papan ekspansi. Blok klaster harus menjadi simpul dasar mandiri dan dengan berbagai opsi ekspansi.

Kedua, agar blok klaster minimal dapat saling terhubung dengan membangun klaster dengan ukuran yang lebih besar dan agar efisien dari segi anggaran dan kecepatan penskalaan. Kecepatan penskalaan harus lebih cepat daripada menghubungkan komputer biasa ke jaringan dan jauh lebih murah daripada perangkat keras server.

ketiga, unit cluster minimum harus cukup kompak, mobile, hemat energi, hemat biaya dan tidak menuntut kondisi operasi. Ini adalah salah satu perbedaan utama dari rak server dan segala sesuatu yang berhubungan dengannya.

Kami mulai dengan menentukan jumlah node.

Jumlah node

Dengan penilaian logis sederhana, kami menyadari bahwa 4 node adalah opsi terbaik untuk blok cluster minimum. 1 node bukan cluster, 2 node tidak cukup (1 master 1 pekerja, tidak ada kemungkinan penskalaan dalam blok, terutama untuk opsi heterogen), 3 node terlihat baik-baik saja, tetapi bukan kelipatan kekuatan 2 dan penskalaan di dalam satu blok terbatas, 6 node datang dengan harga hampir seperti 7 node (dari pengalaman kami ini sudah merupakan harga biaya yang besar), 8 banyak, tidak sesuai dengan faktor bentuk mini ITX dan bahkan solusi PoC yang lebih mahal.

Empat node per blok dianggap mean emas:

  • lebih sedikit bahan per papan kluster, karenanya lebih murah untuk diproduksi
  • kelipatan 4, total 4 blok memberikan 16 prosesor fisik
  • sirkuit stabil 1 master dan 3 pekerja
  • variasi yang lebih heterogen, modul umum-komputasi + akselerasi-komputasi
  • faktor bentuk mini ITX dengan drive SSD dan kartu ekspansi

Menghitung modul

Versi kedua didasarkan pada CM4, kami pikir itu akan dirilis dalam faktor bentuk SODIMM. Tetapi…
Kami membuat keputusan untuk membuat papan anak SODIMM dan merakit CM4 langsung ke dalam modul sehingga pengguna tidak perlu memikirkan CM4.

Mini ITX Cluster Turing Pi 2 dengan RAM 32 GB
Modul Komputasi Turing Pi Mendukung Raspberry Pi CM4

Secara umum, untuk mencari modul, seluruh pasar modul komputasi dibuka dari modul kecil dengan RAM 128 MB hingga RAM 8 GB. Modul dengan RAM 16 GB dan lebih banyak lagi ada di depan. Untuk hosting aplikasi edge berdasarkan teknologi cloud native, RAM 1 GB sudah tidak cukup, dan kemunculan modul baru-baru ini untuk RAM 2, 4, dan bahkan 8 GB memberikan ruang yang baik untuk pertumbuhan. Mereka bahkan mempertimbangkan opsi dengan modul FPGA untuk aplikasi pembelajaran mesin, tetapi dukungan mereka tertunda karena ekosistem perangkat lunak tidak dikembangkan. Saat mempelajari pasar modul, kami mendapatkan ide untuk membuat antarmuka universal untuk modul, dan di V2 kami mulai menyatukan antarmuka modul komputasi. Ini akan memungkinkan pemilik versi V2 untuk menghubungkan modul dari pabrikan lain dan menggabungkannya untuk tugas tertentu.

V2 mendukung seluruh lini Raspberry Pi 4 Compute Module (CM4), termasuk versi Lite dan modul RAM 8 GB

Mini ITX Cluster Turing Pi 2 dengan RAM 32 GB

Keliling

Setelah menentukan vendor modul dan jumlah node, kami mendekati bus PCI tempat periferal berada. Bus PCI adalah standar untuk periferal dan ditemukan di hampir semua modul komputasi. Kami memiliki beberapa node, dan idealnya, setiap node harus dapat berbagi perangkat PCI dalam mode permintaan bersamaan. Misalnya, jika ini adalah disk yang terhubung ke bus, maka tersedia untuk semua node. Kami mulai mencari sakelar PCI dengan dukungan multi-host dan menemukan bahwa tidak ada yang sesuai dengan kebutuhan kami. Semua solusi ini sebagian besar terbatas pada 1 host atau multi host, tetapi tanpa mode permintaan bersamaan ke titik akhir. Masalah kedua adalah tingginya biaya $50 atau lebih per keping. Di V2, kami memutuskan untuk menunda eksperimen dengan sakelar PCI (kami akan kembali lagi nanti saat kami mengembangkannya) dan mengikuti jalur penetapan peran untuk setiap node: dua node pertama menampilkan port mini PCI express per node, node ketiga pengontrol SATA 2-port 6 Gbps terbuka. Untuk mengakses disk dari node lain, Anda dapat menggunakan sistem file jaringan di dalam cluster. Mengapa tidak?

Sekilas

Kami memutuskan untuk membagikan beberapa sketsa tentang bagaimana blok klaster minimum telah berkembang dari waktu ke waktu melalui diskusi dan refleksi.

Mini ITX Cluster Turing Pi 2 dengan RAM 32 GBMini ITX Cluster Turing Pi 2 dengan RAM 32 GBMini ITX Cluster Turing Pi 2 dengan RAM 32 GB

Hasilnya, kami mendapatkan unit cluster dengan 4 node 260-pin, 2 port mini PCIe (Gen 2), 2 port SATA (Gen 3). Board memiliki Layer-2 Managed Switch dengan dukungan VLAN. Port mini PCIe telah dihapus dari node pertama, di mana Anda dapat memasang kartu jaringan dan mendapatkan port Ethernet atau modem 5G lain dan membuat router untuk jaringan pada cluster dan port Ethernet dari node pertama.

Mini ITX Cluster Turing Pi 2 dengan RAM 32 GB

Bus cluster memiliki lebih banyak fitur, termasuk kemampuan untuk mem-flash modul langsung melalui semua slot dan tentu saja konektor FAN di setiap node dengan kontrol kecepatan.

Aplikasi

Infrastruktur edge untuk aplikasi & layanan yang dihosting sendiri

Kami merancang V2 untuk menjadi blok bangunan minimum untuk infrastruktur edge tingkat konsumen/komersial. Dengan V2, memulai proof-of-concept dan menskalakan saat Anda tumbuh menjadi murah, secara bertahap mem-porting aplikasi yang lebih hemat biaya dan praktis untuk dihosting di edge. Blok cluster dapat dihubungkan bersama untuk membangun cluster yang lebih besar. Hal ini dapat dilakukan secara bertahap tanpa banyak risiko untuk ditetapkan
proses. Sudah hari ini ada sejumlah besar aplikasi untuk bisnis, yang dapat dihosting secara lokal.

Stasiun Kerja ARM

Dengan RAM hingga 32 GB per kluster, node pertama dapat digunakan untuk versi desktop OS (misalnya, Ubuntu Desktop 20.04 LTS) dan 3 node sisanya untuk tugas kompilasi, pengujian, dan debugging, mengembangkan solusi cloud native untuk ARM cluster. Sebagai simpul untuk CI/CD pada infrastruktur tepi ARM di prod.

Klaster Turing V2 dengan modul CM4 hampir identik secara arsitektural (perbedaan dalam versi minor ARMv8) dengan klaster berdasarkan instans AWS Graviton. Prosesor modul CM4 menggunakan arsitektur ARMv8 sehingga Anda dapat membuat gambar dan aplikasi untuk instans AWS Graviton 1 dan 2, yang dikenal jauh lebih murah daripada instans x86.

Sumber: www.habr.com