11 Mart 2014

Sanallaştırma 2.0: Nested Virtualization

İlk tohumları yıllar önce atılmasına rağmen son 10 yılda Vmware ile pek çoğumuzun hayatına giren , sonrasında Microsoft'un HyperV'si , açık kaynak kökleri olan Citrix XEN ve Linux kernel ile tamamen açık kod KVM'nin gelişimleriyle artık iyice yaygınlaşan sunucu sanallaştırma  bilişim sektöründe en büyüğünden en küçüğüne herkesin vazgeçilmez konusu durumunda. 

Bir tarafta sunucu sanallaştırma sayesinde artık tek bir fiziksel sunucu üzerinde onlarca, her biri diğerinden farklı olabilen işletim sistemlerine sahip, sanal makine çalıştırmak oldukça kolay bir iş. Bu sayede enerji tasarrufundan yönetim kolaylığına , sunucu taşınabilirliğinden felaketten kurtarma kolaylığına kadar pek çok özelliğe ve güzelliği de sahip oluyoruz. 

Diğer tarafta ise Amazon Web Services ile başlayan , Rackspace Cloud , Gogrid , IBM SmartCloud (SoftLayer), Microsoft Azure v.b. ile firma ürün çeşitliliği kazanan, temel çıkış noktası ilk yatırım maliyetini azaltmak , kullandığın kadar öde prensibini temel prensibi yapan  public cloud (genel bulut) anlayışı, sanallaştırma teknolojilerini kullanarak bilişim kaynaklarını bir hizmet olarak sunarak ciddi bir talep görüyor ve gelişmesini sürdürüyor.

Bu iki tarafı "kabaca" private cloud (özel bulut - kurum içi host edilen Vmware ESX , MS HyperV, Xen ve KVM v.b. yapılar) 'a karşı public cloud ( genel bulut - kullandığın kadar benzeri modeller sunan AWS, Azure v.b. yapılar) niteleyebiliriz. 

Aslında bu iki kavram (ya da bulut çeşiti diyelim) birbirlerine rakip olmaktan ziyade, birbirlerini tamamlayarak farklı ihtiyaçlara yönelik çözümler olarak konumlandırılarak maksimum fayda sağlanabilir. Özellikle bu amaçla hem public cloud sağlayıcılar hem de sanallaştırma platformu sağlayan firmalar hybrid (karma) cloud kavramıyla bu iki cloud u birbiriyle haberleştirip entegre eden çözümler sunuyorlar.

Ancak her ne kadar bir entegrasyon çabası varsa da on-premise dediğimiz kendi yerlerimizde tuttuğumuz bilişim altyapılarını bulut ortamlarına taşımak ciddi zorluklar taşıyor. Örneğin: Public Cloud sağlayıcıları, doğal olarak hypervisor erişimi vermedikleri için özellikle taşıma işlemlerinde işimizi çok kolaylaştıracak aynı veya farklı hypervisorler arası hypervisor tabanlı çözümlerden mahrum kalıyoruz. Ağ yapılarımızı taşırken kendi IP yapımızı genelde koruyamıyor, public cloud sağlayıcının bize sunduğu sınırlı ağ yapısı ve VPN ile ciddi bir şekilde sınırlanıyoruz ve ek tasarım ve konfigürasyon sürecine katlanmak zorunda kalıyoruz.

Peki hem public cloud'un getirdiği nimetlerden faydalanırken hem de kendimize ait hypervisor rahatlığında çalışmak için ne gerekli ? Bunun cevabı: çok yeni gelişmeye başlamasına rağmen nested hypervisor ( hypervisor üzeri bağımsız hypervisor) teknolojisi gibi görünüyor. 




Düşünelim bir kere: Vmware ESX altyapımızı neredeyse hiç değiştirmeden hedef tarafta fiziksel bir makineye ihtiyaç duymadan ağ altyapısı , sanal makineler ve diğer ayarlar ile kolayca public bir cloud sağlayıcıya taşıyabilmek ne kadar da iyi olurdu değil mi ?  Public cloud'un getirdiği elastikiyet , kullandığın kadar öde avantajı v.b. alıştığımız altyapı ve yönetim yapısıyla. Kulağa oldukça hoş geliyor :) .

Aslında Nested Hypervisor teknolojsine kısmen aşinayız diyebilirim. Vmware Workstation üzerinde ESX Server ve HyperV Server çalıştırmak , ESX server üzerinde ESX Server ve HyperV çalıştırmak daha önce denediğimiz ya da denemeyi aklımıza getirdiğimiz en bilindik uygulamaları.

Teknik olarak Nested Hypervisor kavramı: seviyenlendirme yaparak Type0 bir HyperVisor üzerinde değiştirilmemiş bir Type1 ( örneğin KVM üzerinde KVM) çalıştırma tekniği olarak tanımlanabilir. Bu tekniğin uygulanması CPU ların sanallaştırma uzantı komutlaının gelişmesiyle uygulanabilir hale gelmiştir. Şu anda bu alanda ciddi anlamda test ve geliştirmeler olmasına rağmen henüz production ortamlarında kullanılabilecek stabiliteye sahip değil, ancak yakın bir zamanda özellikle Intel'in Haswell mimarisinde gelen özellikler ile hızlıca bazı production uygulamalarına hazır hale geleceğini düşünüyorum.

Sonuç olarak productiona hazır bir nested virtualization çözümü ile:


  • Tam kullanıcı kontrollü hypevisorler
  • Sanal makineler üzerinde Openstack ve Cloudstack uygulamaları
  • Test ve demolar için kolayca sanallaştırma ortamı hazırlamak
  • Hypervisorler arası live migration, vmotion
gibi kolaylıkların hayatımıza girmesi mümkün olacak.








Hiç yorum yok: