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) veq100u001.<domain>biçiminde bir adı vardır. - Servis — Cluster Manager'ın düğümlerden birine yerleştirdiği bir şey. Her
zNNdepolama havuzuzpool_zNNservisiyle temsil edilir.cluster-managementservisi 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:
| Öznitelik | Değerler | Anlamı |
|---|---|---|
state | düğüm: ONLINE, OFFLINE; servis: STARTED, STOPPED, STOPPING ve diğerleri | o 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
| Komut | Ne yapar |
|---|---|
status | düğümler ve üzerlerinde çalışan servisler |
node list | düğüm numaraları |
node status | tüm düğümlerin durumu |
node disable --id=N | düğümü servis yerleşimine kapatır |
node enable --id=N | düğümü yeniden açar |
service list | servis adları |
service status | tüm servislerin durumu ve üzerinde çalıştıkları düğümler |
service start -s <service> --id=N | servisi N düğümünde başlatır |
service stop -s <service> | servisi durdurur |
service move -s <service> --dst-id=N | servisi 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 status | HA ç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çenek | Ne yapar |
|---|---|
-h, --help | geçerli düzey için yardım, örneğin vstack-cluster service move --help |
-v, --version | yardı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
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çenek | Zorunlu | Neyi belirler |
|---|---|---|
-s, --service-name | evet | servis adı |
--dst-id | evet | hedef 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ı
| Kod | Anlamı |
|---|---|
0 | komut tamamlandı |
12 | bilinmeyen 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çenek | Neyi yükseltir |
|---|---|
--controllers | temel sistem dışındaki düğüm paketlerini |
--base | temel sistemi ve çekirdeği, ayrıca denetleyicileri. Bundan sonra düğüm yeniden başlatılmalıdır |
Paketlerin nereden alınacağı
| Seçenek | Değer | Neyi belirler |
|---|---|---|
--source | release | vStack sürüm deposu. Müşteri düğümleri için standart kaynak budur. --version gerektirir |
--source | local | düğümdeki yerel bir depo, file:///local/repos/vstack/... |
--version | X.Y.Z veya X.Y.Z-rcN | dağıtım sürümü, örneğin 3.2.0 |
--repo-url | URL | farklı 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çenek | Ne yapar |
|---|---|
--dry-run | planı gösterir ve hiçbir şeyi değiştirmez |
--no-restart | yükseltmeden sonra servisleri yeniden başlatmaz. Ardından yeniden başlatma gelecekse kullanışlıdır |
--reboot | temel sistemi ve çekirdeği yükselttikten sonra düğümü yeniden başlatır. 6 ve 7 kodlarında yok sayılır |
--log PATH | günlük yolu. Varsayılan: /var/log/vstack-os-update-<ts>.log |
-h, --help | yardı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çenek | Neyi devre dışı bırakır |
|---|---|
--no-kernel-backup | önceki çekirdeğin kopyasını. Bu olmadan betik, kopya için yeterli alan yoksa durmaz |
--no-fallback | yeni çekirdeğin otomatik geri almalı tek seferlik önyüklemesini |
--no-esp | EFI 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çenek | Ne yapar |
|---|---|
--allow-major-upgrade | ana 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-missing | hedef sürümün düğümde eksik olan tüm paketlerini ek olarak kurar |
--rename-map PATH | yeniden adlandırılmış paketlerin haritası. Varsayılan olarak dağıtımdan alınır |
Çıkış kodları
| Kod | Anlamı |
|---|---|
0 | yükseltme tamamlandı |
1 | bağımsız değişkenlerde hata |
2 | kaynak 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 |
3 | bir pkg hatası veya yeni çekirdek denetimi hatası. Yeniden başlatma olmaz |
4 | yapılandırma kaydedilemedi veya geri yüklenemedi: /etc, /usr/local/etc, vstack-env.conf, /boot içindeki önyükleme dosyaları |
5 | kurulu bir servis yeniden başlamadı |
6 | yü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 |
7 | yü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>.conf | vstack-env.conf'un bir kopyası |
/var/backups/update-summary-<ts>.txt | son çalıştırma özeti |
/var/log/vstack-os-update-<ts>.log | tam günlük |
/boot/nextboot.conf, /boot/loader.conf.d/zz-vstack-fallback.conf | yeni çekirdeğin tek seferlik önyüklemesi ve geri alma. Başarılı bir önyüklemeden sonra düğüm bunları kendisi kaldırır |