Hypervisor
- Türkçe karşılığı
- hipervizör
- Okunuşu
- haypırvayzır
Günlük kullanımda çoğunlukla İngilizcesi tercih edilir.
Kısaca
Hypervisor, tek bir fiziksel bilgisayarın CPU, bellek ve aygıtlarını paylaştırarak yalıtılmış sanal makineler oluşturan ve çalıştıran yazılımdır.
Hypervisor nedir?
Sanal makine izleyicisi (virtual machine monitor) olarak da adlandırılan hypervisor, sanal makineleri mümkün kılan yazılım katmanıdır. Fiziksel donanım ile bir ya da daha fazla konuk işletim sistemi arasında durur, her konuğa kendi sanal CPU'larını, belleğini, disklerini ve ağ kartlarını verir ve konukları birbirinden yalıtılmış tutar.
Tip 1 ya da bare-metal hypervisor doğrudan donanım üzerinde çalışır; Xen, VMware ESXi, Microsoft Hyper-V ve KVM gibi. KVM, Linux kernel'ına yerleşiktir ve Linux'un kendisini bir hypervisor'a dönüştürür. Tip 2 ya da barındırılan (hosted) hypervisor ise VirtualBox'ta olduğu gibi normal bir işletim sisteminde uygulama olarak çalışır. Modern CPU'lar Intel VT-x ve AMD-V gibi donanım sanallaştırma özellikleri içerir; bunlar konuk kodun işlemcide neredeyse tam hızda doğrudan çalışmasına izin verir ve hypervisor yalnızca hassas işlemler için devreye girer. Bellek ekstra bir adres çevirme katmanıyla sanallaştırılır; aygıtlar ise ya taklit edilir, verimli paravirtual sürücülerle sağlanır ya da doğrudan bir konuğa geçirilir.
Hypervisor, bir binayı dairelere bölen ev sahibi gibidir. Her kiracının kendi mutfağı olan özel, kilitli bir birimi vardır; ev sahibi ise ortak tesisatı ve elektriği yönetir ve hiçbir kiracının bir başkasının evine giremeyeceğinden emin olur. Hypervisor'lar, her sanal sunucunun birinin üzerinde çalıştığı bulut bilişimi güçlendirir ve sunucu konsolidasyonu, bir dizüstü bilgisayarda diğer işletim sistemlerini çalıştırma, test için sandbox'lar ve bazı serverless platformların arkasındaki hafif microVM'ler için kullanılır.
Hypervisor çoğu zaman sanal makinenin kendisiyle karıştırılır: hypervisor yöneticidir, sanal makine ise onun çalıştırdığı taklit edilmiş bilgisayardır. Ayrıca donanımı taklit etmek yerine ana bilgisayarın kernel'ını paylaşan ve process'leri kernel özellikleriyle yalıtan container'lardan da farklıdır; bu onları daha hafif ama daha zayıf yalıtımlı yapar. Emülatör de yine farklıdır: her komutu çevirerek tamamen farklı bir CPU mimarisini taklit edebilir; bu, aynı mimaride bir konuğu yerel olarak çalıştırmaktan çok daha yavaştır.
Önemli noktalar
- Hypervisor, tek bir fiziksel bilgisayarda sanal makineler oluşturur, çalıştırır ve yalıtır.
- Tip 1 hypervisor'lar bare-metal üzerinde, tip 2 hypervisor'lar bir işletim sisteminin üzerinde çalışır.
- Modern CPU'lardaki donanım sanallaştırma, konukların yerele yakın hızda çalışmasını sağlar.
- Bulutta her sanal sunucu bir hypervisor üzerinde çalışır.
- Container'lar ana bilgisayarın kernel'ını paylaşır ve hypervisor'a ihtiyaç duymaz.
Örnek
# A non-zero count means the CPU supports Intel VT-x (vmx) or AMD-V (svm)
grep -cE 'vmx|svm' /proc/cpuinfo
# Is the KVM hypervisor module loaded?
lsmod | grep kvm
# Am I inside a virtual machine? Prints the hypervisor type, or "none"
systemd-detect-virtSık sorulan sorular
Tip 1 ve tip 2 hypervisor arasındaki fark nedir?
Tip 1 hypervisor doğrudan donanım üzerinde çalışır ve veri merkezlerinde ve bulutlarda kullanılır. Tip 2 hypervisor ise normal bir işletim sisteminde uygulama olarak çalışır ve geliştirici dizüstü bilgisayarlarında yaygındır.
Docker bir hypervisor mudur?
Hayır. Docker, sanal donanım üzerinde ayrı konuk kernel'ları çalıştırmak yerine ana bilgisayar işletim sisteminin kernel'ını paylaşan container'ları çalıştırır. Ancak macOS ve Windows'ta Docker, bir Linux kernel'ı sağlamak için arka planda küçük bir sanal makine kullanır.
Hypervisor ile sanal makine arasındaki fark nedir?
Hypervisor, sanal makineleri oluşturan ve yöneten yazılımdır. Sanal makine ise onun çalıştırdığı, her birinin kendi konuk işletim sistemi olan yalıtılmış, taklit edilmiş bilgisayarlardan biridir.
İlgili sayfalar
- Sanal MakineDevOps ve Bulut, s. 45Sanal makine, paylaşılan fiziksel donanımda kendi işletim sistemini çalıştıran, aynı ana makinedeki diğerlerinden yalıtılmış yazılım tabanlı bilgisayardır.
- KonteynerDevOps ve Bulut, s. 28Konteyner, bir uygulamayı bağımlılıklarıyla paketleyip ana makinenin paylaşılan işletim sistemi çekirdeği üzerinde çalıştıran hafif, yalıtılmış bir pakettir.
- Bulut BilişimDevOps ve Bulut, s. 5Bulut bilişim, sunucu, depolama ve veritabanı gibi bilişim kaynaklarının internet üzerinden, kullandığın kadar öde modeliyle talep üzerine sunulmasıdır.
- Kernelİşletim Sistemleri, s. 17Kernel, işletim sisteminin CPU'yu, belleği ve donanım aygıtlarını yöneten ve programların bu kaynaklara nasıl eriştiğini denetleyen çekirdek bölümüdür.
- DockerDevOps ve Bulut, s. 15Docker, bir uygulamayı ve ihtiyaç duyduğu her şeyi, her makinede aynı şekilde çalışan bir konteyner içinde paketlemeye yarayan açık kaynaklı bir platformdur.
- ServerlessDevOps ve Bulut, s. 46Serverless, sağlayıcının kodu talep üzerine çalıştırıp sunucuları yönettiği, otomatik ölçeklediği ve yalnızca gerçek kullanıma ücret aldığı bulut modelidir.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin