Bagikan melalui


Pemeriksaan Kesehatan

CycleCloud menawarkan dua mekanisme untuk memeriksa kesehatan VM: Pemeriksaan Kesehatan Node adalah fitur yang lebih baru yang melakukan pemeriksaan selama tahap provisi dan mencegah VM yang tidak sehat bergabung, sementara HealthCheck menjalankannya secara berkala setelah VM bergabung dengan kluster sebagai node.

Pemeriksaan Kesehatan Simpul

Pemeriksaan Kesehatan Simpul dapat mendeteksi perangkat keras yang tidak sehat sebelum VM diizinkan untuk bergabung dengan kluster CycleCloud. Versi saat ini dari fitur ini akan menjalankan skrip pemeriksaan kesehatan yang disertakan dalam gambar AzureHPC resmi yang dapat ditemukan di bawah /opt/azurehpc/test/azurehpc-health-checks/. Sumber untuk skrip ini terletak di repositori Pemeriksaan Kesehatan Simpul AzureHPC, tetapi harap dicatat bahwa versi yang disertakan dalam versi kluster Anda dari gambar AzureHPC mungkin bukan yang terbaru yang tersedia di repositori.

Persyaratan

Versi Pemeriksaan Kesehatan Simpul saat ini hanya mendukung gambar AzureHPC yang dirilis setelah 7 November 2023 (berisi azurehpc-health-checks versi v2.0.6 atau lebih tinggi) dan gambar kustom yang berasal darinya. Pemeriksaan Kesehatan Simpul saat ini tidak didukung di Windows.

Mengaktifkan Pemeriksaan Kesehatan Node untuk Kluster Slurm

Formulir pembuatan kluster Slurm menawarkan kotak centang untuk mengaktifkan Pemeriksaan Kesehatan Simpul yang terletak di bawah tab Pengaturan Tingkat Lanjut . Mencentang kotak memungkinkan Pemeriksaan Kesehatan Simpul pada array simpul HPC kluster. Jika Anda ingin mengaktifkan Pemeriksaan Kesehatan Simpul pada array simpul lain (atau untuk jenis kluster lainnya), Anda harus menggunakan templat kluster kustom.

Pemeriksaan Kesehatan Simpul dapat dinonaktifkan pada kluster yang sedang berjalan hanya dengan menghapus centang pada kotak. Tidak perlu menurunkan skala array simpul agar perubahan diterapkan.

GUI Pemeriksaan Kesehatan Node

Memahami hasil Pemeriksaan Kesehatan Node

Setelah VM melewati pemeriksaan kesehatan, VM akan beralih ke fase konfigurasi perangkat lunak.

Jika VM gagal pada salah satu skrip pemeriksaan kesehatan, maka pesan kesalahan akan dikirim ke CycleCloud dan VM akan secara otomatis dicegah untuk bergabung dengan kluster.

Log kesalahan Pemeriksaan Kesehatan Simpul

Jika VM dimulai di NodeArray dengan provisi berlebihan diaktifkan (misalnya Slurm hpc Node Array) maka VM harus diganti secara otomatis sebagai bagian dari provisi berlebihan. Dalam hal ini, tidak ada tindakan yang diperlukan dan VM yang sehat akan dipilih untuk bergabung dengan kluster (meskipun Anda akan melihat pesan kesalahan di halaman kluster Anda yang menunjukkan bahwa satu atau beberapa VM gagal diperiksa).

Jika VM dimulai untuk satu Node, Array Node dengan provisi berlebihan dinonaktifkan (misalnya Slurm htc Node Array), atau jika lebih banyak VM gagal pemeriksaan kesehatan daripada yang didukung oleh provisi berlebihan, maka Node akan pindah ke status Gagal dan alokasi akan gagal. CycleCloud dapat mencoba mencitra ulang VM untuk memperbaiki masalah, tetapi jika gambar ulang gagal maka simpul perlu dihentikan dan diganti (secara manual oleh admin atau secara otomatis oleh penskala otomatis).

Catatan

Jika Anda telah mengaktifkan Pemeriksaan Kesehatan Simpul, tetapi gambar VM tidak memenuhi persyaratan di atas, maka semua VM akan diizinkan untuk bergabung dengan kluster, tetapi statusnya akan berisi peringatan yang menunjukkan bahwa pemeriksaan tidak didukung. Detail kesalahan Pemeriksaan Kesehatan Simpul

Referensi Atribut

Atribut Jenis Definisi
EnableNodeHealthChecks Boolean (Opsional) Aktifkan Pemeriksaan Kesehatan Node on-boot untuk Node atau Node Array ini

Pemeriksaan Kesehatan

Azure CycleCloud menyediakan mekanisme untuk mengakhiri komputer virtual (VM) yang berada dalam status tidak sehat yang disebut HealthCheck. Skrip yang ditentukan sistem dan pengguna (Python dan Bash) dijalankan secara berkala (5 menit pada Windows, 10 menit di Linux) untuk menentukan kesehatan keseluruhan VM. HealthCheck memungkinkan administrator untuk menentukan kondisi di mana VM harus dihentikan tanpa harus memantau dan memulihkan secara manual.

Skrip HealthCheck bawaan

VM yang diaktifkan CycleCloud dilengkapi dengan dua skrip HealthCheck default:

  • Skrip converge_timeout akan mengakhiri instans yang belum menyelesaikan konfigurasi perangkat lunak dalam waktu empat jam setelah peluncuran. Periode batas waktu ini dapat dikontrol dengan cyclecloud.keepalive.timeout pengaturan (ditentukan dalam detik).
  • Skrip scheduled_shutdown mencari file pembuat di $JETPACK_HOME/run/scheduled_shutdown yang berisi satu baris yang memberikan waktu matikan dalam detik tanda waktu Unix dan baris kedua opsional dengan penjelasan. Ketika waktu saat ini lebih lambat dari tanda waktu paling awal dalam file, VM dianggap tidak sehat.

Cara kerjanya

Skrip HealthCheck terletak di direktori $JETPACK_HOME/config/healthcheck.d . Linux mendukung skrip Python dan Bash, sementara Windows hanya mendukung skrip Python. Skrip harus menentukan kesehatan VM. Jika VM ditemukan tidak sehat, skrip harus keluar dengan status 254, yang menunjukkan ke CycleCloud bahwa VM tidak sehat dan harus dihentikan.

Saat masuk ke VM yang menjalankan HealthCheck, Anda dapat mencegah VM dimatikan dengan menjalankan perintah keepalive jetpack. Pada instans Linux Anda dapat menentukan jangka waktu dalam jam atau forever saat di Windows forever adalah satu-satunya opsi.

Catatan

Ketika VM ditentukan tidak sehat, agen HealthCheck akan membuat permintaan agar CycleCloud mengakhiri VM, VM tidak akan pernah dimatikan secara lokal melalui shutdown perintah. Jika VM tidak dapat berkomunikasi dengan CycleCloud, VM akan tetap terjaga meskipun tidak sehat sampai waktu di mana CycleCloud dapat dicapai.

Contoh

Sebagai contoh sederhana, kami akan menulis skrip HealthCheck yang akan memastikan bahwa VM Linux tidak aktif selama lebih dari 24 jam. Skrip ini dapat digunakan untuk mensimulasikan pengeluaran prioritas rendah untuk menguji bagaimana alur kerja bereaksi terhadap VM yang dikeluarkan. Skrip ini akan ditempatkan di /opt/cycle/jetpack/config/healthcheck.d/healthcheck_example.sh

#!/bin/bash

# Get the uptime of the system (in seconds) and check to see if it is
# greater than 86,400 (24 hours in seconds). If it is, exit 254 to
# signal that the VM is unhealthy.
if (( $(cat /proc/uptime | awk '{print ($1 > 86400)}'))); then
  exit 254
fi

Catatan

Skrip ini dapat ditempatkan pada VM melalui CycleCloud Project atau dengan menambahkannya secara langsung saat Membuat Gambar Kustom.