Başlangıç > VMware > 103: vMotion ve Perde Arkası

103: vMotion ve Perde Arkası

vMotion hepimizin bildiği gibi VM’lerin bir fiziksel sunucudan başka bir fiziksel sunucuya kesintisiz (!!)  taşınmasını sağlayan bir teknolojidir. Yıllardır bunu kullanıyoruz ancak arka planda detaylı olarak ne olduğundan haberdar değilizdir, çoğu zaman da ilgilenmemişizdir. Bugün bu konuyu kısaca ele almak istiyorum.

vMotion ‘ı kabaca ele alırsak aşağıdaki adımların gerçekleştiğini söyleyebiliriz:

  1. Hedef fizikzel sunucu üzerinde ikincil VM yaratılır.
  2. vMotion için tanımlı network üzerinden tüm bellek blokları kopyalanır. Bu kopyalama işlemine precopy denir.
  3. Bir önceki precopy operasyonu esnasında değişen bellek blokları tekrar kopyalanır.
  4. Değişen bellek blokları belirli bir seviyenin altına çekene kadar 3 numaralı adım tekrarlanır.
  5. Kaynak fiziksel sunucu üzerinde VM suspend edilir ve hedef fiziksel sunucu üzerinde resume edilir. Bu adım, VM’in eski fiziksel sunucudan unregister ve yeni fiziksel sunucuda register edilmesini de kapsamaktadır.
  6. Kaynak fiziksel sunucu üzerinde yer alan VM yok edilir.

Görüldüğü gibi aslında vMotion hiçbir zaman sıfır kesintili bir işlem değildir. En iyi ihtimalde  5 numaralı adımın gerçekleşme süresi kadar kesinti oluşacaktır. 4 numaralı adımda, VMkernel bir hesaplama yapar. Eğer precopy sonrasında değişen bellek bloklarını 0.5 saniyenin altında taşıyabileceğini hesaplarsa, 5 numaralı adıma geçer. Eğer 0.5 saniyede kopyalayamayacağını düşünürse, precopy operasyonunu tekrarlar.

Peki ya kötü ihtimalde ne olur? Yani sanal sunucu  bellek sayfalarını, vMotion network’ünün kopyalabileceğinden daha hızlı değiştiriyorsa (ki büyük bellekli VM’lerde görülmesi gayet olası bir durum).

Bu durumda, precopy sonrası VMkernel başka bir karar vermek durumunda. Bu kararı verebilmek için, yine, değişen bellek bloklarının ne kadar sürede kopyalayabileceğini hesaplar. Eğer kopyalamayı 100 saniyenin altında yapabilecek durumda ise, VM’i hedef sunucuya taşır, VM hedef sunucuda çalışırken memory kopyalamasına da devam eder. Bu özellik vSphere 4.1 ile gelmiştir ve Quick Resume adı ile geçer. Quick Resume özelliğini başka bir yazıda ele almayı düşünüyorum.

Eğer VM 100 saniye kontrolünü geçemezse, vMotion timeout hatası alacaktır. İşin güzel tarafı çalışan sunucu bu operasyondan erişilebilirlik anlamında etkilenmemiş olacak.

100 saniye varsayılan bir değerdir. Bu değer, VM’e advanced parametre ekleyerek değiştirilebilir. Eklenmesi gereken parametre:

  • vmotion.maxSwitchoverSeconds = X (saniye cinsinden)

Bir vMotion işlemini detaylı incelemek için VMkernel logları iyi bir başlangıç noktasıdır. VMkernel loglarında, gerçekleştirdiğim bir vMotion operasyonunun bahsettiğimiz adımlarını daha net görebilirsiniz.


Apr 27 14:00:23 esx01 vmkernel: 94:19:48:02.893 cpu14:23633)Migrate: vm 23634: 2149: Setting VMOTION info: Source ts = 1302778816013181, src ip = <10.10.10.1> dest ip = <10.10.10.2> Dest wid = 4770 using SHARED swap and cptcache size 12582912
Apr 27 14:00:23 esx01 vmkernel: 94:19:48:02.894 cpu14:23633)Tcpip_Vmk: 1107: Affinitizing 10.10.10.1 to world 33538,Success
Apr 27 14:00:23 esx01 vmkernel: 94:19:48:02.894 cpu14:23633)VMotion: 1808: 1302778816013181 S: Set ip address '10.10.10.1' worldlet affinity to send World ID 33538
Apr 27 14:00:23 esx01 vmkernel: 94:19:48:02.894 cpu3:4271)MigrateNet: vm 4271: 1130: Accepted connection from <10.10.10.2>
Apr 27 14:00:23 esx01 vmkernel: 94:19:48:02.894 cpu3:4271)MigrateNet: vm 4271: 1144: dataSocket 0x4100a4076e10 send buffer size is 263536
Apr 27 14:00:42 esx01 vmkernel: 94:19:48:21.712 cpu14:23634)VMotion: 2617: 1302778816013181 S: Stopping pre-copy: only 757 pages were modified, which can be sent within the switchover time goal of 0.500 seconds (network bandwidth ~128.644 MB/s)
Apr 27 14:00:42 esx01 vmkernel: 94:19:48:21.736 cpu10:23633)VSCSI: 6011: handle 8690(vscsi0:0):Destroying Device for world 23634 (pendCom 0)
Apr 27 14:00:42 esx01 vmkernel: 94:19:48:22.311 cpu4:33538)VMotionSend: 2913: 1302778816013181 S: Sent all modified pages to destination (network bandwidth ~109.729 MB/s)

Çok daha detaylı loglar için ise hostd.log dosyası kullanılabilir (/var/log/vmware/hostd.log). Buradaki loglama çok detaylı olacağından burada yer vermedim.

Kategoriler:VMware Etiketler:
  1. Serkan Sevincoglu
    07.06.2013, 09:21

    Merhabalar;

    Öncelikle bu güzel paylaşımlar için çok teşekkür ederim. Esxi 4.1 üzerinde Vmotion operasyonlarını gerçekleştirirken Storage üzerinde Block I/O değerlerim 3000 IOPS seviyelerindeyken 10000-12500 IOPS değerlerine çıkıyor bunu nasıl açıklayabiliriz.

  1. 17.11.2011, 10:27

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

w

Connecting to %s

%d blogcu bunu beğendi: