Vmware Enhanced vMotion Compatibility (EVC)
Enhanced vMotion Compatibility (EVC) adından da anlaşıldığı üzere vMotion uyumluluğunu sağlama amacında kullanılan bir teknolojidir. Peki gerçekten bu özelliği ortamımızda aktif etmeli miyiz? Hangi durumlarda EVC kullanmalıyız? Bu soruların cevaplarını size bu yazımda sizlere açıklayacağım.
Bildiğiniz gibi vMotion sanal makinelerin ESXi host’lar arasında canlı bir şekilde Memory kopyalanarak 1 ping kaybıyla aktarılmasını sağlayan teknolojidir. Fakat vMotion kullanabilmek için birkaç gereksinim bulunmaktadır. Network bağlantısı ve paylaşımlı Datastore haricinde host’lar arasında CPU uyumluluğu bulunması vMotion için gereklidir. Homojen yapı olarak adlandırılan Cluster’larda aynı CPU’ya sahip sunucular bulunmaktadır ve aynı CPU çalışma mimarilerini kullanmaktadır bu sebeple homojen yapılar EVC Mode aktifleştirme zorunluluğu olmadan vMotion yapılabilir.
Oluşturduğumuz Cluster’da birbirinden farklı CPU’lar bulunması durumunda vMotion işlemi yaparken bazı sanal makinelerde EVC hatası alacağız. Bu hata üst jenerasyon mimari kullanan ESXi host’dan daha düşük jenerasyon’a aktarılırken oluşmaktadır. Bu sorun DRS in düzgün çalışmamasına host’lar arasında yük dengesi sağlanamamasına sebep olmaktadır. Burada yardımımıza EVC koşuyor. Cluster bazında EVC aktif ederek en düşün CPU mimarisini baz alıyoruz ve clusterda bulunan yeni jenerasyon işlemcilerde üst mimarileri maskeliyoruz. Örneğin 3 ESXi host bulunan ortamda L7 Broadwell, L8 Skylake ve L6 Haswell mimarisini kullanan CPU’lar bulunsun. Burada yaşanan uyumsuzluk sorununu L6 Haswell’i kullanarak giderebiliriz. EVC Mode Haswell yapmamız için diğer host’larda bulunan sanal makinelerin bu mimariyi aktif olarak kullanmamaları gerekmektedir. Enable etmeye çalıştığınızda ilgili sanal makineleri kapatmanız için uyarı alacaksınız. Bu işlemi Host’u maintenance mode’a alarak uygulamanızı öneriyorum.
Peki biz bu CPU modellerinin uyumlu kullandıkları mimarileri nasıl öğreneceğiz? Vmware bu işlemi tek tek CPU özelliklerini inceleyerek zaman harcamamamız için Vmware HCL’ye eklemiştir. Aşağıdaki adresten CPU için oluşturulmuş Vmware Compatibility Guide’a erişiyoruz. CPU Series kısmından hostlarımızda bulunan işlemci serilerini seçiyoruz.
VMware Compatibility Guide
https://www.vmware.com/resources/compatibility/search.php?deviceCategory=cpu
Aşağıdaki örnekte sizler için çok kullanılan İntel Xeon Gold 6200 serisi, İntel Xeon E5 2600 v3 ve v4 serisini karşılaştırdım. Ekran alıntısında görüldüğü gibi Gold işlemcimiz yeni olduğundan birçok mimariyi destekliyor. Fakat E5 2600v3 işlemcimiz L8 Skylake, L7 Broadwell mimarilerini desteklemiyor. Bu durumda bir alt jenerasyon olan L6 Haswell mimarisini EVC mode olarak kullanmamız hostlar arasında vMotion yapabilmemizi sağlayacaktır. Yani mimarinin daha yeni olduğunu aşağıdaki makaleden karşılaştırabilirsiniz.
Enhanced vMotion Compatibility (EVC) processor support (1003212)
https://kb.vmware.com/s/article/1003212?lang=en_us
NOT: AMD işlemciler ile İntel işlemciler arası vMotion yapılamamaktadır ve EVC mode ile uyumlu bir baseline oluşturulması söz konusu değildir.
Sanal Makine bazlı EVC aktifleştirme: (Per-VM EVC)
Cluster bazında EVC değiştirmek baya zor bir işlemdir ve birçok sanal makineyi power off etmeniz gerekmektedir. vSphere 6.7 ile beraber gelen Per VM EVC özelliğini kullanarak sanal makine için EVC mode belirleyebiliriz. Bu özelliği kullanmamız için Cluster seviyesinde EVC açık olmasına gerek yoktur.
Per-VM EVC aktifleştirmemiz için sanal makineyi power off duruma getirmemiz gereklidir. Makine power off durumda ve VM hardware versiyon 14 ve üzeri kullanıyorsa Configure tabından aşağıda görüldüğü gibi EVC aktifleştirebiliriz. Bu sayede ilgili mimariyi kullanan hostlar arasında EVC aktifleştirdiğimiz sanal makineyi vMotion yapabilmekteyiz.
Configure the EVC Mode of a Virtual Machine
https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vm_admin.doc/GUID-A1C095EF-1B0F-4C10-9190-CFDD07193B2B.html