Kısa cevap

Hypervisor, bir fiziksel sunucunun işlemci, bellek, disk ve ağ kaynaklarını birden fazla sanal makine arasında paylaştıran ve bu makineleri birbirinden yalıtan yazılım katmanıdır. Sanal makineler donanıma doğrudan değil, hypervisor'ın sunduğu sanal donanım üzerinden erişir.

Hypervisor ne yapar?#

Bir sunucuda yalnızca tek bir işletim sistemi çalıştığında, o işletim sistemi donanımın tamamının sahibidir: belleğin tamamını görür, diskleri doğrudan yönetir, ağ kartına doğrudan erişir.

Hypervisor bu tabloyu değiştirir. Donanımla işletim sistemleri arasına girer ve dört temel işi üstlenir:

  • Bölüştürme. Fiziksel kaynakları sanal makinelere paylaştırır.
  • Yalıtım. Bir sanal makine, diğerinin belleğini okuyamaz veya onu çökertemez.
  • Soyutlama. Konuk işletim sistemine gerçek donanımın değil, standart bir sanal donanımın sunulmasını sağlar.
  • Zamanlama. Hangi sanal makinenin ne zaman işlemci kullanacağına karar verir.

Soyutlama neyi kolaylaştırır?#

Sanal donanımın standart olması, pratikte en çok fark edilen faydadır. Bir sanal makineyi bir sunucudan alıp tamamen farklı marka ve modeldeki başka bir sunucuya taşıdığınızda, konuk işletim sistemi aynı sanal ağ kartını ve aynı sanal disk denetleyicisini görmeye devam eder. Sürücü uyumsuzluğu sorunu ortadan kalkar.

Aynı soyutlama; anlık görüntü (snapshot) alma, sanal makineyi çalışırken başka bir host'a taşıma ve şablondan yeni makine oluşturma gibi özelliklerin de temelidir.

Yalıtım ne kadar güçlüdür?#

Modern işlemciler sanallaştırmayı donanım seviyesinde destekler (Intel VT-x, AMD-V ve bellek tarafında EPT/NPT gibi genişletmeler). Hypervisor bu desteği kullanarak her sanal makineye kendi bellek adres alanını verir ve ayrıcalıklı komutları denetler.

Kaynaklar gerçekten bölünür mü?#

Hayır — ve bu, konuyu yeni öğrenenlerin en çok yanıldığı noktadır. Hypervisor kaynakları fiziksel olarak parçalara ayırıp her birini bir makineye kilitlemez. Bunun yerine zaman ve talep üzerinden paylaştırır:

  • İşlemci zamanı, çalışmaya hazır sanal işlemciler arasında sırayla dağıtılır.
  • Bellek, sanal makineye tanımlanır ama gerçekte kullanıldığı ölçüde ayrılır.
  • Disk alanı, seçilen sağlama biçimine göre önceden veya kullanıldıkça ayrılabilir.

Bu yaklaşım, toplamda fiziksel kapasiteden daha fazla kaynak tanımlanmasına (overcommitment) izin verir. Doğru kullanıldığında verimlilik sağlar, yanlış kullanıldığında performans sorunu üretir.

Hypervisor türleri#

Hypervisor'lar donanımla ilişkilerine göre iki ana başlıkta incelenir: doğrudan donanım üzerinde çalışanlar (Type 1) ve bir işletim sistemi üzerinde uygulama olarak çalışanlar (Type 2). Aradaki fark yalnızca kurulum biçimi değil; performans, yalıtım ve kullanım senaryosu da değişir.

Önemli noktalar

  • Hypervisor, donanım ile işletim sistemleri arasında duran ve kaynakları paylaştıran katmandır.
  • Sanal makineler standart sanal donanım gördüğü için farklı fiziksel sunucular arasında taşınabilir.
  • Yalıtım donanım desteğiyle güçlendirilir ancak hypervisor'ın güncel tutulması gerekir.
  • Kaynaklar fiziksel olarak bölünmez; zaman ve talep üzerinden paylaştırılır.