Bir Sanal Makine (VM) çok sanallaştırma teknolojileri için oldukça genel bir terimdir.
Sanallaştırma teknolojilerinde birçok varyasyon vardır, ancak başlıcaları şunlardır:
- Donanım Düzeyinde Sanallaştırma
- İşletim Sistemi Düzeyinde Sanallaştırma
qemu-kvm
ve VMWare
birincisinin örnekleridir. Tam bir işletim sisteminin çalıştığı sanal ortamları yönetmek için bir hipervizör kullanırlar. Örneğin, bir qemu-kvm
sistemde FreeBSD çalıştıran bir VM, Windows çalıştıran başka bir VM ve Linux çalıştıran başka bir VM'ye sahip olabilirsiniz.
Bu teknolojiler tarafından oluşturulan sanal makineler, konuklara ayrı ayrı bilgisayarlar gibi davranır. Bunlar, konukların orijinal makale olduğuna inandığı sanal bir CPU, RAM, NIC, grafik vb. Bu nedenle, VM'lere birçok farklı işletim sistemi kurulabilir ve hiçbir değişiklik gerekmeden "kutudan çıkar" çalışırlar.
Bu çok uygun olsa da, birçok işletim sisteminin çok fazla çaba sarf etmeden kurması nedeniyle, hiper yöneticinin tüm donanımı simüle etmesi ve bir şeyleri yavaşlatabileceği bir dezavantajı vardır. Bir alternatif, sanal bir ortamda performans için tasarlanmış konuk için yeni bir sanal aygıt ve sürücünün geliştirildiği para-sanallaştırılmış donanımdır. qemu-kvm
bunun için virtio
çeşitli aygıt ve sürücüler sağlar. Bunun bir dezavantajı konuk işletim sisteminin desteklenmesi gerektiğidir; ancak desteklenirse performans avantajları mükemmeldir.
lxc
İşletim Sistemi Düzeyi Sanallaştırma veya kapsayıcılarına bir örnektir. Bu sistem altında, yalnızca bir çekirdek yüklüdür - ana çekirdek. Her kap basitçe kullanıcı alanı işlemlerinin bir izolasyonudur. Örneğin, apache
bir konteynere bir web sunucusu (örneğin ) yüklenir. Bu web sunucusu ile ilgili olarak, kurulu tek sunucu kendisidir. Başka bir kapsayıcı bir FTP sunucusu kullanıyor olabilir. Bu FTP sunucusu web sunucusu kurulumunun farkında değil - sadece kendi. Başka bir kapsayıcı, Linux dağıtımının kullanıcı tarafından tam olarak yüklenmesini içerebilir (dağıtım, ana sistemin çekirdeğiyle çalışabildiği sürece).
Ancak, kapları kullanırken ayrı bir işletim sistemi yüklemesi yoktur - yalnızca kullanıcı arazisi hizmetlerinin yalıtılmış örnekleri. Bu nedenle, bir kapsayıcıya farklı platformlar yükleyemezsiniz - Linux'ta Windows yok.
Kaplar genellikle a kullanılarak oluşturulur chroot
. Bu /
işlemin çalışması için ayrı bir özel kök ( ) oluşturur. Birçok bireysel özel kök oluşturarak, işlemler (web sunucuları veya bir Linux dağıtımı vb.) Kendi yalıtılmış dosya sistemlerinde çalışır. cgroups
Ağ ve RAM gibi diğer kaynakları izole edebilir gibi daha gelişmiş teknikler .
Hem en iyi hem de uzun süren tartışmaların artıları ve eksileri vardır.
- Kaplar daha hafiftir, çünkü her biri için tam bir işletim sistemi yüklenmez; hipervizörler için durum böyledir. Bu nedenle, daha düşük teknik özelliklere sahip donanımlarda çalışabilirler. Ancak, yalnızca Linux konuklarını çalıştırabilirler (Linux ana bilgisayarlarında). Ayrıca, çekirdeği paylaştıkları için, güvenliği ihlal edilmiş bir kabın bir başkasını etkileyebileceği ihtimali vardır.
- Hiper denetimciler daha güvenlidir ve her bir VM'ye tam bir işletim sistemi yüklendiğinden ve konuklar diğer VM'lerin farkında olmadığından farklı işletim sistemleri çalıştırabilir. Bununla birlikte, bu, ana bilgisayarda nispeten güçlü olması gereken daha fazla kaynak kullanır.