22 Mayıs 2013 Çarşamba

Sanallaştırma ve Çekirdek Tabanlı Sanal Makina (Kernel Based Virtual Machine)


     Okumakta olduğunuz yazıda sanallaştırmadan bahsedeceğim ve Kernel Based Virtual Machine (KVM) başlıklı makaleden öğrendiğim bilgilerin üzerinde duracağım.

     Günümüzde enerji tüketimini azaltmak için kurumlarda birden çok bilgisayar çalıştırılması yerine aynı makinada birden çok işletim sistemi çalıştırılması daha tercih edilebilir bir durumdur. Normalde minimum kullanılan sistem kaynakları sanallaştırma yoluyla birden çok işletim sistemine ve farklı işlemlere hizmet verir duruma gelmekte ve verimliliği artmaktadır. Son günlerde tanıtımı yapılan Xbox One oyun konsolunda Xbox işletim sistemi, Windows çekirdeği tabanlı işletim sistemi ve hypervisor katmanı olarak 3 işletim sistemi bulunmaktadır. Bu sayede Metro uygulamaları Xbox'a port edilip çalıştırılabilmektedir, örneğin oyun oynanırken Skype üzerinden görüşme yapılabilir.

     Sanal makinalarla ilk defa 2 yıl önce çalıştım. O zamanlar sadece ders amacıyla kullandığım bir yapıydı ve derinlemesine anlamaya çalışmamıştım. Sanallaştırmanın benim için avantajı istediğim bir işletim sistemini birkaç küçük ayarla zahmetsizce çalıştırabilmesiydi. Fakat bunun yanında gözlemlediğim kadarıyla bir de dezavantaj geliyordu; sanallaştırma katmanındaki işletim sistemi tam performansla çalışamıyordu. KVM hakkında okuduğum bu yazıdan sonra sanallaştırmanın nasıl çalıştığıyla ilgili daha çok fikir sahibi oldum ve sanal makina performansının sanallaştırma tekniğinin gelişimiyle artışa geçtiğini gördüm.

     Günümüzde x86 mimarisinde Ring yapısından dolayı sanallaştırma ortamını kontrol eden hypervisor donanımın hemen üzerindeki ayrıcalıklı katman olan Ring 0'a konulmakta ve konuk işletim sistemi de sıradan bir uygulamaymış gibi daha az ayrıcalıkların tanındığı Ring 3'te tutulmaktadır. Fakat donanımdan Ring 3'e kadar olan yolda işlemcinin ve sanallaştırılan katmanın iletişimi bozulmaya uğramakta ve konuk işletim sistemi asıl işletim gibi davranmaya çalışabilmekteydi. Dolayısıyla tasarımcılar donanımdan sanal makinalara erişim için sürekli yeni yöntemler denediler ve stabil bir yol bulmaya çalıştılar. Sanallaştırma üzerine yapılan çalışmalar son birkaç yılda oldukça verimli bir durumda olunduğunu göstermektedir. Özellikle Ocak 2007'den itibaren Linux çekirdeğine dahil edilen Çekirdek Tabanlı Sanallaştırma (ÇTS) tekniği oldukça kullanışlıdır.

     ÇTS yöntemiyle hypervisor donanımın üzerinde yabancı bir madde gibi durmayıp işletim sistemi çekirdeğine entegre halde çalışarak bir Linux işlemi gibi davranmaktadır ve sistemle çok daha uyumlu bir yapıdadır. ÇTS'de sanal makinalar ilk zamanlardaki gibi donanımı emüle etmek yerine Linux çekirdeği üzerinden gerçek donanımla iletişim kurabilmektedir. Linux'un açık kaynaklı olması ve donanım üreticilerinin de ÇTS'ye el atmasıyla beraber donanım desteği oldukça yükselmiştir. Linux hangi donanımla çalışıyorsa hypervisor da o donanımla uyum içinde çalışmaktadır. ÇTS hem Linux'un güvenli yapısından yararlanıp hem de donanım konusunda uyumlu bir tablo çizerek sanallaştırmayı denemek veya sanallaştırılmış sistemini terfi ettirmek isteyenler için en kullanışlı yöntem olarak karşımızda durmaktadır.

     Sanallaştırmanın son 10 yılda katettiği yolu oldukça etkileyici buldum. İlk başlarda kurumların ve devletin kullandığı bu sistemin normal bir bilgisayar kullanıcısına kadar inmesi herkesin bu teknolojiyle tanışıp kendi işinde kullanmasını sağladı. Ayrıca şirketlerin efektif çalışma ortamları hazırlarken sanal makinaları kullanması boşta duran işlem gücünü verimliliğe dönüştürmek adına çok başarılı bir adım olmuştur. ÇTS'nin şu an sadece Linux platformunda olması bana biraz dezavantaj gibi geliyor. Önümüzdeki yıllarda Linux dışındaki işletim sistemlerine de entegre edilirse daha çok kullanıcıya hitap edeceğini düşünüyorum.

Hiç yorum yok:

Yorum Gönder