Aracılığıyla paylaş


Sistem durumu denetimleri

CycleCloud, VM'lerin durumunu denetlemek için iki mekanizma sunar: Düğüm Durumu Denetimleri, sağlama aşamasında denetimleri gerçekleştiren ve iyi durumda olmayan VM'lerin katılmasını engelleyen daha yeni bir özelliktir; HealthCheck ise VM kümeye düğüm olarak katıldıktan sonra bunları düzenli aralıklarla çalıştırır.

Düğüm Sistem Durumu Denetimleri

Düğüm Durumu Denetimleri, vm'nin CycleCloud kümesine katılmasına izin verilmeden önce iyi durumda olmayan donanımları algılayabilir. Bu özelliğin geçerli sürümü, /opt/azurehpc/test/azurehpc-health-checks/ altında bulunabilen resmi AzureHPC görüntülerindeki sistem durumu denetimi betiklerini çalıştırır. Bu betiklerin kaynağı AzureHPC Düğüm Durumu Denetimleri deposunda bulunur, ancak kümenizin AzureHPC görüntüsünün sürümünde yerleşik olan sürümün depoda bulunan en son sürüm olmayabileceğini lütfen unutmayın.

Gereksinimler

Düğüm Durumu Denetimleri'nin geçerli sürümü yalnızca 7 Kasım 2023'ten sonra yayımlanan AzureHPC görüntülerini (azurehpc-health-checks sürüm v2.0.6 veya üzerini içeren) ve bunlardan türetilen özel görüntüleri destekler. Düğüm Sistem Durumu Denetimleri şu anda Windows'ta desteklenmiyor.

Slurm Kümeleri için Düğüm Durumu Denetimlerini Etkinleştirme

Slurm kümesi oluşturma formu , Gelişmiş Ayarlar sekmesinde bulunan Düğüm Durumu Denetimlerini etkinleştirmek için bir onay kutusu sunar. kutusunun işaretlenmesi, kümenin HPC düğüm dizisinde Düğüm Durumu Denetimlerini etkinleştirir. Diğer düğüm dizilerinde (veya diğer küme türleri için) Düğüm Durumu Denetimleri'ni etkinleştirmek istiyorsanız, özel bir küme şablonu kullanmanız gerekir.

Düğüm Durumu Denetimleri, yalnızca kutunun işaretini kaldırarak çalışan bir kümede devre dışı bırakılabilir. Değişikliklerin etkili olması için düğüm dizisini ölçeklendirmeye gerek yoktur.

Düğüm Durumu Denetimleri GUI

Düğüm Durumu Denetimleri sonuçlarını anlama

Vm sistem durumu denetimlerini geçtikten sonra yazılım yapılandırma aşamasına geçer.

Bir VM sistem durumu denetimi betiklerinden herhangi birinde başarısız olursa CycleCloud'a bir hata iletisi gönderilir ve VM'nin kümeye katılması otomatik olarak engellenir.

Düğüm Durumu Denetimleri hata günlükleri

Vm, fazla sağlama etkin bir NodeArray'de başlatılırsa (örneğin, Slurm hpc Node Dizisi), aşırı sağlamanın bir parçası olarak vm otomatik olarak değiştirilmelidir. Bu durumda, herhangi bir eylem gerekmez ve kümeye katılmak için iyi durumdaki VM'ler seçilir (ancak küme sayfanızda bir veya daha fazla VM'nin başarısız olduğunu belirten bir hata iletisi görürsünüz).

VM tek bir Düğüm için başlatılırsa, aşırı sağlama devre dışı bırakılmış bir Düğüm Dizisi (örneğin, Slurm htc Node Dizisi) veya fazla sağlama tarafından desteklenenden daha fazla VM sistem durumu denetiminde başarısız olursa, Düğüm Başarısız durumuna geçer ve ayırma başarısız olur. CycleCloud sorunu düzeltmek için VM'nin görüntüsünü yeniden oluşturmayı deneyebilir, ancak yeniden görüntü başarısız olursa düğümün sonlandırılıp değiştirilmesi gerekir (yönetici tarafından el ile veya otomatik ölçeklendirici tarafından otomatik olarak).

Not

Düğüm Durumu Denetimlerini etkinleştirdiyseniz ancak VM görüntüsü yukarıdaki gereksinimleri karşılamıyorsa, tüm VM'lerin kümeye katılmasına izin verilir, ancak durum denetimlerin desteklenmediğini belirten bir uyarı içerir. Düğüm Durumu Denetimleri hata ayrıntıları

Öznitelik Başvurusu

Öznitelik Tür Tanım
EnableNodeHealthChecks Boole (İsteğe bağlı) Bu Düğüm veya Düğüm Dizisi için önyükleme düğüm durumu denetimlerini etkinleştir

HealthCheck

Azure CycleCloud, HealthCheck adlı iyi durumda olmayan sanal makineleri (VM) sonlandırmak için bir mekanizma sağlar. Hem sistem hem de kullanıcı tanımlı betikler (Python ve Bash), vm'nin genel durumunu belirlemek için düzenli aralıklar (Windows'ta 5 dakika, Linux'ta 10 dakika) çalıştırılır. HealthCheck, yöneticilerin el ile izlemek ve düzeltmek zorunda kalmadan VM'lerin hangi koşullar altında sonlandırılacağını tanımlamasına olanak tanır.

Yerleşik HealthCheck betikleri

CycleCloud özellikli VM'ler iki varsayılan HealthCheck betikleriyle birlikte gelir:

  • converge_timeout betiği, yazılım yapılandırmasını tamamlamamış bir örneği başlatmadan sonraki dört saat içinde sonlandıracaktır. Bu zaman aşımı süresi ayarıyla cyclecloud.keepalive.timeout (saniye cinsinden tanımlanır) denetlenebilir.
  • scheduled_shutdown betiği $JETPACK_HOME/run/scheduled_shutdown içinde unix zaman damgası saniyelerinde kapatma süresi ve açıklama içeren isteğe bağlı ikinci satır içeren oluşturucu dosyalarını arar. Geçerli saat dosyalardaki en erken zaman damgasından sonra olduğunda, VM iyi durumda değil olarak kabul edilir.

Nasıl çalışır?

HealthCheck betikleri $JETPACK_HOME/config/healthcheck.d dizininde bulunur. Linux hem Python hem de Bash betiklerini desteklerken Windows yalnızca Python betiklerini destekler. Betik, VM'nin sistem durumunu belirlemelidir. VM'nin iyi durumda olmadığı tespit edilirse betik, CycleCloud'a vm'nin iyi durumda olmadığını ve sonlandırılması gerektiğini belirten bir durumuyla 254çıkmalıdır.

HealthCheck çalıştıran bir VM'de oturum açtığınızda , jetpack keepalive komutunu çalıştırarak VM'nin kapatılmasını engelleyebilirsiniz. Linux örneklerinde bir zaman dilimini saat cinsinden veya forever Windows'da forever tek seçenek olarak belirtebilirsiniz.

Not

Bir VM iyi durumda değil olarak belirlendiğinde, HealthCheck aracısı CycleCloud'un VM'yi sonlandırması için bir istekte bulunur, VM hiçbir zaman komut aracılığıyla shutdown yerel olarak kapatılmaz. VM'nin CycleCloud ile iletişim kuramaması durumunda, CycleCloud'a ulaşılana kadar iyi durumda olmasa bile VM çalışır.

Örnek

Basit bir örnek olarak, Linux VM'lerinin 24 saatten uzun süre etkin olmamasını sağlayacak bir HealthCheck betiği yazacağız. Bu betik, bir iş akışının çıkarılan VM'ye nasıl tepki verebileceğini test etmek için düşük öncelikli çıkarmaların benzetimini yapmak için kullanılabilir. Bu betik /opt/cycle/jetpack/config/healthcheck.d/healthcheck_example.sh içine yerleştirilir

#!/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

Not

Bu betik , CycleCloud Projesi aracılığıyla veya Özel Görüntü Oluştururken doğrudan eklenerek bir VM'ye yerleştirilebilir.