Sanal makine yaşam döngüsü
vStack Center'daki bir sanal makine aynı anda üç yerde bulunur. Küme veritabanı onun yetkili yapılandırmasını saklar: ad, vCPU sayısı, RAM boyutu, işletim sistemi profili ve disk ile ağ portu listeleri. Disklerin ZFS dataset'leri bir depolama havuzunda bulunur. Bir düğüm, bu yapılandırmadan oluşturulan hipervizör sürecini çalıştırır. vStack Center denetim düzlemidir: yetkili yapılandırmayı yönetir, düğümlerdeki ajanlar ise komutları yürütür.
Bu ayrım alt sistemin temel özelliğini belirler: neredeyse her VM işlemi önce küme kaydını,
ardından düğümdeki durumu değiştirir. Bu nedenle bir VM'nin iki durumu vardır. admin_status,
operatörün isteği üzerine vStack Center tarafından belirlenen istenen durumdur. oper_status
ise ajanlar tarafından bildirilen gerçek durumdur; bununla birlikte son güncelleme zamanı olan
oper_status_ts de bildirilir. Bir komut düğüme giderken durumlar farklıdır ve bu normaldir.
Dakikalarca süren bir tutarsızlık ise inceleme yapılması gerektiğinin işaretidir.
İki işlemin aynı VM'nin üzerine aynı anda yazmasını önlemek için vStack Center locked
bayrağını ayarlar. Başlatma, durdurma, disk ekleme ve ballooning, işlem süresince VM'yi kilitler
ve kilidi ajan yanıt işleyicisinde serbest bırakır. Bayrak ayarlıyken rakip çağrılar "VM is
locked" iletisiyle reddedilir; VM'yi yalnızca tek bir istek alabilir, çünkü denetim ve bayrak
güncellemesi tek bir atomik eylemdir.
3.1.0 sürümünden itibaren takılı kalan bir kilidin genellikle elle serbest bırakılması
gerekmez. İleti aracısıyla (message broker) iletişim hatası, operatör hatayı görmeden önce
kilidi otomatik olarak serbest bırakır. Bir VM'nin geçiş durumu zaman aşımından daha uzun
sürmez (aşağıdaki tabloya bakın). Zaman aşımı dolduğunda VM ilgili hata durumuna geçer ve neden
servis günlüğüne ve VM'nin durum geçmişine kaydedilir. Elle vm-unlock iki mekanizmanın da
ele almadığı durumlar için kullanılabilir olmaya devam eder ve onu yalnızca Cluster master rolü
kullanabilir.
Alt sistem genelinde kullanılan ikinci öznitelik yapılandırma sürümüdür: hw_version.
Yapılandırma sürümü üç olan VM'ler eski kurulumlardan kalmadır: v4 yöntem ailesi bunları
yönetmez ve istekleri ayrı bir hata koduyla reddeder. Bu bölümde açıklanan her şey
hw_version = 4 için geçerlidir; v3 VM'ler yalnızca okuma ve silmeyi destekler.
Üçüncü öznitelik bir VM'nin nerede çalışabileceğini belirler. nvme alanı disk bağlantı modunu
gösterir: true NVMe, false virtio-blk anlamına gelir. NVMe modunda diskler düğüme ağ
üzerinden erişilebilir, bu nedenle bir VM çevrimiçi herhangi bir küme düğümünde başlayabilir ve
vStack Center en az yüklü düğümü kendisi seçebilir. virtio-blk ile disk yalnızca havuzu
barındıran düğüme görünür, bu nedenle VM yalnızca orada başlayabilir. Eski disk
yapılandırmasından aktarılan Windows VM'lerinde genellikle nvme = false bulunur.
vStack Center uzun işlemler için istekleri açık tutmaz. Komutu kuyruğa alır ve denetimi hemen geri verir; ardından işi depolama denetleyicisi ve düğüm ajanı yapar. Bu, arayüzün nasıl okunacağını belirler: kabul edilmiş bir komut henüz tamamlanmamıştır. Tamamlanma, VM durumu ve VM kartındaki olay geçmişinde bir kayıtla doğrulanır.
VM durumları
VM durumu VM listesinin State sütununda ve VM kartında görünür. VM listesi VDC'nin
Virtual Machines sekmesinde açılır ve ID, Name, IP, OS, State ve Health
sütunlarını içerir.

Güç işlemlerini doğrulamak için kullanılan admin_status değerleri:
admin_status | Durum | Kullanılabilir işlemler |
|---|---|---|
1 | Durduruldu | Başlatma, bir anlık görüntüye geri alma, klonlama, taşıma (migrate), disk ve ağ portu ekleme ve kaldırma |
10 | Oluşturuldu, hiç başlatılmadı | Başlatma, taşıma |
3 | Çalışıyor | Durdurma, yeniden başlatma, askıya alma, sınırları değiştirme, ballooning, konsol |
11 | Askıya alındı | Sürdürme |
9 | Siliniyor | Yok: bir işlem sürüyor |
Geçiş durumları ve zaman aşımları
Geçiş durumu bir son durumu değil, süren bir işlemi gösterir. 3.1.0 sürümünden itibaren her birinin kendi zaman aşımı vardır: ajan bu süre içinde yanıt vermezse VM ilgili hata durumuna geçer ve kilidi açılır; böylece işlem yeniden denenebilir ve silme artık VM kilitli olduğu için reddedilmez. Zaman aşımları tek bir ortak değer kullanmak yerine her işlemin doğasını yansıtır.
| Geçiş durumu | Zaman aşımı | Zaman aşımından sonraki durum |
|---|---|---|
| Başlatılıyor | 15 dakika | Başlatma başarısız |
| Durduruluyor | 30 dakika | Durdurma başarısız |
| Askıya alınıyor | 30 dakika | Askıya alma başarısız |
| Sürdürülüyor | 30 dakika | Sürdürme başarısız |
| Oluşturuluyor | 1 saat | Oluşturma başarısız |
| Siliniyor | 1 saat | Silme başarısız |
| Taşınıyor | 6 saat | Taşıma başarısız |
| Geri yükleniyor | 6 saat | Geri yükleme başarısız |
İki açıklama geçerlidir. Başarıyla oluşturulmuş ancak hiç başlatılmamış bir VM bu kurala tabi değildir: ilk düğüm olayına veya envanter döngüsüne kadar meşru olarak oluşturma durumunda kalabilir. Ayrıca bir ajan askıda kaldığında VM geçiş durumundan hemen değil, zaman aşımı dolduğunda çıkar; ajan daha sonra yanıt verirse VM durumu gerçek durumunu yansıtacak şekilde düzeltilir.
Zaten çalışan bir VM için verilen yeni bir başlatma komutu "Unable to start VM having admin_status==N already" döndürür. Askıya alınmış bir VM normal durdurma komutuyla durdurulabilir; başlatmak için önce askıdan sürdürün.
Yapılandırma sürümü ve disk modu
| Öznitelik | Değer | Etki |
|---|---|---|
hw_version | 4 | İşlemlerin tam kümesi |
hw_version | 3 | v4 yöntemleri isteği reddeder: "VM with hardware version == 3 can't be managed via v4 method"; anlık görüntüler ve geri alma kullanılamaz |
nvme | true | Çevrimiçi herhangi bir düğümde başlatma; açıkça bir düğüm seçilmezse vStack Center en az yüklü düğümü seçer |
nvme | false | Yalnızca havuz düğümünde başlatma; başka bir düğümde başlatma denemesi "virtio-blk VM: start only on the pool node" döndürür |
create_completed | nvme = true olan Windows için 0 | İlk kurulum tamamlanana kadar uzaktan başlatma yasaktır: "Windows: finish setup on the pool node before remote start" |
Mevcut bir VM'nin disk modu anında değiştirilemez: Windows yüklendikten sonra disk yapılandırmasını değiştirmek konuk sistemin önyüklenmesini engeller. Bu nedenle eski yapılandırmadan aktarılan VM'ler virtio-blk modunda kalır ve havuz düğümüne bağlıdır.
Anında ve ertelenmiş işlemler
vStack Center bazı işlemleri kendisi, anında gerçekleştirir: VM listesini ve VM kartını görüntüleme, bir konsol adresi döndürme ve başvuru verilerini okuma. Diğer işlemler düğüm ajanını veya depolama denetleyicisini gerektirir: başlatma, durdurma, disk oluşturma ve genişletme, anlık görüntüler ve taşıma. Bu komutlar önce kaydedilir, sonra yürütülür.
Uygulamada bu şöyle işler. Komut kabul edilir, VM kilitli olarak işaretlenir ve durumları
ayrışır. Birkaç saniye sonra (taşıma için dakikalar sonra) oper_status, admin_status
değerine yetişir, kilit serbest bırakılır ve VM'nin olay geçmişine eylemi, durumu ve süreyi
içeren bir kayıt eklenir. Bir hata kaydı işlemin tamamlanmadığı anlamına gelir; kilit serbest
bırakıldıktan sonra yeniden denenebilir.
Bazı işlemlerde davranış VM durumuna bağlıdır. Durdurulmuş bir VM'de disk veya ağ portu sınırı belirlemek yalnızca küme kaydını değiştirir ve hemen etkili olur; çalışan bir VM'de ise komut düğüme gönderilir. Kısmi başarı ayrı bir durumdur: sınır yapılandırmaya kaydedilir ancak ajan bunu uygulamaz ("Ratelimit has been set (DB), but agent didn't apply it"). Değer, VM bir sonraki başlatıldığında etkili olur.
Kapasite sınırları
Bir VM'yi başlatmak iki bağımsız denetim içerir. Önce vStack Center vCPU, RAM ve depolama için VDC (sanal veri merkezi) kotalarını denetler. Ardından küme düzeyinde RAM aşırı tahsisini (overcommit) denetler.
| Hata kodu | İleti | Neden |
|---|---|---|
-415 | vDC CPU cores quota depleted | VDC çekirdek kotası tükendi |
-414 | vDC RAM quota depleted | VDC RAM kotası tükendi |
-413 | vDC storage quota depleted | VDC depolama kotası tükendi |
-440 | Cluster RAM has been depleted | Aşırı tahsis hesaba katıldığında kümede yeterli RAM yok |
-458 | No available online nodes for VM placement | Otomatik yerleştirme için çevrimiçi düğüm yok |
-461 | VM is running on another cluster node | Bir düğüm, VM'nin başlatma komutunun hedeflediği düğümden farklı bir düğümde çalıştığını bildirdi (3.2.0 sürümünden itibaren) |
Başlatma ile yeniden başlatma arasındaki fark ince ama kapasite planlaması için önemlidir.
vms-start ile VM'nin kaynakları geçerli tüketime eklenir, çünkü henüz kullanımda değildir.
vms-restart ile VM zaten hesaba katılmıştır, bu nedenle kaynakları yeniden eklenmez ve aşırı
tahsis denetimi onun RAM'ini boş RAM'den düşmez.
İşlem haritası
| Görev | Yöntemler |
|---|---|
| VM oluşturma veya silme, VDC'ler arasında taşıma | vms-create, vms-remove, vm-change-vdc |
| Güç, askıya alma, konsol, kilit açma | vms-start, vms-stop, vms-restart, vms-suspend, vms-resume, vms-suspend-pool, vms-resume-pool, vm-console, vm-unlock |
| Diskler, bellek, CPU | vms-add-disk, vms-disk-resize, vm-remove-disk, vm-disk-set-label, vm-ratelimit-disk, vm-set, vms-balloon, vms-cpu-priority, vms-vcpu-class |
| Ağ arabirimleri | vms-add-nic, vm-remove-nic, vm-ratelimit-nic |
| Anlık görüntüler ve geri alma | vms-snapshot, vm-snapshot-list, snapshot-list, vms-snapshot-remove, vms-rollback |
| Taşıma, klonlama, içe aktarma alanından geri yükleme | vm-migrate, vm-migrate-status, vm-migration, vms-clone, vm-import-area-list, vm-import-area-process |
| Envanter, ölçümler, yapılandırma doğrulama | vm-list, vm-get, vm-history, vm-perfdata, vm-check-configuration, vm-inventory |
Ayrıca bakın
- Sanal makine oluşturma, silme ve taşıma
- VM gücünü yönetme ve konsola bağlanma
- VM disklerini ve işlem kaynaklarını yönetme
- VM'yi bir ağa bağlama
- VM anlık görüntüleri alma ve bunlara geri dönme
- VM'yi taşıma ve klonlama
- VM envanteri, ölçümler ve yapılandırma doğrulama: yanıt alanları başvurusu ve başvuru yöntemleri
API yöntemleri
Bu sayfanın API işlemleri yukarıdaki "İşlem haritası" tablosunda listelenmiştir; bkz. API başvurusu.