sanallaştırma nedir etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
sanallaştırma nedir etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

26 Aralık 2012 Çarşamba

Sanallaştırma Nedir? Nasıl Çalışır?


Sanallaştırma, makineyi daha verimli kullanmak vb amaçlar için sanal makineler(virtual machines) aracılığıyla fiziksel kaynağı parçalara bölüp kullanma yöntemidir. Sanal makinelerin ilk kez tanımını yapan Popek ve Golberg’e göre sanal makine “gerçek makinenin etkili, soyutlanmış bir kopyasıydı”.  Yani sanal makine bilgisayar içinde çalışan bir bilgisayardır diyebiliriz ancak bu sanal makinenin donanımı da sanaldır.
Üzerinde sanallaştırma olmayan bir kullanıcıya veya kurumsal ölçekli olarak kullanılan bir sunucuya ait performans, herhangi bir performans ölçüm programı (Windows işletim sisteminde Görev Yönetici) ile incelendiğinde İŞLEMCİ ve FİZİKSEL BELLEK kullanımının çoğunlukla düşük seviyelerde kaldığı görülmektedir. Bilgisayarda bir iş yapıldığında bu değerler kısa bir süreliğine artmakta ancak iş bittiğinde tekrar eski düşük seviyelerine dönmektedir. Burada şu soru sorulabilir; acaba bilgisayarlara ait fiziksel kaynakların atıl kalmayacağı bir havuz sistemi oluşturulsa ve fiziksel kaynağa ihtiyaç duyan bir işlem yapıldığında işletim sistemi kaynağını bu havuzdan alıp işi bittiğinde tekrar serbest bıraksa mevcut kaynakların bilgisayarlar üzerinde gereksiz yere (işlem yapılmayan zamanlarda) tutulmasının önüne geçilmesi nasıl sağlanır? İşte bu sorunun cevabıdır “Sanallaştırma”.
IBM firmasının 1970’li yıllarda ana bilgisayarlarının (mainframe) mimarisinden kaynaklanan engelleri aşmak ve maliyetleri düşürmek için yaptığı çalışmalar sonucu ortaya çıkmıştır. Daha sonra İntel ve AMD işlemcilerine sanallaştırma için gerekli ayarlamaları yaptı. Bu sayede daha cazip olan sanallaştırma işlemi büyük firmalar tarafından kullanılmaya başlandı.
Günümüzde belirgin olarak iki farklı sanallaştırma mimarisi kullanılmaktadır. Bunlar yazılımsal sanallaştırma ve donanımsal sanallaştırmadır.
Yazılımsal sanallaştırmada sanal makine bir işletim sistemi üzerine kurulur ve orada farklı bir katman gibi ev sahibi(host) işletim sisteminden bağımsız olarak çalışır. Bu yöntemin en büyük dezavantajı fiziksel kaynak ideal bir şekilde kullanılamadığından performansının düşük olmasıdır. Bu mimari genelde basit test ortamlarında kullanılır. Bu mimariyi kullanan sanal makine programları VMware Server, VMware Workstation, Microsoft Virtual PC, Microsof Virtual Server.  Yazılımsal sanallaştırma mimarisi aşağıdaki şekile bakılırsa daha iyi anlaşılabilir.

Sanal makine yöneticinizin desteklemesine göre istediğiniz işletim sistemini çalıştırabilirsiniz.
Donanımsal sanallaştırma mimarisinde ise sanal makine yöneticisi doğrudan donanım üzerine yerleşir yani aradaki ev sahibi(host) işletim sistemi olmaz. Bu mimarinin en büyük avantajı fiziksel kaynakları doğrudan kullandığı için daha verimli çalışır ve performansı yüksektir. Kapsamlı test ortamlarında bu mimari kullanılır. Microsoft Hyper-V, VMware vSphere ESX/ESXi ve Citrix Xen Server sanal makine programları bu mimariyi kullanırlar. Donanımsal sanallaştırma mimarisi aşağıdaki resimde gösterilmiştir.




Sanal Sistemlerin Sanal olmayan Sistemlere göre Avantajları ve Dezavantajları nelerdir?
Sanal sistemlerin gerçek sistemlere göre çok fazla avantajları vardır. İlk olarak tekil kullanıcılar için ne gibi avantajları var ona bakalım. Sanallaştırma tekniği sayesinde bilgisayarlarda aynı anda farklı işletim sistemi çalıştırabiliriz. Örneğin, Linux işletim sistemi(İS) kurulu bir bilgisayarda sanal makine sayesinde Windows İS ya da başka bir işletim sistemi çalıştırabiliriz. Bunun ne gibi avantajı olur? Linux İS’ de çalıştıramayacağımız programı sanal makine de çalıştırıp kullanabiliriz.  Bunun tam tersi de geçerlidir. Yani Windows İS kurulmuş olan bir bilgisayarda, sanal makine sayesinde Linux İS kurup çalıştırabiliriz. Sanal makinelere sayesinde bilgisayarımızı küçük bir laboratuara çevirip çalışmalar yapabiliriz. 
İnternette gezinirken sanal makineler güvende olmamızı sağlar. Özellikle Windows İS kullanıcılarını bilgisayarlarına internette gezerken virüs bulaşma ihtimali yüksek olduğu için sanal makine kullanmak gerçek sistemlerinin korunmasına yardımcı olur. Sanal makine kullanmanın bir diğer artısı ise şüphe duyduğumuz programları deneyip kontrol etme olanağı sağlar.
Günümüzde işletim sistemlerinin yönetimi için bilgisayarın yanına gitmeden, uzaktan erişim protokolleri (Uzak Masaüstü, SSH, X-Server Sistemler…) ile erişim sağlanabilir ve bu sayede işletim sistemlerine ihtiyaç duyacağı kadar kaynak tahsis edilebilir. Örneğin Test-Geliştirme amaçlı işletim sistemine maksimum 6GB RAM ve 2 CPU’ya kadar kullanım hakkı verilirken, Web Sunucu olarak kullanılacak işletim sistemine 20GB RAM ve 4 CPU’ya kadar kullanım hakkı verilerek ihtiyaca uygun, esnek performans ataması yapılabilir. Zaman içinde ihtiyaçların değişmesi ile fiziksel hiçbir müdahale gerektirmeden sanallaştırma yönetimi yazılımı aracılığıyla kaynak kullanımı oranları değiştirilebilir. Örneğin Web Sunucu için RAM yetersiz olmaya başladığı anda diğer sistemlere tahsis edilen maksimum kullanılabilecek RAM miktarı düşürülerek veya hazırda bekletilen RAM kaynağından Web Sunucuya tahsis edilerek Web Sunucusuna ait performans arttırılabilir. Bu yöntem aracılığıyla birden fazla sunucu yerine tek bir sunucu temin edilerek bakım maliyeti, kullanılan elektrik tüketimini düşer. Buna ilaveten tahsis edilen fiziki alanın küçültülmesi ve kablo karmaşasının azaltılması gibi birçok avantaj sağlanabilir.
Sanal sistemlerin görüldüğü üzere her ölçekteki kurumlar için de büyük avantajları vardır. Sanal sistemler sayesinde kurumlar büyük ve bir o kadar karmaşık olan sistem odalarından kurtuluyorlar. Bunun yanında bu sistem odalarının soğutma maliyeti de düşüyor ve doğal olarak elektrik tüketim maliyetleri de düşüyor.
Bir sistem odasında bir sürü fiziksel sunucu kullanmak yerine sanal sunucular kurmak her açıdan daha kullanışlıdır. Bir arıza çıktığında sorunu çözmek sanal sunucularda daha kolaydır. Buna ilaveten sanal sistemlerin yedeklenmesi ve tekrar kurulması kolay olduğu için bir sorun olduğunda ya da sistem çöktüğünde yeni sistemi kurmak çok kolay ve hızlıdır. Sanal sistemler donanım özelliklerini düzenlemek adına da kolaylıklar sağlar.
Sanal sunucu kullanmak firmalara tek merkezden yönetim olanağı sağlar. Aynı zamanda lisans ücretlerinden de kar ederler. Özetlemek gerekirse sanal sistemleri kullanmak hem kişilere hem de kurumlara çok ciddi avantajlar sağlıyor.

Sanallaştırma alanında dikkat çeken belli başlı ürünler hangileridir? Piyasadaki penetrasyon oranları nedir? Ürünlerin birbirlerine göre avantaj ve dezavantajları nelerdir? Türkiye’de hangi ürünler bulunabilmektedir? Hangi ürün tercih edilmelidir.
Sanallaştırmanın avantajlarından bahsettikten sonra şimdi de bu alanda hangi ürünler var onlarda bahsedelim. Piyasa da dikkat çeken ürünlerden bazıları şunlar; VirtualBox(Windows/Linux/Mac, free), Parallels(Windows/Linux/Mac, $79.99), VMware(Windows/Linux, Basic:Free, Premium:$189), QEMU(Linux, Free), Windows Virtual PC(Windows, Free).
Bu yazıda en fazla kullanılan Vmware ve VirtualBox sanal makinelerinden bahsedeceğiz. VMware firmasının hem kişilere yönelik ücretsiz sanal makinesi VMware player vardır hem de kurumlara yönelik daha gelişmiş VMware Workstation sanal makinesi vardır. Bunlara ilaveten daha özelleşmiş farklı ürünleri vardır. Masaüstü ve sunucu/iş istasyonu olarak kullanılabilen VMware Workstation ve GSX ürünleri bir işletim sistemi üzerinde çalışır yani yazılımsal sanallaştırma mimarisi kullanır. Buna karşılık ESX ürünü donanımsal sanallaştırma mimarisin kullanır. VMware sanal makinelerinin üzerinde kurulu işletim sistemlerine sanal sürücüler sağlaması güzel bir avantajdır.
Oracle firmasının geliştirmekte olduğu VirtualBox sanal makinesi masaüstü sanallaştırması için geliştirilmiş ücretsiz güzel bir üründür. İşletim sistemi üzerinde çalışır yani yazılımsal sanallaştırma mimarisi kullanılmıştır. Windows, Linux, Mac ve Solaris işletim sistemleri üzerinde çalışabilen bir sanal makine olması kullanabilirlik adına bir avantajdır.  Açık kodlu bir ürün olması sebebiyle ihtiyaca göre geliştirilebilir. Bu nedenle JAVA gibi platformdan bağımsız, işletim sistemi bağımlı bir üründür.

05.09.2012
Recep Özbay




Referanslar