SANALLAŞTIRMA TEKNOLOJİSİ

tarafından
1137
SANALLAŞTIRMA TEKNOLOJİSİ

NORMAL SİSTEM VE SANALLAŞTIRILMIŞ YAPILAR

Anlatıma basit bir şekilde değineceğim;

Normal sistemlerde en alt katmanda fiziksel olarak donanımların bulunduğu fiziksel katman vardır. Hemen bir üst katmanın da operational system(işletim sistemi) bulunur. Bu katmanın üzerinde ise çalışan uygulamalarımız bulunmaktadır. Burada kullancağımız uygulamaları bir işletim sistemine bağlı kalarak kullanırız.

Normal Sistem

İşletim sistemi üzerin de çalışan uygulamalar yaptıkları işlem bakımından bir işlem yapmak istediğin de bu işlem işletim sistemine iletilir. İşletim sistemi bu işlemi kendi kernel üzerinden driverlar ile fiziksel donanımlara iletir. Burada işlem karşılığını bulup sonucu döndürmek için aynı yolu izler.

HAFİF BİLGİ: Kernel işletim sisteminin çekirdeğini oluşturur. Donanım ve yazılım arasındaki bağlantıyı sağlar. Hızlı çalışması beklenen yapıdır. İşletim sistemi oluşturulurken belirlenir. Disk yönetimi, işlemlerin yönetimi, bellek yönetimi, dosya yönetimi gibi işleri üstlenir.

Sanallaştırılmış sistemler de ise yine alt tarafta fiziksel katman olarak donanımlar yer alır. Bunun üzerinde ise operational system (işletim sistemi) katmanı vardır. Bu katmanın üzerinde ise normalden farklı olarak yine uygulama olarak çalışan sanallaştırma uygulaması vardır. Bu katman (virtual box, Vmware vb.) sanallaştırma uygulamalarıdır.Uygulama olduğu için işletim sistemine gerek duyar. Bu sanallaştırma ortamının üzerine donanım kullanım oranları belirlenmiş (ram, cpu, disk) bir şekilde işletim sistemi ve bunun da üzerine uygulamalar kuruludur.

Sanallaştırılmış Sistem

Burada sanallaştırma uygulaması üzerine kurulu işletim sistemi üzerindeki uygulamalar işlem yapmak istediğin de bu işlemi öncelikle üzerinde bulunduğu guest os işletim sistemi üzerine iletir. İletilen işlem o işletim sisteminin kerneli üzerine gelir. Kernel de bu işlemi donanıma iletmek ister. Fakat alt yapıda sanallaştırma uygulaması vardır. İşlem bu uygulama üzerinde tanımlanmış sanal donanıma gelir. Sanallaştırma uygulamasıda bu isteği üzerinde bulunduğu işletim sistemine iletir. İşletim sistemide bu isteğin sanallaştırma uygulamasından geldiğini düşünerek kernel’e iletir. Kernel de driverlar aracılığı ile o işlemi donanıma iletir. Donanım üzerinde işlem işlendikten sonra sonuç yine aynı yolları izleyerek  sanallaştırılmış ortamın üzerindeki uygulamaya geri döndürülür.

Anlatımdan anlaşılması üzere yapılacak bir işlem bir çok yoldan geçerek sonuca ulaşır. Bu da performans kaybına yol açmaktadır. Ayrıca işlemlerin iletim hızı host işletim siteminin durumu ile direkt bağlantılıdır. Host işletim sistemleri üzerinde oluşabilecek bir sorunlar da (sürücü problemleri, kaynak kullanımı vs.) sanal makineler etkilenir. Sanal makinelerin performansı işletim sisteminin performansına bağlıdır.

Hypervisor çalışma şekli biraz daha farklıdır. 

HYPER-V SANALLAŞTIRMA TEKNOLOJİSİ

Hyper-v microsoft’un geliştirdiği bir  sanallaştırma platformudur. Hyper-v donanım tabanlı çalışan hypervisör altyapısına sahiptir.Ayrıca  64 bitlik işlemciler üzerin de çalışan yüksek performans ve yüksek güvenlikli bir yazılımdır.

Özelliklerinden bahsedecek olursak;

. 64 bitlik hypervisor yapısına sahiptir.
. Hypervisor micro-kernelized  yapıda çalışır, performanslı ve güvenlidir.
. Bare-metal olarak çalışır.
. Micro-kernelized yazılımı içerisinde işletim sistemi barındırmaz bu yüzden boyutu küçüktür bu sebebten ötürü performanslıdır.
. Parent ve child bölmelerinden oluşur. VSP-VSC ve VMBus protokolleri üzerinden haberleşir.

Windows server 2008 ve üstü kurulduktan sonra hyper-v etkinleştirilmeden önce normal bir sistem şeklinde çalışır. Hyper-v etkinleştirildikten sonra  yapı daha değişik bir hal alacaktır. Hyper-v etkinleştirmesi yapıldıktan sonra donanımın hemen üzerine sanallaştırma alt yapısınının yazılımı olan hypervisör yerleşir.  İlgili durum aşağıdaki görsellerde verilmiştir.

Sanallaştırma Etkinleştirilmeden Önce
Hyper-V Etkinleştirdikten Sonra

Hyper-v etkinleştirildikten sonra donanım ile Windows server arasına sanallaştırma yazılımı olan hypervisör  girmektedir. Artık kurulacak her sanal makine hypervisör üzerinde çalışacaktır. Bu sayede birbirinden yalıtılmış şekilde birden çok makine kurulumu yapılabilir. Ayrıca normal sanallaştırma yazılımları gibi burada ilk kurulan işletim sistemine bağımlılık ortadan kalkmış olur. Zaten sanallaştırma etkinleştirildiğinde artık ilk kurulan işletim sistemi de bir nevi sanal makine gibi çalışmaya devam edecektir.

Bazı tanımları açıkayacak olursak:

Windows Hypervisor: Hyper-v etkinleştirildikten sonra devreye giren sanallaştırma yazılımıdır. Asıl görevi sanal makineler oluşturulması için parent partition üzerinden gelen istekleri dinlemek ve kaynak kullanımını sağlamaktır.

Partition: Birbirinden izole şekilde parent partition ve diğer child partitionların biribiri ile izole durumudur. 

Parent Partition: Sanallaştırma aktif olmadan önce sunucu üzerinde windows server çalışır. Sanallaştırma aktifleştirildiğinde artık bu windows server hypervisör katmanı üzerine yerleşir ve ana yönetici konumuna gelir. Ve child partitionların oluşturulmasını ve yönetilmesini sağlar. Ayrıca gelen memory ve cpu istekleri dışında donanım erişim isteklerine aracı olur. Bir adet parent partition bulunur ve sanallaştırma aktif edildiğinde hypervisor yazılımının hemen üzerine yerleşir.

Child Partition: Parent partition aracılığı ile oluşturulan sanal makinelerdir. Child partitionlar yeni bir partition oluşturamazlar. Üzerin de uygulamalar olan sanal sunuculardır. Birbirleri ile izole durumdadır. Donanımlara direkt olarak erişemezler. Parent partition üzerinden erişirler. Precessor ve memory proselerini direkt hypervisor üzerinden iletebilirler. 

Virtualization Stack: Sanallaştırma katmanı olarak tanımlanır. VM Worker process, VM Services,WMI Sağlayıcıları, Kullanıcı arayüzleri, Yönetim servisleri gibi hizmetlerin çalıştığı katmandır. Parent partition üst kısmını kapsayan alandır.

Virtual Machine: Yeni yapılan child partitionların tamamı virtual machinedir. Herbir sanal makinelerin kendi sanal donanımları vardır. Hyper-V  mimarisinde yer alan sanal makineler gerçek donanımlara istek gönderemezler. VSP ile iletişim halindedir.

Guest  OS (Operation System): Sanal işletim sistemidir. Virtual machine içerisinde çalışan sanal işletim sistemleridir. Child partition içerisinde kullanılır.

VSP(Virtual Service Provider): Sadece parent partition üzerinde bulunur ve child partitionlar üzerinden gelen  donanım isteklerine cevap verir. Driverlar üzerinden bu işlemleri yapar. Bir anlamda sanal makinelerin parent OS üzerindeki sürücüleri kullanarak donanımlara erişmesini sağlar.
Aynı anda birden fazla sanal makineden gelen isteklerinde takibinden sorumludur.

VSC(Virtual Service Client/Consumer):  Sadece child partitionlar üzerinde çalışır. Parent OS üzerindeki VSP ile haberleşir. Sanal işletim isteminden gelen işlemi  VSP iletir ve dönen cevabı alır.

VM BUS: VSP ve VSC’lerin birbirleri ile iletişim de kullandığı protokollerdir. Aynı anda birden fazla sanal makinenin haberleşmesini sağlayabilir. Bu haberleşme VM BUS protokolü içerisin de bulunana kanallar aracılığı ile yapılır. Her sanal makine kendine özel kanalı kullanır. Bu durumda her sanal makine birbiri ile izole hale gelmiş olur.

Hyper-V  I/O Süreci: Sanal makineler de CPU ve RAM erişimi hypervisor üzerinden sağlanır. Bu süreçte VSP , VSC ve VM Bus kullanılmaz. CPU ve RAM erişim isteği dışındaki I/O istek erişimleri için VSP , VSC ve VM Bus kullanılır. Örnek olarak disk yazma işlemi, grafik işlemleri gösterilebilir. CPU ve RAM istekleri için sanal makinelerin üzerinde çalışan işletim sistemlerinin kernel’i kullanıır. İstekler  hypervisor katmanına iletilir ve buradan donanımlara erişim sağlanır bu isteklerin cevapları yine aynı yoldan geri döner.
Örnek verecek olursak: sanal makineden diske veri yazılması istegi durumunda  makine üzerindeki uygulama isteği öncelikle kernel’a gönderir. Kernel üzerinden bu istek VSC ye iletilir. VSC aldığı bu isteği VMBus protokolü üzerinden VSP’ye iletir. VSP bu istekleri Driver’lara ileterek fiziksel diske veri yazılması sağlanır. İşlem sonun da cevaplar yine aynı yolu izleyerek iletilir. VM Bus memeory tabanlı olduğu için işlemler hızlı bir şekilde gerçekleşir.

Hyper-V I/O Süreci (VMBus)
Hyper-V I/O Süreci (VMBus)

Vakit buldukça yazmaya devam edeceğim. Bilginize sunarım.