Sanal Makine
- İngilizcesi
- Virtual Machine
- Okunuşu
- vörçuıl mışin
Günlük kullanımda iki ad da yaygın.
Kısaca
Sanal 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.
Sanal makine nedir?
Sanal makine (VM), yazılımla simüle edilmiş eksiksiz bir bilgisayardır. Kendi sanal CPU'su, belleği, diski ve ağ kartı vardır ve tıpkı fiziksel bir bilgisayar gibi konuk (guest) adı verilen tam bir işletim sistemi çalıştırır. Ana makine (host) denen tek bir fiziksel sunucu, her biri diğerlerinden yalıtılmış birçok VM'yi yan yana çalıştırabilir.
Bunu mümkün kılan yazılım, ana makinenin gerçek donanımını VM'ler arasında bölüştüren ve onları birbirinden ayrı tutan hypervisor'dır. KVM ve Xen gibi tip 1 hypervisor'lar doğrudan donanım üzerinde çalışır ve çoğu veri merkezi ile bulut platformuna güç verir; VirtualBox gibi tip 2 hypervisor'lar ise sıradan bir masaüstü işletim sisteminde uygulama olarak çalışır. Modern CPU'lar, VM'lerin yerel hıza yakın çalışmasını sağlayan donanım sanallaştırma özellikleri içerir.
Konteynerler bir binanın tesisatını paylaşan apartman daireleri gibiyse VM'ler ortak arsa üzerine kurulmuş müstakil evlere benzer: arsa (fiziksel donanım) paylaşılır, ancak her evin kendi temeli ve tesisatı (kendi işletim sistemi ve çekirdeği) vardır. Bir bulut sağlayıcısından sanal sunucu kiraladığınızda, neredeyse her zaman başkasının donanımı üzerinde çalışan bir VM kiralıyorsunuz demektir.
Sanal makineler sıklıkla konteynerlerle karıştırılır. VM, kendi çekirdeğiyle eksiksiz bir konuk işletim sistemi içerir; bu yüzden daha büyüktür (çoğunlukla gigabaytlarla ölçülür) ve daha yavaş açılır, ancak daha güçlü yalıtım sağlar ve ana makineden farklı bir işletim sistemi, örneğin bir Linux sunucuda Windows çalıştırabilir. Konteyner ise ana makinenin çekirdeğini paylaşır ve yalnızca uygulamayı paketler; bu da onu daha hafif ve hızlı kılar, ayrıca bulutta konteynerler çok sık VM'lerin içinde çalışır.
Önemli noktalar
- VM, kendi işletim sistemine sahip, yazılımla taklit edilen bir bilgisayardır.
- Hypervisor, tek bir fiziksel ana makinenin donanımını yalıtılmış birçok VM arasında paylaştırır.
- VM, ana makinesinden farklı bir işletim sistemi çalıştırabilir.
- Konteynerlerle karşılaştırıldığında VM'ler daha ağırdır ama daha güçlü yalıtılmıştır.
- Bulut sunucularının çoğu, paylaşılan fiziksel donanım üzerinde çalışan VM'lerdir.
Örnek
# Check that the CPU supports hardware virtualization (a result above 0 means yes)
grep -Ec '(vmx|svm)' /proc/cpuinfo
# Create a 20 GB virtual disk for the VM
qemu-img create -f qcow2 disk.qcow2 20G
# Boot a VM with 4 GB of RAM and 2 CPUs from an installer image
qemu-system-x86_64 -enable-kvm -m 4096 -smp 2 \
-drive file=disk.qcow2,format=qcow2 \
-cdrom installer.isoSık sorulan sorular
Sanal makine ile konteyner arasındaki fark nedir?
Sanal makine, sanallaştırılmış donanım üzerinde kendi çekirdeğiyle eksiksiz bir konuk işletim sistemi çalıştırır; konteyner ise ana makinenin çekirdeğini paylaşır ve yalnızca uygulamayı yalıtır. VM'ler daha güçlü yalıtım sunar ve herhangi bir işletim sistemini çalıştırabilir; konteynerler daha küçüktür ve çok daha hızlı başlar.
Hypervisor nedir?
Hypervisor, ana makinenin CPU'sunu, belleğini, depolamasını ve ağını paylaştırarak sanal makineleri oluşturan ve çalıştıran yazılımdır. Tip 1 hypervisor'lar doğrudan donanım üzerinde çalışır; tip 2 hypervisor'lar ise sıradan bir işletim sisteminin üzerinde çalışır.
Bulut sunucusu bir sanal makine midir?
Genellikle evet. Bulut bilişim örneklerinin çoğu, sağlayıcının fiziksel sunucularında çalışan VM'lerdir; ancak birçok sağlayıcı size tüm bir fiziksel makineyi veren bare-metal sunucular da sunar.
Sık karşılaştırılanlar
İlgili sayfalar
- 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.
- 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.
- LinuxDevOps ve Bulut, s. 31Linux, çoğu sunucuyu, bulutu, konteyneri ve Android telefonu çalıştıran, genellikle dağıtım olarak paketlenen açık kaynaklı bir işletim sistemi çekirdeğidir.
- Kod Olarak AltyapıDevOps ve Bulut, s. 27Kod olarak altyapı, sunucuları, ağları ve diğer altyapıyı araçların otomatik uyguladığı, sürüm kontrolündeki dosyalarda tanımlama pratiğidir.
- KubernetesDevOps ve Bulut, s. 30Kubernetes, konteynerli uygulamaların bir makine kümesi üzerinde dağıtılmasını, ölçeklenmesini ve yönetilmesini otomatikleştiren açık kaynaklı bir sistemdir.
- IaaSDevOps ve Bulut, s. 25IaaS (infrastructure as a service), sanal makine, depolama ve ağı isteğe bağlı kiralayıp işletim sistemini ve üstünü kendiniz yönettiğiniz bulut modelidir.
- JIT derlemeProgramlamanın Temelleri, s. 30JIT derleme, programın en sık çalışan kısımlarını çalışma anında makine koduna çevirerek yorumlayıcının hızlı açılışını derlenmiş kodun hızıyla birleştirir.
- Hypervisorİşletim Sistemleri, s. 14Hypervisor, 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.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin