Ana içeriğe geç

Küme servisleri nasıl yönetilir

Ne zaman kullanılır​

Küme servisi, Cluster Manager'ın belirli bir düğümde başlattığı bir birimdir. Depolama havuzları (zpool_ssd01, zpool_tank0 gibi adlarla) ve küme sistem servisleri bu şekilde temsil edilir. Servisleri bir düğümün bakımı sırasında, bir havuzu başka bir düğüme taşırken ve başlamayan bir servisin sorununu giderirken yönetirsiniz.

Bir servisin birbirinden bağımsız iki boyutu vardır. Birincisi izindir: servisin çalışmasına izin verilip verilmediği veya devre dışı olup olmadığı. İkincisi durumdur: başlatılmış mı yoksa durdurulmuş mu olduğu. Bir servisi etkinleştirmek onu başlatmaz; devre dışı bir servisi başlatma girişimi ise doğrulamadan geçemez. Bu ayrım bilinçlidir: devre dışı bırakma, düğüm yeniden başlatıldıktan sonra bile servisi kapalı tutar; durdurma ise tek seferlik bir eylemdir.

KomutNeyi değiştirirDüğüm gerekliNe zaman kullanılır
Etkinleştirmeİzin — servisin çalışmasına izin verilirhayırBir servisi yeniden çalışmaya döndürme
Devre dışı bırakmaİzin — servis devre dışı bırakılırhayırUzun süreli bakım, bir havuzu hizmet dışı bırakma
BaşlatmaDurum — bir düğümde başlatmaevetBir servisi seçilen düğümde başlatma
DurdurmaDurum — durdurmahayırDevre dışı bırakmadan tek seferlik durdurma

Asimetriye dikkat edin: başlatma bir düğüm gerektirir, durdurma gerektirmez. Bir servis belirtilen bir düğümde başlar ve o anda nerede çalışıyorsa orada durur.

Ön koşullar​

  • Cluster master (role_id=1) rolü — dört komutun tamamı bu rolle sınırlıdır;
  • Kullanılabilir bir Cluster Manager: komutlar ona gider, o da komutları düğümlere iletir;
  • Harf, rakam ve alt çizgi içeren bir servis adı — küme tire, nokta veya boşluk kabul etmez;
  • vStack Center sürüm 3.0.3.

Adım 1. Mevcut servis durumunu görüntüleyin​

Servis durumu küme üyeliğiyle birlikte alınır.

  1. Provider Data Center → Storage Resources bölümünü açın. ZFS pools tablosu küme havuzlarını GUID, Name, Health, Consuming, Scrubbing, Resilvering, Current node ve Capacity (RAW) sütunlarıyla gösterir.
  2. Tablodan bir havuz açın — havuz kartı, havuz işlemlerini içeren bir Actions menüsü sunar.

Durumu şöyle yorumlayın: izin servisin çalışmasına izin verilip verilmediğini, durum şu anda çalışıp çalışmadığını, Current node ise hangi düğümde çalıştığını söyler. Etkin ve çalışan bir havuz kendi düğümünde çalışıyor olarak görünür. Devre dışı ve durdurulmuş bir servisi başlatmanın anlamı yoktur: önce onu etkinleştirin.

Adım 2. Bir servisi bir düğümde başlatın​

Başlatma belirli bir düğümü hedefler: hem bir servise hem de bir düğüme ihtiyacınız vardır. vStack Center komutu Cluster Manager'a iletir, o da komutu düğüme ulaştırır.

  1. Servisin etkin olduğundan emin olun. Devre dışıysa önce 4. adımı tamamlayın.
  2. Servisi ve çalışacağı düğümü seçin ve başlatın.
  3. Sonucu kontrol edin: servis çalışıyor olmalı ve onu barındıran düğüm seçtiğiniz düğümle eşleşmelidir.

Kabul edilen bir komut, Cluster Manager'ın komutu aldığını doğrular. Servisin gerçekten başladığını yalnızca düğümdeki servis durumu doğrular.

Adım 3. Bir servisi durdurun​

Durdurma bir düğüm gerektirmez: Cluster Manager servisin nerede çalıştığını zaten bilir. Servisi seçin ve durdurun.

Durdurma yalnızca durumu değiştirir. İzin korunur, bu nedenle servis yeniden başlayabilir — örneğin düğüm yeniden başlatıldığında. Servisin kapalı kalması gerekiyorsa onu devre dışı bırakın.

Adım 4. Bir servisi etkinleştirin veya devre dışı bırakın​

İzin kalıcı bir karardır. Devre dışı bırakma, yeniden başlatmalardan bağımsız olarak servisi kapalı tutar.

uyarı

Bir depolama havuzu servisini devre dışı bırakmak, sunduğu verileri erişilemez hale getirir. Devre dışı bırakmadan önce Storage Resources bölümünde servisi hangi düğümün barındırdığını (Current node sütunu) ve hangi iş yüklerinin ona bağlı olduğunu kontrol edin.

Servisi seçin ve devre dışı bırakın — herhangi bir düğüm belirtmeniz gerekmez. Aynı yoldan karşıt komutu kullanarak etkinleştirin.

Bakım için şu sırayı izleyin: servisi durdurun, devre dışı bırakın, işi yapın, etkinleştirin ve gerekli düğümde başlatın. Ters sıra — durdurmadan devre dışı bırakma — servisi ilk yeniden başlatmaya kadar çalışır durumda bırakır.

Havuz servisini durdurmak uzak düğümlerde çalışan VM'leri de kapatır​

Bu havuzu kullanan VM'ler sahip düğüm dışındaki düğümlerde de çalışabilir: NVMe modunda diskleri olan bir makine herhangi bir düğümde başlayabilir ve disklerine ağ üzerinden sahip düğümden erişebilir. 3.2.0'dan önce servisi durdurmak yalnızca sahip düğümdeki makineleri kapatıyordu; uzak makineler çalışmaya devam ediyor ve havuzu kullanımda tutuyordu — dışa aktarma "pool is busy" hatasıyla başarısız oluyor ve servis özgün düğümünde kalıyordu.

3.2.0'dan itibaren vStack Center, servisi durdurmadan önce havuzun diğer düğümlerdeki makinelerini kapatır. Aynısı bir havuz taşınırken de geçerlidir. Bakımı planlarken bunu hesaba katın: bir havuz servisini durdurmak artık komşu düğümlerde çalıştığını gördüğünüz makineleri de kapatır.

Bariyer "emin değilsen başlatma" ilkesini izler. Bir düğüm denetimden yalnızca kapatmayı onaylarsa veya bu havuzu kullanan makinesi olmadığını bildirirse geçer. Başka herhangi bir sonuç — bir hata, zaman aşımı veya kopan bağlantı — durdurma işlemini engeller: işlem hiç başlamaz, servis çalışmaya devam eder ve ret yanıtı işlemi engelleyen makinelerin ve düğümlerinin bir listesini içerir. Denetimin tamamının 2 dakikalık bir zaman sınırı vardır.

Sonucu doğrulayın​

Servis durumuna dönün ve istediğinizle karşılaştırın.

EylemKomuttan sonra beklenen sonuç
BaşlatmaServis istekte belirtilen düğümde çalışıyor
DurdurmaServis durdurulmuş ve etkin kalmış
Devre dışı bırakmaServis devre dışı ve durdurulmuş
EtkinleştirmeServis etkin; çalışması için başlatılması gerekir

İzin değişmiş ancak durum değişmemişse, komut kabul edilmiş ancak düğüm henüz geri bildirimde bulunmamıştır. Servis durumunu yeniden alın.

Sorun giderme​

Ne görüyorsunuzNedenNe yapmalı
Bir servis komutu -403 "Access denied" koduyla reddediliyorServis komutları yalnızca Cluster master rolü tarafından kullanılabilirKüme düzeyinde bir rolle oturum açın
Hata kodu -32602 "Invalid params"Servis adı biçim doğrulamasından geçemediTireleri, noktaları ve boşlukları kaldırın; adı Name sütunuyla karşılaştırın
Başlatma -20522 koduyla reddediliyorDüğüm kimliği doğrulamadan geçemediDüğüm kimliğini bir sayı olarak girin
Hata kodu -713Komut Cluster Manager'a iletilemediCluster Manager'ın erişilebilirliğini kontrol edin; komut düğümlere ulaşmadı
Komut kabul edildi, ancak servis durumu değişmediCluster Manager komutu kabul etti, ancak düğüm henüz uygulamadıDurumu yeniden alın; tutarsızlık sürerse Current node sütunundaki düğümü kontrol edin
Servis, düğüm yeniden başlatıldıktan sonra kendiliğinden başladıDevre dışı bırakılmadan durdurulmuştuServisi yalnızca durdurmak yerine devre dışı bırakın
Bir havuz servisini durdurmak, işlemi engelleyen makinelerin bir listesini döndürdüHavuzun diğer düğümlerdeki makineleri kapatılamadı: bir düğüm yanıt vermedi, bağlantı koptu veya bir düğüm hata döndürdüBelirtilen düğümlerde listelenen makinelerle ilgili sorunları giderin ve durdurmayı yeniden deneyin; servis değişmeden kalır
Başlatmanın hiçbir etkisi yokServis devre dışıÖnce servisi etkinleştirin, ardından başlatın
Küme üyeliği verisi görünmüyorKullanıcının durum haritasını görüntüleme yetkisi yokView Cluster Status Map (full) (6003) yetkisini talep edin

Ayrıca bakın​

API metotları​

Bu sayfada ele alınan API işlemleri: get-statusmap, cluster-service-enable, cluster-service-disable, cluster-service-start, cluster-service-stop — bkz. API başvurusu.