Etiketler

26 Mayıs 2017 Cuma

Sanal Makina ile Konteyner Arasındaki Fark


Merhabalar

Bu yazımda sizlere sanallaştırma teknolojilerinde sıkça kullanılan hipervizör tabanlı sanallaştırma ile konteyner tabalı sanallaştırma arasındaki farktan bahsetmek istiyorum.


Yukarıdaki şekide görüldüğü gibi;

Sanal makinalarda fiziksel olarak mevcut sunucu üzerinde bir işletim sistemi bulunur, bu işletim sisteminin üzerinde bir hipervizör katmanı ve bu katmanın üzerinde ise oluşturulan sanal makinalar bulunur. (Sanallaştırma ile ilgili ayrıntılı bilgi için tıklayınız.)  Her bir sanal makinanın kendisine ait bir işletim sistemi vardır, her işletim sisteminde kendine ait kütüphaneleri bulunmaktadır. Fiziksel makina üzerinde tamamen birbirinden bağımsız sanal makinalar kurulabilmekte, işletim sistemleri birbirinden farklı şekilde düzenlenebilmektedir. Ancak fiziksel makina ile sanal makina arasında bir hipervizör katmanı bulunduğu için fiziksel makina performansından kayıp yaşanmaktadır ve her sanal makinanın ayrı bir işletim sistemine sahip olması, CPU, RAM ve Disk de ayrıca sürekli kullanılan alan oluşturma, çalıştırılan servis veya iş için performans düşüklüğüne sebep olmakta, ağda gecikmeler meydana gelmektedir.

Konteyner tabanlı sanallaştırma da fiziksel sunucu üzerinde bulunan işletim sistemi üzerinde bir konteyner engine katmanı yer almakta ve bu katman üzerinde konteynerler yer almaktadır. Her konteyner üzerinde bulunduğu fiziksel makinanın kernelini kullanılır. İhtiyaçlara hangi katmana kadar fiziksel sunucunun özellikleri kullanılacağına karar verilebilir yani sanallaştırma katmanı düzenlenebilirdir. İhtiyaca göre direk işletim sistemi üzerine konteyner kurulabileceği gibi, kütüphanelerin ortak kullanılabileceği şekilde de kurulum sağlanabilir. Konteynerların içinde ayrıca bir işletim sistemi yüklü olmadığı için, mevcut CPU, RAM ve Disk çalıştırılan servis yada işe tahsis edilebilir. Fiziksel makinaya yakın performanslı sonuçlar elde edilir, ağda hipervizör tabanlı sanallaştırmaya göre daha az gecikme görülür. Ancak konteynerlar üzerinde bulunduğu fiziksel makinanın işletim sistemini kullandığı için, bütün konteynerlar aynı kernele sahip olmak zorundadır. Yani Linux kurulu bir fiziksel makina üzerine KVM hipervizörü ile Windows sanal makina kurulumu yaparken, windows yada farklı kernel sürümüne sahip linux kurulumu yapamazsınız. Aynı zamanda konteyner tabanlı sanallaştırma da konteynerlar arası ortak kullanım alanlarının fazla olmasından dolayı güvenlik açıklıkları bir miktar daha fazladır. 

I/O işlemlerinin fazla olduğu, latency-sensitive olarak tanımlanan video konferansı gibi uygulamalarda daha performanslı sonuçlar elde edilmesi için konteyner teknolojilerinin kullanılması önerilmektedir.  Microservis mimarisine sahip tasarımlarda servislerin konteynerlar üzerinde çalışması da performans yaklaşımı açısından literatürde tavsiye edilmektedir. 

Kullanılacak senaryoda bir host makinanın üzerine farklı çekirdek sürümüne sahip sanal makina kurulumu ve tamamen izole bir yapı planlanıyorsa hipervizör tabanlı sanallaştırma kullanılması önerilmektedir.

Bu yazımda sanal makinaların ve konteynerların özelliklerinden bahsederek aralarındaki farklara değindim.

Daha sonraki yazımlarımda görüşmek dileğiyle... 



3 yorum:

  1. Really it is a nice blog, I would like to tell you that you have given me much knowledge about it. Your post is extremely helpful. I will keep following. Thank you for sharing this information.

    Dial Tone Phone Services

    YanıtlaSil
  2. Bu yorum bir blog yöneticisi tarafından silindi.

    YanıtlaSil
  3. Bu yorum bir blog yöneticisi tarafından silindi.

    YanıtlaSil