Kısa cevap

vMotion, çalışan bir sanal makineyi kapatmadan başka bir fiziksel host'a taşıma özelliğidir. Makinenin belleği hedef host'a kopyalanır, son farklar aktarılırken çok kısa bir an durdurulur ve çalışmaya hedef host'ta devam eder. Kullanıcı tarafında tipik olarak fark edilir bir kesinti oluşmaz.

Neden var?#

Canlı taşıma, planlı bakımı mümkün kılar. Bir sunucunun belleğini değiştirmek, bellenimini güncellemek veya hypervisor sürümünü yükseltmek için üzerindeki tüm sanal makineleri kapatmak gerekmez; makineler başka host'lara taşınır, iş sürer.

Aynı mekanizma yük dengeleme için de kullanılır: bir host doyduğunda sanal makineler otomatik olarak daha boş host'lara dağıtılabilir.

Nasıl çalışır?#

Taşıma adımları

  1. Hedef host'ta sanal makine için bir "kabuk" oluşturulur.
  2. Kaynak host, sanal makinenin belleğini hedefe kopyalamaya başlar. Makine bu sırada çalışmaya devam eder.
  3. Kopyalama sürerken değişen bellek sayfaları işaretlenir ve tekrar tekrar gönderilir. Her turda gönderilecek veri azalır.
  4. Kalan fark yeterince küçüldüğünde sanal makine çok kısa bir süre durdurulur, son sayfalar ve işlemci durumu aktarılır.
  5. Makine hedef host'ta çalışmaya devam eder; ağ trafiği yeni konuma yönlendirilir.

Gereksinimler#

Canlı taşımanın çalışabilmesi için birkaç koşul sağlanmalıdır:

  • Kaynak ve hedef host, sanal makinenin diskine erişebilmelidir (paylaşılan depolama; ya da diskin de taşındığı bir taşıma türü kullanılmalıdır).
  • Host'lar arasında taşıma için ayrılmış, yeterli bant genişliğine sahip bir ağ bulunmalıdır.
  • Sanal makinenin bağlı olduğu ağlar hedef host'ta da aynı biçimde tanımlı olmalıdır.
  • İşlemciler uyumlu komut setlerini sunmalıdır.

vMotion, HA ve yedekleme farkı#

Bu üç mekanizma sık sık birbirinin yerine kullanılır; oysa farklı sorunları çözerler.

Üç mekanizmanın karşılaştırması
MekanizmaNe zaman devreye girerSonuç
vMotionPlanlı taşıma (bakım, yük dengeleme)Kesintisiz taşıma
HAPlansız host arızasıSanal makine başka host’ta yeniden başlar
YedeklemeVeri kaybı, bozulma, silmeGeri yükleme ile dönüş

Tablo yatay olarak kaydırılabilir.

vMotion planlı durumlar içindir. Host aniden çökerse taşınacak bir şey kalmaz; o senaryo HA'nın işidir.

Pratik notlar#

  • Taşıma ağını kullanıcı trafiğinden ayırın; aksi hâlde taşıma hem yavaşlar hem de kullanıcı trafiğini etkiler.
  • Çok büyük bellekli makinelerin taşınması uzun sürer; bakım penceresini buna göre planlayın.
  • Bakım moduna alma işlemi, host üzerindeki tüm makineleri taşır: kalan host'larda yeterli kapasite olduğundan emin olun.
  • Taşımanın başarısız olduğu durumlarda sanal makine kaynak host'ta çalışmaya devam eder; işlem geri alınabilir tasarlanmıştır.

vMotion sırasında gerçekten kesinti olmaz mı?#

Uygulama düzeyinde fark edilmez, ama teknik olarak çok kısa bir geçiş anı vardır.

Taşıma sırasında bellek içeriği hedefe kopyalanırken kaynak makine çalışmaya devam eder; bu sırada değişen sayfalar tekrar gönderilir. Son adımda makine çok kısa bir süre durdurulur, kalan son durum aktarılır ve hedefte çalışmaya devam eder. Bu duruş tipik olarak saniyenin çok altındadır.

Bu yüzden vMotion, bağlantıların kopmasına yol açmaz. Ancak gecikmeye çok duyarlı bir uygulama için bu anın bile ölçülmesi gerekebilir.

Farklı işlemci nesilleri arasında vMotion yapılabilir mi?#

Doğrudan yapılamaz, ama bunun için bir mekanizma vardır.

Sorun şudur: çalışan bir işletim sistemi, başlangıçta gördüğü işlemci özelliklerine göre karar verir. Taşındığı host'ta o özelliklerden biri yoksa, o özelliği kullanan kod beklenmeyen biçimde davranır.

Çözüm, cluster genelinde ortak bir işlemci özellik tabanı belirlemektir. Host'lar bu tabanın üstündeki yeni özellikleri sanal makinelerden saklar; böylece bütün makineler her host'ta aynı işlemciyi görür ve taşınabilir.

Bedeli, yeni nesil host'ların bazı yeteneklerinden vazgeçmektir. Karışık nesilli cluster'larda bu genellikle kabul edilebilir bir takas sayılır.

Storage vMotion ile farkı nedir?#

İkisi farklı şeyi taşır ve birbirinin yerine geçmez.

İki taşıma türü
ÖlçütvMotionStorage vMotion
Taşınan şeyÇalışan makinenin belleği ve işlem durumuMakinenin disk dosyaları
Değişen kaynakHostDatastore
Tipik amaçHost bakımı, yük dengelemeDepolama bakımı, alan yönetimi, tier değişimi
Süreyi belirleyenBellek miktarı ve değişim hızıDisk boyutu ve depolama hızı

Tablo yatay olarak kaydırılabilir.

İkisi aynı anda da yapılabilir: makine hem başka bir host'a hem başka bir datastore'a taşınır. Bu, paylaşılan depolama olmadan taşıma yapılmasını da mümkün kılar.

vMotion neden başarısız olur?#

Nedenler genellikle dar bir kümede toplanır:

Sırayla kontrol edin

  1. Hedef host'ta ağ eksik. Makinenin bağlı olduğu ağ adı hedefte yok ya da farklı yazılmış. En sık neden budur.
  2. İşlemci uyumsuzluğu. Ortak özellik tabanı tanımlanmamış ya da makine tabanın üstünde bir özelliği kullanıyor.
  3. Depolamaya erişim yok. Hedef host, makinenin disklerinin bulunduğu datastore'u göremiyor.
  4. Bağlı yerel aygıt. Host'a fiziksel olarak bağlı bir aygıt (CD/DVD, USB, doğrudan atanmış donanım) makineye bağlı bırakılmış.
  5. Taşıma ağı sorunu. İki host arasındaki taşıma arayüzü yapılandırılmamış ya da aralarında iletişim yok.
  6. Kapasite yetersiz. Hedef host, ayrılmış kaynak taahhütlerini karşılayamıyor.

Birinci ve dördüncü maddeler, hata mesajı okunmadan denendiğinde en çok zaman kaybettiren ikilidir. Platformun verdiği uyumluluk denetimi çıktısı bu ayrımı genellikle doğrudan söyler.

Önemli noktalar

  • vMotion, çalışan bir sanal makineyi kapatmadan başka host'a taşır.
  • Bellek birden çok turda kopyalanır; yalnızca son adımda çok kısa bir duraklama olur.
  • Paylaşılan depolama, uygun ağ ve işlemci uyumluluğu ön koşuldur.
  • vMotion planlı işlemler içindir; plansız arıza senaryosu HA'nın kapsamındadır.