Ana içeriğe geç

Düğüm CLI'si

Bir vStack OS düğümünde yöneticinin iki yardımcı programa ihtiyacı vardır:

  • küme yardımcı programı vstack-cluster, küme düğümlerini ve servislerini gösterir, düğümleri etkinleştirir ve devre dışı bırakır, havuzları başlatır, durdurur ve taşır;
  • yükseltme betiği vStack.update.sh, düğümün paketlerini, temel sistemini ve çekirdeğini yükseltir.

Her ikisi de düğümün kendisinde root olarak çalıştırılır. Sanal makineler, ağlar ve VDC'ler vStack Center tarafından yönetilir; arayüzü ve API'si Center dokümantasyonunda açıklanmıştır.

Küme yardımcı programı​

vstack-cluster, Cluster Manager'ın (ccrd arka plan programı) istemcisidir. Düğüme vStack-ccrd paketiyle gelir ve /usr/local/bin dizininde bulunur. Yardımcı programın kendine ait bir durumu yoktur: her komut ccrd'ye gönderilir ve yardımcı program onun yanıtını yazdırır. Kümenin herhangi bir düğümünde çalıştırabilirsiniz.

Çağrı biçimi:

vstack-cluster <COMMAND> [<ACTION>] {OPTIONS}

Bir düğüm numarayla (--id, --dst-id), bir servis adla (-s, --service-name) belirtilir. Yardımcı program numara yerine düğüm adını kabul etmez. Düğüm numarası 1–63 aralığındadır.

Düğümler ve servisler​

  • Düğüm — bir küme sunucusu. Bir numarası (Node ID) ve q100u001.<domain> biçiminde bir adı vardır.
  • Servis — Cluster Manager'ın düğümlerden birine yerleştirdiği bir şey. Her zNN depolama havuzu zpool_zNN servisiyle temsil edilir. cluster-management servisi Cluster Manager'ın kendisine aittir: onu elle başlatmayın, durdurmayın veya taşımayın.

Bir düğümün ve bir servisin her birinin iki bağımsız özniteliği vardır:

ÖznitelikDeğerlerAnlamı
statedüğüm: ONLINE, OFFLINE; servis: STARTED, STOPPED, STOPPING ve diğerlerio andaki gerçek durum
[enabled] / [disabled]—düğüme servis yerleştirilip yerleştirilemeyeceği; servisin otomatik yerleşime ve yük devretmeye katılıp katılmadığı

Komutlar​

KomutNe yapar
statusdüğümler ve üzerlerinde çalışan servisler
node listdüğüm numaraları
node statustüm düğümlerin durumu
node disable --id=Ndüğümü servis yerleşimine kapatır
node enable --id=Ndüğümü yeniden açar
service listservis adları
service statustüm servislerin durumu ve üzerinde çalıştıkları düğümler
service start -s <service> --id=Nservisi N düğümünde başlatır
service stop -s <service>servisi durdurur
service move -s <service> --dst-id=Nservisi N düğümüne taşır
service enable -s <service>servisi otomatik yerleşime geri döndürür
service disable -s <service>servisi otomatik yerleşimin dışında bırakır
ha disk statusHA çitleme (fencing) grubunun disklerindeki SCSI/NVMe rezervasyonlarının durumu

node exit komutu bir düğümü kümeden çıkarır. Geri alınamaz, bu nedenle burada açıklanmamıştır: yalnızca vStack teknik desteğiyle birlikte çalıştırın.

Ortak seçenekler​

SeçenekNe yapar
-h, --helpgeçerli düzey için yardım, örneğin vstack-cluster service move --help
-v, --versionyardımcı program sürümü
-c <file>, --config=<file>farklı bir yapılandırma dosyası. Genellikle gerekmez

status​

Küme düğümleri ve her birindeki servisler. --json ile aynı içerik JSON olarak çıktılanır.

vstack-cluster status
Node ID: 1; name: q100u001.example.com; state: ONLINE; [ enabled]
Service name: zpool_z02; state: STARTED; [ enabled]

Node ID: 2; name: q100u002.example.com; state: ONLINE; [ enabled]
Service name: cluster-management; state: STARTED; [ enabled]
Service name: zpool_z03; state: STARTED; [ enabled]

Node ID: 3; name: q100u003.example.com; state: ONLINE; [ enabled]

Node ID: 4; name: q100u004.example.com; state: ONLINE; [ enabled]
Service name: zpool_z01; state: STARTED; [ enabled]
Service name: zpool_z04; state: STARTED; [ enabled]

Örnekteki q100u003 gibi hiç servisi olmayan bir düğüm, arızalanıp geri gelen bir düğüm için normaldir. Cluster Manager havuzları arızalı bir düğümden taşır, ancak kendiliğinden geri döndürmez. Bir havuzu service move komutuyla veya vStack Center'dan geri döndürebilirsiniz.

vstack-cluster status --json
{
"cluster": {
"nodes": [
{ "enabled": true, "id": 1, "name": "q100u001.example.com", "state": "ONLINE" }
],
"services": [
{ "enabled": true, "name": "zpool_z02", "nodeId": 1, "state": "STARTED" }
]
}
}

services[].nodeId, servisin üzerinde çalıştığı düğümün numarasıdır.

node list, node status​

node list yalnızca düğüm numaralarını yazdırır; node status numaraları, adları ve durumu yazdırır.

vstack-cluster node status
Node ID: 1; name: q100u001.example.com; state: ONLINE; [ enabled]
Node ID: 2; name: q100u002.example.com; state: ONLINE; [ enabled]

node disable, node enable​

disable düğümü servis yerleşimine kapatır; enable onu yeniden açar.

vstack-cluster node disable --id=2
vstack-cluster node enable --id=2
uyarı

disable komutundan sonra servisler düğümde kalır ve komut hiçbir şey yapmıyormuş gibi görünür. Ancak küme bileşimindeki bir sonraki değişiklikte, örneğin herhangi bir düğüm yeniden başladıktan sonra, Cluster Manager yerleşimi yeniden hesaplar ve servisleri kapatılmış tüm düğümlerden taşır. Yalnızca bir düğüm açık kalırsa kümenin tüm havuzları ona taşınır.

Aynı anda birden fazla düğümü kapatmayın ve işinizi bitirir bitirmez düğümü açın. Bir havuzu taşımak için node disable değil, service move kullanın.

service list, service status​

service list yalnızca servis adlarını yazdırır. service status her birinin durumunu ve üzerinde çalıştığı düğümün numarasını gösterir.

vstack-cluster service status
Service name: cluster-management; state: STARTED at node: 2; [ enabled]
Service name: zpool_z01; state: STARTED at node: 4; [ enabled]
Service name: zpool_z02; state: STARTED at node: 1; [ enabled]

status içinde tek bir servis veya tek bir düğüm seçemezsiniz; çıktıyı filtreleyin, örneğin vstack-cluster service status | grep zpool_z01.

service start, service stop​

stop, servisi çalıştığı düğümde durdurur. start, durdurulmuş bir servisi belirtilen düğümde başlatır.

vstack-cluster service stop -s zpool_z03
vstack-cluster service start -s zpool_z03 --id=3

Bir havuz servisini durdurmak, havuzu dışa aktarmak anlamına gelir: bu havuzun VM'leri durur ve birimlerinin sunulması sona erer.

service move​

Bir servisi başka bir düğüme taşır. Kaynak düğümü belirtmeniz gerekmez.

vstack-cluster service move -s zpool_z01 --dst-id=2
SeçenekZorunluNeyi belirler
-s, --service-nameevetservis adı
--dst-idevethedef düğüm numarası, 1–63

Hedef düğüm ONLINE ve açık (enabled) olmalıdır. Taşıma sırasında havuzun VM'leri ve birimlerinin sunulması kesintiye uğrar. Yönetim VM'sinin (vStack Center) çalıştığı havuz yalnızca bu komutla taşınabilir: Center arayüzünden taşınamaz. Prosedür "Yönetim VM'sinin bulunduğu havuzun taşınması" bölümünde açıklanmıştır.

Servis durduysa ancak yeni düğümde başlamadıysa yardımcı program onu geri taşımaz. Durumu service status komutuyla denetleyin ve servis STARTED olmadığı sürece teknik desteğe başvurun.

service enable, service disable​

enable servisi otomatik yerleşime geri döndürür; disable onu oradan çıkarır.

vstack-cluster service enable -s zpool_z03

enable komutundan sonra Cluster Manager yerleşimi yeniden hesaplar ve servisi hemen kendiliğinden başlatabilir.

Çıkış kodları​

KodAnlamı
0komut tamamlandı
12bilinmeyen bir komut, bilinmeyen bir seçenek veya eksik bir zorunlu seçenek. Yardımcı program nedeni ve yardımı yazdırır

ccrd_cli​

ccrd_cli, düğüme ccrd ile birlikte kurulur. Bağımsız değişken olmadan vstack-cluster status ile aynı çıktıyı yazdırır. Kümeyle çalışmak için vstack-cluster kullanın.

vStack.update.sh​

Düğüm yükseltme betiği. /root/bin/vStack.update.sh konumunda bulunur ve vStack deposundan paketleri yükseltir: denetleyiciler, temel sistem ve çekirdek. Yükseltme prosedürü, denetimler ve geri alma "Düğümün 3.2'ye yükseltilmesi" sayfasında açıklanmıştır.

vStack.update.sh {--controllers | --base} [OPTIONS]
Örnek​
/root/bin/vStack.update.sh --controllers --base --source release --version 3.2.0 --dry-run

Neyin yükseltileceği​

İki seçenekten en az biri zorunludur; aksi takdirde betik 1 koduyla çıkar.

SeçenekNeyi yükseltir
--controllerstemel sistem dışındaki düğüm paketlerini
--basetemel sistemi ve çekirdeği, ayrıca denetleyicileri. Bundan sonra düğüm yeniden başlatılmalıdır

Paketlerin nereden alınacağı​

SeçenekDeğerNeyi belirler
--sourcereleasevStack sürüm deposu. Müşteri düğümleri için standart kaynak budur. --version gerektirir
--sourcelocaldüğümdeki yerel bir depo, file:///local/repos/vstack/...
--versionX.Y.Z veya X.Y.Z-rcNdağıtım sürümü, örneğin 3.2.0
--repo-urlURLfarklı bir depo adresi, örneğin dahili bir yansı

Sürüm deposuna erişim, adreslerin bulunduğu bir izin listesiyle verilir. Bu liste için düğüm adreslerini vStack teknik desteğine gönderin.

Nasıl yükseltilir​

SeçenekNe yapar
--dry-runplanı gösterir ve hiçbir şeyi değiştirmez
--no-restartyükseltmeden sonra servisleri yeniden başlatmaz. Ardından yeniden başlatma gelecekse kullanışlıdır
--reboottemel sistemi ve çekirdeği yükselttikten sonra düğümü yeniden başlatır. 6 ve 7 kodlarında yok sayılır
--log PATHgünlük yolu. Varsayılan: /var/log/vstack-os-update-<ts>.log
-h, --helpyardım

Önyükleme koruması​

Varsayılan olarak betik önceki çekirdeği <kernel directory>_prev konumuna kaydeder, yenisini öncekine otomatik geri alma ile bir kez önyükler ve EFI bölümündeki önyükleyiciyi günceller. Önyükleyici yalnızca düğümün o anda önyüklendiği EFI bölümüne kopyalanır; ikinci sistem diskine ulaşmaz.

Aşağıdaki seçenekler bu korumaları devre dışı bırakır. Destek ekibi yönlendirmedikçe bunları kullanmayın.

SeçenekNeyi devre dışı bırakır
--no-kernel-backupönceki çekirdeğin kopyasını. Bu olmadan betik, kopya için yeterli alan yoksa durmaz
--no-fallbackyeni çekirdeğin otomatik geri almalı tek seferlik önyüklemesini
--no-espEFI bölümündeki önyükleyici güncellemesini

Ana sürümler arasında geçiş​

Yalnızca 2.x serisinden 3.x'e geçerken gereklidir ve vStack teknik desteğiyle birlikte yapılır.

SeçenekNe yapar
--allow-major-upgradeana sürümler arasında geçişe izin verir. Bu olmadan betik böyle bir geçişi 2 koduyla reddeder. Bir seri içindeki olağan yükseltme için gerekmez
--install-missinghedef sürümün düğümde eksik olan tüm paketlerini ek olarak kurar
--rename-map PATHyeniden adlandırılmış paketlerin haritası. Varsayılan olarak dağıtımdan alınır

Çıkış kodları​

KodAnlamı
0yükseltme tamamlandı
1bağımsız değişkenlerde hata
2kaynak veya sürüm kullanılamıyor, imzalama anahtarı alınamadı ya da --allow-major-upgrade olmadan ana sürümler arasında geçiş istendi
3bir pkg hatası veya yeni çekirdek denetimi hatası. Yeniden başlatma olmaz
4yapılandırma kaydedilemedi veya geri yüklenemedi: /etc, /usr/local/etc, vstack-env.conf, /boot içindeki önyükleme dosyaları
5kurulu bir servis yeniden başlamadı
6yükseltme tamamlandı, ancak root kabuğu çalıştırılabilir değil. Yeniden başlatmadan önce düzeltin, aksi takdirde root ssh üzerinden oturum açamaz
7yükseltme tamamlandı, ancak /boot yazımı doğrulanmadı. İncelenene kadar yeniden başlatmayın

Dosyalar​

Yolİçeriği
/var/backups/etc-<ts>//etc'nin bir kopyası; usr-local-etc ve boot alt dizinleri /usr/local/etc'nin ve loader.conf, loader.conf.local, device.hints dosyalarının kopyalarını içerir. En son beş kopya tutulur
/var/backups/vstack-env-<ts>.confvstack-env.conf'un bir kopyası
/var/backups/update-summary-<ts>.txtson çalıştırma özeti
/var/log/vstack-os-update-<ts>.logtam günlük
/boot/nextboot.conf, /boot/loader.conf.d/zz-vstack-fallback.confyeni çekirdeğin tek seferlik önyüklemesi ve geri alma. Başarılı bir önyüklemeden sonra düğüm bunları kendisi kaldırır