Xen PV, Xen KVM ve HVM arasındaki fark nedir?


53

Sağlayıcı Xen'de satış yapamadığından Xen'in genellikle OpenVZ'den daha iyi olduğunu biliyorum. Ancak, arasındaki fark nedir Xen PV, Xen KVMve HVM(bu sağlayıcının geçiyordu özellikleri hangisi neyi amaçlar ve neden için daha iyidir??


Düzenle:

Sadece web sitelerini barındıracak bir son kullanıcı için hangisi daha iyi? Verimlilik veya başka bir bakış açısıyla, birinin diğerine göre herhangi bir avantajı var mı?

Yanıtlar:


47

Xen destekli sanallaştırma türleri

Xen, iki farklı konuk tipinin çalıştırılmasını destekler. Xen misafirlerine genellikle domU (imtiyazsız alanlar) adı verilir. Her iki konuk tipi (PV, HVM) aynı anda tek bir Xen sisteminde kullanılabilir.

Xen Paravirtualization (PV)

Paravirtualization, Xen tarafından tanıtılan, daha sonra da diğer sanallaştırma çözümleri tarafından benimsenen, verimli ve hafif bir sanallaştırma tekniğidir. Paravirtualization ana bilgisayar CPU'sundan sanallaştırma uzantıları gerektirmez. Bununla birlikte, paravirtüel hale getirilmiş konuklar, Xen'de yerel olarak çalışacak şekilde yerleştirilmiş özel bir çekirdeğe ihtiyaç duyarlar; bu nedenle, konuklar, hipervizörün farkındadır ve öykünme veya sanal öykünmüş donanım olmadan verimli bir şekilde çalışabilirler. Xen PV konuk çekirdeği Linux, NetBSD, FreeBSD, OpenSolaris ve Novell Netware işletim sistemleri için mevcuttur.

PV konukları herhangi bir sanal öykünmüş donanıma sahip değildir, ancak misafir pvfb (paravirtual framebuffer) kullanılarak grafik konsolu hala mümkündür. PV konuk grafik konsolu VNC istemcisi veya Redhat'ın sanal görüntüleyicisi kullanılarak görüntülenebilir. Her misafirin PVFB'si için dom0'da ayrı bir VNC sunucusu var.

Upstream kernel.org Linux 2.6.24'ten beri Linux çekirdekleri, Linux pvops çerçevesine dayanan Xen PV konuk (domU) desteği içerir, böylece her yukarı akış Linux çekirdeği, herhangi bir ek düzeltme eki veya değişiklik yapılmadan Xen PV konuk çekirdeği olarak otomatik olarak kullanılabilir.

Linux pvops Xen desteği hakkında daha fazla bilgi için XenParavirtOps wiki sayfasına bakın.

Xen Tam sanallaştırma (HVM)

Tamamen sanallaştırılmış aka HVM (Donanım Sanal Makinesi) konukları, ana bilgisayar CPU'sundan (Intel VT, AMD-V) CPU sanallaştırma uzantıları gerektirir. Xen, HVM misafirleri için BIOS, IDE disk denetleyicisi, VGA grafik adaptörü, USB denetleyicisi, ağ adaptörü vb. Dahil tam PC donanımını taklit etmek için Qemu'nun değiştirilmiş sürümünü kullanıyor. CPU sanallaştırma uzantıları, öykünme performansını artırmak için kullanılır. Tamamen sanallaştırılmış konuklar özel çekirdek gerektirmez, bu nedenle örneğin Windows işletim sistemleri, Xen HVM konuğu olarak kullanılabilir. Tamamen sanallaştırılmış konuklar, gerekli öykünme nedeniyle genellikle sanallaştırılmış misafirlerden daha yavaştır.

Performansı tamamen sanallaştırılmış HVM konukları artırmak için, disk ve ağ IO emülasyonunu atlamak için özel paravirtual aygıt sürücüleri kullanabilir. Xen Windows HVM konukları açık kaynaklı GPLPV sürücülerini kullanabilir. Linux HVM misafirleri için Xen PV-on-HVM sürücüleri hakkında daha fazla bilgi için XenLinuxPVonHVMdrivers wiki sayfasını ziyaret edin.

Bu http://wiki.xenproject.org/wiki/XenOverview adresinden alınmıştır.

KVM hiç Xen değil, KVM'nin bir Linux yerli çekirdek modülü olduğu ve Xen gibi ek bir çekirdek olmadığı bir başka teknoloji. Bu da KVM'yi daha iyi bir tasarım yapar. Buradaki dezavantajı, KVM'nin Xen'den daha yeni olmasıdır, bu nedenle bazı özelliklerden yoksun olabilir.


9
+1 KVM hiç Xen değil. KVM'nin daha iyi bir tasarım olduğu konusunda kesinlikle aynı fikirde değil. Xen, daha iyi bir yalıtım sağlar ve Linux çekirdeğine ve potansiyel güvenlik açıklarına bağlı değildir.
Antoine Benkemoun

2
Bilgi için teşekkürler! Hepsini anlayamadım. Bir son kullanıcı bakış açısından, web sitelerini kim barındıracak, hangisi daha iyi? Birinin diğerinden önemli avantajı var mı?

2
Xen'ın kendi güvenlik açıkları var. Ancak iki çekirdekli işletim sistemi çalıştıran bir işletim sistemini çalıştırmak ne kadar iyi yaparsanız yapın bir tasarım
hatasıdır

1
JP19: Bu web sitelerine bağlı. VPS üzerindeki yükü tanımlayabiliyorsanız, buradan sorabilir veya en iyi çözümü için google.
dyasny

2
Xen bir hipervizördür ve KVM de öyle. KVM, PV cihazlarına sahiptir ve zamanla daha fazlasını ekler, ayrıca PCI geçişine izin verir. Yani argümanınızın noktasını göremiyorum, Nils
dyasny

32

Xen metal üzerinde çalışan (bilgisayar / sunucu) bir hipervizördür ve daha sonra alan adı verilen sanal makineleri barındırır.

Bir Xen PValan bir paravirtualized alandır , yani işletim sistemi (genelde burada linux konuşuyoruz) Xen altında çalışacak şekilde değiştirilmiştir ve gerçekte donanımı taklit etmeye gerek yoktur. Bu akıllıca performans gitmek için en etkili yol olmalıdır .

Bir Xen HVMdomain donanım taklit herhangi bir şekilde değiştirilmedi ve donanım taklit alır (her ne Linux, Windows, olabilir) işletim sistemini ifade eder alanı. Bu oldukça yavaştır, bu nedenle genellikle kritik donanım için konuk bilgisayarına PV sürücüleri yüklersiniz (genellikle disk ve ağ), bu nedenle bir bütün olarak konuk tamamen sanallaştırılır, ancak performans açısından en kritik donanım parçaları paravirtüel hale getirilir. Son zamanlarda kullanılan linux sistemlerinde çekirdek içinde hem disk hem de ağ için pv sürücüleri bulunur ve Windows için de çeşitli PV sürücüleri bulunur. Son yıllarda HVM'deki tüm gelişmelerle birlikte standart iş yükleri için HVM ile PV arasında performansta genellikle çok az fark vardır.

KVMXen değil, Linux çekirdeğinin içinde inşa edilmiş bir başka sanallaştırma platformudur. Bir itibaren konuk bakış açısından bu Xen hvm benzer: misafir tamamen sanallaştırılmış çalışır ve bazı bölümleri (yine diski ve ağ) paravirtualized çalıştırmak için belirli sürücü vardır.

Hem Xen HVM hem de Linux KVM donanım destekli sanallaştırma desteğine (Intel VT-x, AMD AMD-V) ihtiyaç duyarken, Xen PV, PV desteği olmadan işletim sistemlerini çalıştırmaz ancak çalıştıramaz (Windows'u Xen PV'de çalıştıramazsınız).

Hem Xen HVM hem de Linux KVM, konuk sistemde PV sürücüleri kullanmayan cihazlar için gerçek donanımı taklit etmek için qemu sanallaştırma yazılımının parçalarını kullanır.

Xen (hem PV hem de HVM) çalışan bir misafirin bir fiziksel sunucudan diğerine canlı geçişini yapabilir, KVM'nin de yapabileceğini bilmiyorum.

Hem Xen hem de KVM belleğin üstesinden gelemez, bu yüzden genellikle "gerçek RAM" elde edersiniz, VMware gibi diğer platformlar da konuk makinanın bir kısmını diske yerleştirebilir.

Farklılıklar vardır, ancak genellikle belirli kurulumlar için geçerlidir ve başkalarına satılan genel sanal özel sunucuya uygulanmaz. Örneğin, yeni Xen hipervizörleri, misafir destekliyorsa, bellek kullanımını ve konuk performansını artırabilen aşkın belleği destekler (linux çekirdeği> = 3.).

Tüm bu teknolojiler, doğru şekilde uygulanması durumunda size harika bir deneyim verecektir ve sizin açınızdan büyük bir fark yaratmayacaktır. Tabii ki, bazı şeylerin yanlış gitmesinin binlerce yolu vardır ve bu spesifik sanallaştırma çözümüyle ilgili değildir (yani misafiriniz yavaş disklerde saklanabilir ve performansınıza zarar verebilir).


3
KVM hafızayı aştırabilir ve Xen de yapabilir.
dyasny

@dyasny Ben KVM bilmem ama Xen olamaz eminim overcommit kelimenin gerçek anlamıyla belleği (farklı maksimum boyutu sağlayan farklı bir şeydir). Lütfen inanıyorsanız kaynaklarınızı bağlayın.
Luke404

Xen balonları destekler. Buna standart takas ekle ve zaten en az 2 aşırı alım mekanizmasına sahipsin. Bu, 2008 kadar eski: blog.xen.org/index.php/2008/08/27/…
dyasny

3
@dyasny muhtemelen daha yüksek bir maksimum izin vermek olarak aşırı görev yapmayı düşünüyorsunuz . AFAIK, kabul edilen anlam aslında konuklara ev sahibinde fiziksel olarak mevcut olandan daha fazla hafıza ayırmaktır ve bu Xen'de uygulanmaz. Eğer ana bilgisayarda mevcut fiziksel hafızanız yoksa, bir konuk balonunu söndüremezsiniz (örn. Daha fazla hafıza verin) ve tüm ana bilgisayar hafızanızı önceden tahsis ettiyseniz, ya yeni bir konuk başlatamazsınız. misafir balonları çalıştırmak, böylece aslında tahsis edilen hafızayı azaltıyor, böylece hiçbir şeyden fazla para çekmiyorsunuz.
Luke404

1
Düşündüğüm overcommit bir ev sahibi daha izin vermiyor sadece fiziksel olarak değil, aynı zamanda olarak gerçekte ana fiziksel olarak sahip daha fazlasını kullanarak. Değiş tokuş yapmak korkunç, ancak süreçler veya VM'ler için önemli değil, fiziksel olarak bir ana bilgisayarda sahip olduğunuzdan daha fazla bellek sayfası ayırmanıza izin veren bir mekanizma. Bu konuda anlambilime gireceğim kadarıyla.
dyasny
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.