Bagikan melalui


Kluster CycleCloud

Di CycleCloud, istilah kluster digunakan untuk menggambarkan sekelompok komputer yang terhubung (simpul) yang bekerja sama sebagai sistem tunggal. Kluster dapat ditumpuk; misalnya kluster komputasi yang terdiri dari headnode penjadwal Grid Engine dan simpul komputasi dapat memasang kluster BeeGFS yang terdiri dari beberapa metadata dan server penyimpanan, dengan kluster komputasi dan penyimpanan yang bersatu di bawah kluster atau sistem HPC induk tunggal.

Diagram Gambaran Umum

Node dan Node Arrays

Kluster pada dasarnya terdiri dari simpul, yang masing-masing melakukan peran tertentu dalam sistem HPC. Istilah node dan VM kadang-kadang digunakan secara bergantian tetapi secara semantik terpisah di CycleCloud. Simpul yang membentuk kluster pada dasarnya adalah komputer virtual di Azure yang telah menyelesaikan proses persiapan dan konfigurasi. Dengan kata lain, VM disediakan dari lapisan layanan infrastruktur Azure, dan status akhirnya adalah simpul kluster HPC setelah melalui langkah-langkah penginstalan dan konfigurasi perangkat lunak.

Diagram Arsitektur

Ada dua inkarnasi node terpisah di CycleCloud. Yang pertama sebagai simpul mandiri dan yang kedua sebagai nodearray, yang merupakan kumpulan simpul yang dikonfigurasi secara identik (Perbedaan node vs nodearray mengikuti analogi DevOps Pets vs Cattle dalam semangat). Secara luas tetapi tidak secara ketat, simpul mandiri dibangun dari VM tunggal di Azure sementara nodearrays memetakan ke virtual machine scale sets (VMSS).

Namun ada perbedaan penting antara nodearrays dan set skala VM, yang utama adalah bahwa satu nodearray dapat terdiri dari beberapa set skala VM. Ini memungkinkan satu nodearray untuk dibangun dari VM dengan ukuran perbedaan, atau bahkan keluarga VM yang berbeda, dengan satu-satunya batasan adalah bahwa semua node dalam nodearray melakukan peran yang sama dalam kluster, misalnya, menyediakan sumber daya untuk satu antrean penjadwal.

Templat Kluster

Topologi, atau bagaimana node diatur dalam kluster CycleCloud, didefinisikan dalam templat teks yang menjabarkan hubungan di antara node kluster, dan dalam kasus kluster berlapis, hubungan induk-anak kluster. Templat juga menyediakan sarana untuk menentukan peran yang dimainkan setiap simpul.

Templat kluster ditentukan dalam format INI. Bagian, digambarkan menggunakan kurung [siku ,], digunakan untuk menentukan kluster, simpul, dan nodearray. Elemen dasar file INI adalah pernyataan pasangan kunci-nilai yang menyediakan detail konfigurasi setiap bagian. Detail konfigurasi ini memberikan informasi kontekstual yang digunakan untuk membuat setiap simpul kluster, dari gambar komputer virtual yang digunakan untuk mem-boot VM ke subnet tempat VM akan disediakan. Baca selengkapnya tentang templat kluster CycleCloud

Persiapan dan Konfigurasi Simpul

CycleCloud menyediakan VM dari gambar VM dasar yang ditentukan dalam templat kluster, dan melalui serangkaian langkah yang dikelola oleh agen CycleCloud (Jetpack) selama proses boot, menginisialisasi dan mengonfigurasi OS pada VM untuk mengonversinya menjadi node HPC yang berfungsi. Langkah-langkah ini berkisar dari skrip untuk menginstal dan mengonfigurasi perangkat lunak penjadwalan, hingga konfigurasi mil terakhir untuk memasang sistem file.

Diagram Persiapan Simpul

Didefinisikan di bagian konfigurasi setiap node adalah spesifikasi cluster-init -- spesifikasi yang disediakan untuk setiap VM booting yang digunakan untuk mempersiapkannya untuk peran tertentu dalam kluster. CycleCloud menggunakan Chef sebagai platform otomatisasi infrastruktur untuk menyiapkan dan mengonfigurasi setiap simpul. Intinya, setiap spesifikasi cluster-init memetakan ke salah satu Peran Chef dan/atau Resep Cookbook lainnya yang perlu dijalankan pada VM booting.

CycleCloud menggunakan Chef dalam mode berdiri sendiri yang tidak bergantung pada server Chef terpusat. Sebagai gantinya, seluruh set Chef Cookbook yang diperlukan untuk menyiapkan setiap VM diunduh dari Akun Azure Storage milik pengguna selama fase bootup VM. Set Cookbook ini di-cache dari server aplikasi CycleCloud ke Akun Penyimpanan selama fase pembuatan kluster.

Setelah Cookbook ini diunduh, Chef memproses daftar Resep yang ditentukan dalam spesifikasi cluster-init node, memicu fase persiapan dan konfigurasi yang mengubah VM menjadi node HPC yang berfungsi.

Spesifikasi ditulis sebagai koleksi logis yang disebut Proyek. Misalnya, proyek untuk penjadwal batch seperti Slurm terdiri dari minimal dua spesifikasi: satu untuk node kepala penjadwal, dan yang lainnya untuk simpul komputasi. Baca selengkapnya tentang CycleCloud Projects

Orkestrasi Simpul

Bergantung pada penjadwal dan layanan yang digunakan dalam kluster, CycleCloud terkadang perlu mengatur fase persiapan simpul dalam kluster melalui koordinasi simpul yang berbeda. Misalnya, beberapa penjadwal mengharuskan setiap simpul komputasi mendaftarkan diri terhadap daemon penjadwal, yang tidak hanya mengharuskan simpul komputasi mengetahui alamat headnode, tetapi juga dapat mengenali bahwa headnode sepenuhnya disiapkan dan menunggu jika tidak.

Elemen Penemuan Layanan ini juga digunakan untuk hubungan server-klien Sistem File dan merupakan fitur di CycleCloud.

Bacaan lebih lanjut