Różnica między Xen PV, Xen KVM i HVM?

53

Wiem, że Xen jest zwykle lepszy niż OpenVZ, ponieważ dostawca nie może sprzedać zbyt wiele w Xen. Jednak to, co jest różnica między Xen PV, Xen KVMi HVM(I szło za pośrednictwem tego dostawcy widowisko ? Który z nich jest lepszy do jakich celów i dlaczego?


Edytować:

Dla użytkownika końcowego, który będzie po prostu hostował strony internetowe, co jest lepsze? Z punktu widzenia wydajności lub innego punktu widzenia, czy jest jakaś przewaga jednego nad drugim?


źródło

Odpowiedzi:

47

Xen obsługuje typy wirtualizacji

Xen obsługuje uruchamianie dwóch różnych typów gości. Goście Xen są często nazywani jako domU (domeny nieuprzywilejowane). Oba typy gości (PV, HVM) mogą być używane jednocześnie w jednym systemie Xen.

Parawirtualizacja Xen (PV)

Parawirtualizacja to wydajna i lekka technika wirtualizacji wprowadzona przez Xen, później przyjęta również przez inne rozwiązania wirtualizacyjne. Parawirtualizacja nie wymaga rozszerzeń wirtualizacji z CPU hosta. Jednak zdiagnozowani goście wymagają specjalnego jądra, które jest portowane do działania natywnie na Xen, więc goście są świadomi hiperwizora i mogą działać wydajnie bez emulacji lub wirtualnego emulowanego sprzętu. Jądra gości Xen PV istnieją dla systemów operacyjnych Linux, NetBSD, FreeBSD, OpenSolaris i Novell Netware.

Goście PV nie mają żadnego wirtualnego emulowanego sprzętu, ale konsola graficzna jest nadal możliwa przy użyciu guest pvfb (parawirtualnego bufora ramki). Konsolę graficzną gościa PV można oglądać za pomocą klienta VNC lub przeglądarki virt Redhata. W dom0 jest osobny serwer VNC dla PVFB każdego gościa.

Jądro upstream.org Jądra Linuksa od Linuksa 2.6.24 zawierają obsługę gościa Xen PV (domU) opartego na frameworku Linux pvops, więc każde jądro Linuksa może być automatycznie używane jako jądro gościa Xen PV bez żadnych dodatkowych poprawek lub modyfikacji.

Zobacz stronę wiki XenParavirtOps, aby uzyskać więcej informacji na temat obsługi Xen przez Linux pvops.

Xen Pełna wirtualizacja (HVM)

W pełni zwirtualizowani goście HVM (Hardware Virtual Machine) wymagają rozszerzeń wirtualizacji procesora z procesora hosta (Intel VT, AMD-V). Xen używa zmodyfikowanej wersji Qemu do emulacji pełnego sprzętu komputerowego, w tym BIOS, kontrolera dysku IDE, karty graficznej VGA, kontrolera USB, karty sieciowej itp. Dla gości HVM. Rozszerzenia wirtualizacji procesora służą do zwiększenia wydajności emulacji. W pełni zwirtualizowani goście nie wymagają specjalnego jądra, więc na przykład systemy operacyjne Windows mogą być używane jako goście Xen HVM. W pełni zwirtualizowani goście są zwykle wolniejsi niż goście spirtualizowani ze względu na wymaganą emulację.

Aby zwiększyć wydajność, w pełni zwirtualizowani goście HVM mogą skorzystać ze specjalnych parawirusowych sterowników urządzeń, aby ominąć emulację dla We / Wy dysku i sieci. Xen Windows HVM goście mogą korzystać ze sterowników GPLPV opensource. Zobacz stronę wiki XenLinuxPVonHVMdrivers, aby uzyskać więcej informacji na temat sterowników Xen PV-on-HVM dla gości Linux HVM.

To jest z http://wiki.xenproject.org/wiki/XenOverview

KVM wcale nie jest Xenem, to kolejna technologia, w której KVM jest rodzimym modułem jądra Linuksa, a nie dodatkowym jądrem, takim jak Xen. Co czyni KVM lepszym projektem. wadą jest to, że KVM jest nowszy niż Xen, więc może brakować niektórych funkcji.

dyasny
źródło
9
+1 KVM wcale nie jest Xenem. Całkowicie nie zgadzam się, że KVM to lepszy projekt. Xen zapewnia znacznie lepszą izolację i nie zależy od jądra Linuksa i jego potencjalnych luk w zabezpieczeniach.
Antoine Benkemoun
2
Dzięki za informację! Nie mogłem zrozumieć wszystkiego. Z punktu widzenia użytkownika końcowego, kto będzie po prostu hostował strony internetowe, co jest lepsze? Czy istnieje znacząca przewaga jednego nad drugim?
2
Xen ma własne luki w zabezpieczeniach. Ale uruchamianie systemu operacyjnego z dwoma
ładowanymi
1
JP19: to zależy od stron internetowych. Jeśli możesz zdefiniować obciążenie VPS, możesz zapytać tutaj lub google o najlepsze rozwiązanie.
dyasny 13.01.11
2
Xen jest hiperwizorem, podobnie jak KVM. KVM ma urządzenia fotowoltaiczne, a wraz z upływem czasu dodaje więcej, umożliwia także przekazywanie danych przez PCI. Więc nie rozumiem sensu twojej argumentacji, Nils
dyasny
32

Xen to hypervisor działający na metalu (komputer / serwer), a następnie hostujący maszyny wirtualne zwane domenami.

Xen PVDomena jest paravirtualized domeny , oznacza to, że system operacyjny (zazwyczaj mówimy tu linux) został zmodyfikowany, aby uruchomić pod Xen, i nie ma potrzeby, aby rzeczywiście naśladować sprzętu. To powinna być najbardziej wydajna droga, pod względem wydajności.

Xen HVMDomena jest sprzętowy emulowane domeny, co oznacza, że system operacyjny (może być Linux, Windows, cokolwiek) nie został w żaden sposób modyfikowane i sprzętu dostaje emulowane. Jest to raczej powolne, więc zwykle instalujesz sterowniki PV w systemie gościa dla krytycznego sprzętu (zwykle dysku i sieci), więc gość jako całość będzie działał w pełni zwirtualizowany, ale najbardziej krytyczne dla wydajności elementy będą działały parawirtualizowane. Najnowsze systemy Linux mają sterowniki pv zarówno dla dysku, jak i sieci w jądrze, a także istnieją różne sterowniki PV dla systemu Windows. Przy całym rozwoju HVM w ostatnich latach zwykle nie ma różnicy w wydajności między HVM i PV dla standardowych obciążeń.

KVMto nie Xen, to kolejna platforma wirtualizacji wbudowana w jądro Linuksa. Z punktu widzenia gościa przypomina Xen HVM: gość działa w pełni zwirtualizowany i istnieje określony sterownik do uruchamiania niektórych części zdirawiryzowanych (ponownie, dysku i sieci).

Zarówno Xen HVM, jak i Linux KVM potrzebują wsparcia wirtualizacji wspomaganej sprzętowo (Intel VT-x, AMD AMD-V), podczas gdy Xen PV nie działa, ale nie może uruchamiać systemów operacyjnych bez wsparcia PV (nie można uruchomić systemu Windows na Xen PV).

Zarówno Xen HVM, jak i Linux KVM będą korzystać z części oprogramowania do wirtualizacji qemu, aby emulować rzeczywisty sprzęt dla urządzeń nieobsługujących sterowników PV w systemie gościa.

Xen (zarówno PV, jak i HVM) może przeprowadzić migrację na żywo działającego gościa z jednego serwera fizycznego na inny, nie wiem, czy KVM też.

Zarówno Xen, jak i KVM nie mogą przeciążać pamięci, więc zazwyczaj dostajesz „prawdziwą pamięć RAM”, podczas gdy inne platformy, takie jak VMware, mogą zamieniać część pamięci RAM na dysk.

Istnieją różnice, ale zwykle dotyczą konkretnych instalacji, a nie ogólnego wirtualnego prywatnego serwera na sprzedaż innym osobom. Na przykład ostatnie hiperwizory Xen obsługują pamięć transcendentną, która mogłaby poprawić wykorzystanie pamięci i wydajność gościa, jeśli gość go obsługuje (jądra Linuksa> = 3. coś).

Wszystkie te technologie zapewnią Ci wspaniałe wrażenia, jeśli zostaną poprawnie wdrożone, i nie zrobią dużej różnicy z twojego punktu widzenia. Oczywiście istnieje tysiące sposobów, które mogą pójść nie tak i nie jest to związane z konkretnym rozwiązaniem do wirtualizacji (np. Gość może być przechowywany na wolnych dyskach, co może zaszkodzić Twojej wydajności).

Luke404
źródło
3
KVM może przeciążać pamięć, podobnie jak Xen.
dyasny
@dyasny Nie wiem o KVM, ale jestem prawie pewien, że Xen nie może przeciążać pamięci w sensie tego słowa (dopuszczenie innego maksymalnego rozmiaru to inna sprawa). Połącz swoje źródła, jeśli uważasz, że tak.
Luke404,
Xen obsługuje balonowanie. Dodaj do tego standardową zamianę, a już masz co najmniej 2 mechanizmy nadmiernego zaangażowania. To jest tak stare, jak w 2008 roku: blog.xen.org/index.php/2008/08/27/…
dyasny
3
@dyasny prawdopodobnie myślisz o nadmiernym zaangażowaniu, ponieważ pozwala na wyższe maksimum. AFAIK, przyjęte znaczenie to faktyczne przydzielenie gościom więcej pamięci niż fizyczna obecność na hoście, a to nie jest zaimplementowane w Xen. Nie możesz spuścić powietrza z balonu gościa (np. Dać mu więcej pamięci), jeśli nie masz dostępnej pamięci fizycznej na hoście, i nie możesz rozpocząć nowego gościa, jeśli już przydzieliłeś całą pamięć hosta (chyba że nadmuchasz uruchamianie balonów gości, a tym samym zmniejszenie przydzielonej pamięci, abyś niczego nie przepełniał).
Luke404,
1
Uważam, że nadmierne zaangażowanie nie tylko pozwala fizycznie więcej niż gospodarzowi, ale także faktyczne używanie więcej niż fizycznie ma gospodarz. Zamiana jest straszna, ale jest to mechanizm, który pozwala przydzielić więcej stron pamięci niż fizycznie na hoście, czy to dla procesów, czy maszyn wirtualnych - nie ma znaczenia. To jest tak daleko, jak pójdę do semantyki na tym.
dyasny