vMotion – Part 1

tarafından 1 Ocak 2015 tarihinde VMware, VMware vCenter kategorisine yazıldı.

Merhaba,

Bu yazımda virtual machine’lerin canlı birşekilde host’lar arasında taşınmasına olanak sağlayan vMotion teknolojisi hakkında bilgi vereceğim. Virtual machine’lerin, farklı host’lar üzerine taşınması işlemine VMware’de vMotion olarak adlandırılır. vMotion çok önemlidir çünkü bir host’u maintenance’a almak isteyebilirsiniz veya o host üzerinde çalışan virtual machine’de performans problemi olabilir. Bu durumda virtual machine’leri farklı host’lara dağıtmak zorunda kalırsınız. Bu arada şunuda belirtmek istiyorum. vMotion teknolojisine VMware öncülük etmiştir.

2 farklı vMotion vardır. Bunlardan biri Storage vMotion diğeri ise vMotion’dır. Storage vMotion ile ilgili detaylı bilgiyi aşağıda bulabilirsiniz.

http://www.tayfundeger.com/storage-vmotion-svmotion.html

Bu yazının diğer bölümleri için;

http://www.tayfundeger.com/vmotion-part-1.html

http://www.tayfundeger.com/vmotion-part-2.html

vMotion yapılması için vCenter ve Cluster olması şartdır.  Storage vMotion’da ise sadece vCenter olması yeterli. Ancak vMotion’da virtual machine’leri farklı host’lara taşıyacağımız için minimum 2 tane host olması gereklidir. Ayrıca virtual machine’in barındığı datastore’u taşıyacağınız host’unda görmesi gerekmektedir. Eğer virtual machine Local datastore’da barınıyorsa vMotion yapamazsınız. vMotion yanlızca, FC, ISCSI, NFS datastore’larda desteklenir.

vMotion teknolojisi ile birlikte gelen çeşitli feature’lar vardır. Bunlar;

 Distributed Resource Scheduler (DRS):

Cluster’a dahil host’lar arasında virtual machine’lerin yük durumuna göre otomatik veya manuel olarak taşınması işlemidir.

 Distributed Power Management (DPM):

Cluster’a dahil host’ların yük durumuna göre, Host’ların üzerinde çalışan virtual machine’leri dağıtır ve üzerinde virtual machine kalmayan host’u standby’a alır. Kısacası enerji tasarrufu için yapılmış bir özelliktir. Eğer ortamınızda çok fazla host var ise ve kaynak doluluk oranları çok düşük ise bu özelliği kullanabilirsiniz.

Update Management (VUM):

Update Manager programı ile host’ların update’lerini, security patch’lerini yükleyebilirsiniz. Update manager’ı Cluster seviyesinde çalıştırıp, o Cluster’a dahil bütün host’ların update’lerini otomatik birşekilde yapabilirsiniz. DRSvirtual machine’leri farklı host’lara dağıtır ve host’ları otomatik olarak maintenance’a alır. Böylece update’i kendi kendine yapar. Sizin başınızda beklemenize gerek yoktur.

Hardware Maintanance:

ESXi host’ların çalıştığı donanımlarında bir garanti süresi vardır ki buda 3 ile 5 yıl arasında değişmektedir. Garantisi biten ürünler genellikle işletimden çıkarılır. Veya sunucuda oluşan bir donanım arızası yüzünden parça değiştirmek zorunda kalabilirsiniz. Böyle bir durumda vMotion sayesinde host üzerinde çalışan virtual machine’leri Cluster’da bulunan diğer host’lara aktarabilirsiniz.

Bir virtual machine vMotion ile farklı host üzerine aldığında, virtual machine’in sadece donanım bilgisi yer değiştirmiş sayılır. Yani datastore’da bulunan vmx, vmdk gibi dosyalar sabit kalır. Virtual machine’in başka bir host üzerine taşınmaya başlandığında ilk olarak virtual machine’in ghost’u vMotion yapılacak host üzerine atılır. Daha sonra memory’deki değişen datalar taşınır ve virtual machine eski host üzerinden kaldırılır. Genel olarak çalışma prensibi bu şekildedir. Virtual machine taşınma süresi, virtual machine’in memory’si ve vMotion network’une bağlı olarak değişim göstermektedir. vMotion sırasında aslında arka planda yapılan en büyük operasyon memory’nin taşınmasıdır. Bu taşıma işlemi için bir vMotion network belirlenmesi gerekmektedir. Aksi takdirde vMotion network’u olmadan virtual machine’leri farklı host’lara taşıyamazsınız.

vMotion oldukça güvenli bir teknolojidir. Yukarıda da belirttiğim gibi vMotion sırasında virtual machine’in ghost’u hedef host üzerine gönderilir ve daha sonra memory taşınmaya başlar. Bu işlem sırasında eğer vMotion herhangi bir sebepden dolayı fail olursa; yapılan işlemler geri alınır ve virtual machine’de herhangi bir kesinti olmaz.

 Requirements and Recommendation:

VMKernel Networking:

Host’lar arasında minimum 1Gbps bağlantı olmalıdır. Ancak sizin eğer ortamınızda 10Gbps kartlar var ise bunlarıda kullanabilirsiniz. Network bant genişliği nekadar fazla olursa vMotion’ın bitme süreside okadar azalır.

Virtual Machine Networking:

vMotion yapılan virtual machine’in bağlı olduğu aynı network ayarları host’lar üzerinde de tanımlı olmalıdır. Eğer distributed switch kullanıyorsanız host’ları connect etmeniz yeterli olacaktır. Ancak eğer standart switch kullanıyorsanız host üzerinde ki network tanımları birebir aynı olması gereklidir. Örneğin standart switch kullanıyorsunuz. Production isimli bir port group’unuz var. Bu portgorup hem kaynak hemde hedef host üzerinde tanımlı olmalıdır. Birebir aynı olmalıdır. vMotion yapılırken host’un üzerindeki portgroup’lar tamamen verilen isim ile match edilir. Eğer host’lar üzerinde bulunan portgroup’ların isimleri farklı ise virtual machine’i migrate edemezsiniz. Büyük-küçük harf’a duyarlıdır. Bir host üzerinde PRODUCTION portgroup’u oluşturup diğer host üzerinde production olarak isim verirseniz yine vMotion yapılmayacaktır. Büyük küçük harf önemli yani:)

 Shared Storage:

Virtual machine’in barındığı datastore bütün host’lar üzerinde tanımlı olmalıdır. Aksi takdirde virtual machine tanımlı olmayan host üzerine taşınmayacaktır. Host üzerine tanımlanan datastore’ların hepsi aynı yetkiye sahip olmalıdır. Yani host üzerinde bulunan bir datastore Read-Only olup diğeri Read-Write yetkisine sahip olmamalı. Virtual machine, vMotion yapıldığında farklı bir host üzerine geçeceği için, host’un datastore’da tanımlı olması gerekmektedir.

CPU Compatiabililties:

Daha öncede bahsetmiş olduğum gibi virtual machine’ler vMotion yapıldığında üzerinde bulunan donanımlar değişir. CPU’ların farklı farklı modelleri olduğu için bir virtual machine bulunduğu host’dan başka bir host’a migrate edilirken CPU modellerinin birbirine eşit olması gerekiyor. Eğer vMotion işlemi online olarak yapılacak ise CPU modelleri eşit olmalıdır. Eğer virtual machine’i siz power off durumda ise, CPU’ları farklı host’lara migrate edebilirsiniz. Yani kapalıyken herhangi bir problem olmayacaktır. Peki host’lar arasında CPU farklılığı var ise virtual machine power on durumda vMotion yapamazmıyız?

Farklı CPU aileleri arasında vMotion yapabilmemiz için EVC kullanmamız gereklidir. EVC ‘yi enable hale getirdiğinizde CPU’ların özelliklerini birbirine eşitler.

CPU uyumluluğu ile ilgili detaylı bilgiye aşağıdaki iki KB’den ulaşabilirsiniz.

vMotion CPU compatibility requirements for Intel processors

vMotion CPU Compatibility Requirements for AMD Processors

EVC’yi enable ettiğinizde CPU modellerini birbirine eşitler. Örneğin 2 tane host’unuz var. Bunların üzerinde Intel işlemciler var ancak modelleri farklı. EVC enable durumuna getirdiğinizde, yüksek olan cpu modelini düşük olan CPU modeline çeker. Bu sayede de host’lar arasında vMotion yapmanızı mümkünkılar. CPU seviyelerini birbirlerine eşitlerkenyüksek olan CPU üzerindeki feature’ları hide eder ve düşük olan cpu seviyesinde çalıştırır. EVC enable edildiğinde doğrudan bir performans kaybı yaşanmaz ancak virtual machine’ler hide edilen cpu feature’larından birini kullanıyorsa performans problemi yaşanabilir. Bu konu ile ilgili VMware tarafından yapılan açıklama aşağıdaki gibidir.

All CPU features provided by your host hardware are available to the hypervisor. Optimizations for CPU virtualization such as AMD-V and Intel VT-x or facilities for MMU virtualization such as AMD RVI or Intel EPT support are still used by the hypervisor. Only those CPU instructions that are unique to the new CPU are hidden from virtual machines when the host joins the EVC-enabled cluster. Typically this includes new SIMD instructions, such as the latest SSE additions. It is possible, but unlikely, that an application running in a virtual machine would benefit from these features, and that the application performance would be lower as the result of using an EVC mode that does not include the features. Check with the application vendor to determine which CPU features are used by the application.

1

Host’ların bulunduğu fiziksel sunucunun CPU bilgilerini Manage > Settings tab’ından görebilirsiniz.

2

Eğer kullanmış olduğunuz CPU’nun feature’ları ile ilgili detaylı bilgi istiyorsanız ozaman VMware CPU Host Info aracını indirmeniz gerekiyor. Bu aracı aşağıdaki link’den indirebilirsiniz.

http://www.run-virtual.com/?dl_id=2

Programı indirdikten sonra vCenter’a connect edip, host’lar üzerindeki CPU feature’ları ile ilgili detayları görebilirsiniz.

Bir sonraki bölümde vMotion konfigurasyonu yapmayı anlatacağım.

Teşekkürler.

email

Bu yazı blog üzerinde Tayfun DEĞER tarafından paylaşılmıştır. 2009 yılında açılan blog kısa zaman içerisinde büyük bir izleyici kitlesine sahip olmuştur.Tayfun DEĞER danışmanlık ve eğitimler vermektedir. vExpert 2013-2017, VCP5, VCP5-DT, VCP-Cloud ve MCSE sertifikalarına sahiptir.Twitter 'dan @tayfundeger veya RSS ile sitedeki değişiklikleri takip edebilirsiniz.