Разница между Xen PV, Xen KVM и HVM?


53

Я знаю, что Xen обычно лучше OpenVZ, поскольку поставщик не может перепродать в Xen. Тем не менее, в чем разница Xen PV, Xen KVMи HVM(Я просматривал спецификации этого провайдера ? Какой из них лучше для каких целей и почему?


Редактировать:

Для конечного пользователя, который будет просто хостинг сайтов, что лучше? С точки зрения эффективности или другой точки зрения, есть ли преимущество одного над другим?

Ответы:


47

Xen поддерживает типы виртуализации

Xen поддерживает запуск двух разных типов гостей. Гости Xen часто называются domUs (непривилегированные домены). Оба гостевых типа (PV, HVM) могут использоваться одновременно в одной системе Xen.

Xen Паравиртуализация (PV)

Паравиртуализация - это эффективная и легкая технология виртуализации, представленная Xen, впоследствии принятая и другими решениями виртуализации. Паравиртуализация не требует расширений виртуализации от центрального процессора. Однако для паравиртуализированных гостей требуется специальное ядро, которое портировано для собственной работы в Xen, поэтому гости знают о гипервизоре и могут работать эффективно без эмуляции или виртуального эмулируемого оборудования. Гостевые ядра Xen PV существуют для операционных систем Linux, NetBSD, FreeBSD, OpenSolaris и Novell Netware.

У гостей PV нет виртуального эмулируемого оборудования, но графическая консоль все еще возможна с использованием гостевого pvfb (паравиртуальный кадровый буфер). Гостевую графическую консоль PV можно просмотреть с помощью VNC-клиента или в Virthat Viewer от Redhat. В dom0 есть отдельный VNC-сервер для PVFB каждого гостя.

Upstream kernel.org Ядра Linux, начиная с Linux 2.6.24, включают поддержку гостевого Xen PV (domU), основанную на платформе Linux pvops, поэтому каждое ядро ​​Linux верхнего уровня можно автоматически использовать в качестве гостевого ядра Xen PV без каких-либо дополнительных исправлений или модификаций.

См. Вики-страницу XenParavirtOps для получения дополнительной информации о поддержке Linux pvops Xen.

Полная виртуализация Xen (HVM)

Для полностью виртуализированных HVM (аппаратная виртуальная машина) гостям требуются расширения виртуализации ЦП от центрального процессора (Intel VT, AMD-V). Xen использует модифицированную версию Qemu для эмуляции всего аппаратного обеспечения ПК, включая BIOS, контроллер диска IDE, графический адаптер VGA, контроллер USB, сетевой адаптер и т. Д. Для гостей HVM. Расширения виртуализации ЦП используются для повышения производительности эмуляции. Для полностью виртуализированных гостей не требуется специального ядра, поэтому, например, операционные системы Windows могут использоваться в качестве гостя Xen HVM. Полностью виртуализированные гости обычно медленнее, чем паравиртуализированные гости, из-за требуемой эмуляции.

Для повышения производительности полностью виртуализированные HVM гости могут использовать специальные драйверы паравиртуальных устройств, чтобы обойти эмуляцию для дискового и сетевого ввода-вывода. Гости Xen Windows HVM могут использовать драйверы GPLPV с открытым исходным кодом. См. Вики-страницу XenLinuxPVonHVMdrivers для получения дополнительной информации о драйверах Xen PV-on-HVM для гостей Linux HVM.

Это из http://wiki.xenproject.org/wiki/XenOverview

KVM - это вовсе не Xen, это еще одна технология, в которой KVM - это встроенный модуль ядра Linux, а не дополнительное ядро, такое как Xen. Что делает KVM лучшим дизайном. недостатком здесь является то, что KVM новее, чем Xen, поэтому некоторые функции могут отсутствовать.


9
+1 квм совсем не ксен. Абсолютно не согласен, что KVM - лучший дизайн. Xen обеспечивает намного лучшую изоляцию и не зависит от ядра Linux и его потенциальных уязвимостей.
— Антуан Бенкемун

2
Спасибо за информацию! Я не мог понять все. С точки зрения конечного пользователя, кто будет просто размещать веб-сайты, что лучше? Есть ли существенное преимущество одного над другим?

2
У Xen есть свои уязвимости. Но запуск ОС с двумя загруженными ядрами является недостатком дизайна, независимо от того, насколько хорошо вы это сделаете
— dyasny

1
JP19: это зависит от сайтов. Если вы можете определить нагрузку на VPS, вы можете спросить здесь или Google для лучшего решения.
— Дясный

2
Xen - это гипервизор, как и KVM. KVM имеет PV-устройства и со временем добавляет еще больше, он также позволяет проходить через PCI. Так что я не вижу смысла в твоих аргументах, Нильс
— дясный

32

Xen это гипервизор, который работает на металле (ПК / сервер), а затем размещает виртуальные машины, называемые доменами.

Xen PVДомен является Паравиртуализированным доменом , это означает , что операционная система (обычно мы говорим линукс здесь) были модифицированы для работы под Xen, и нет никакой необходимости фактически эмулировать аппаратные средства. Это должно быть наиболее эффективным способом, с точки зрения производительности.

Xen HVMДомен аппаратно эмулировать домен, это означает , что операционная система (может быть Linux, Windows, любой другой ) не был изменен каким - либо образом и аппаратное обеспечение получает эмулировать. Это довольно медленно, поэтому обычно вы устанавливаете драйверы PV в гостевой системе для критически важного оборудования (обычно диска и сети), поэтому гость в целом будет работать полностью виртуализировано, но наиболее критичные для производительности части оборудования будут работать паравиртуализированно. В последних системах Linux есть драйверы PV для диска и сети в ядре, а также существуют различные драйверы PV для Windows. При всех разработках HVM в последние годы, как правило, разница в производительности между HVM и PV для стандартных рабочих нагрузок невелика.

KVMэто не Xen, это еще одна платформа виртуализации, встроенная в ядро ​​Linux. С точки зрения гостя это напоминает Xen HVM: гость работает полностью виртуализировано, и есть специальный драйвер для запуска некоторых частей паравиртуализированными (опять же, диск и сеть).

И Xen HVM, и Linux KVM нуждаются в поддержке аппаратной виртуализации (Intel VT-x, AMD AMD-V), в то время как Xen PV не поддерживает операционные системы без поддержки PV (вы не можете запустить Windows на Xen PV).

И Xen HVM, и Linux KVM будут использовать части программного обеспечения виртуализации qemu для эмуляции реального оборудования для устройств, не использующих драйверы PV в гостевой системе.

Xen (PV и HVM) может выполнять живую миграцию работающего гостя с одного физического сервера на другой, я не знаю, может ли KVM это сделать.

И Xen, и KVM не могут перегружать память, поэтому вы обычно получаете «истинное ОЗУ», в то время как другие платформы, такие как VMware, могут переставлять часть гостевой памяти на диск.

Существуют различия, но обычно они применяются к конкретным установкам, а не к обычному виртуальному частному серверу для продажи другим людям. Например, недавние гипервизоры Xen поддерживают трансцендентную память, которая может улучшить использование памяти и производительность гостя, если у гостя есть поддержка (ядра Linux> = 3.something).

Все эти технологии дадут вам отличный опыт, если они будут реализованы правильно, и не будут иметь большого значения с вашей точки зрения. Конечно, существует тысяча способов, с помощью которых все может пойти не так, и это не связано с конкретным решением для виртуализации (т. Е. Ваш гость может храниться на медленных дисках, что может снизить вашу производительность).


3
KVM может перегружать память, как и Xen.
— Дядный

@dyasny Я не знаю о KVM, но я почти уверен, что Xen не может перегружать память в реальном смысле этого слова (допуск другого максимального размера - это совсем другое). Пожалуйста, свяжите ваши источники, если вы верите.
— Luke404

Xen поддерживает шутки. Добавьте к этому стандартную замену, и у вас уже есть как минимум 2 механизма overcommit. Это так же стара , как 2008: blog.xen.org/index.php/2008/08/27/...
— dyasny

3
@dyasny Вы, вероятно, думаете о сверхкоммите, как о разрешении более высокого максимума. AFAIK, общепринятый смысл состоит в том, чтобы фактически выделять гостям больше памяти, чем физически присутствует в хосте, и это не реализовано в Xen. Вы не можете спустить гостевую подсказку (например, дать ей больше памяти), если у вас нет доступной физической памяти на хосте, и вы не можете запустить новый гость, если вы уже выделили всю память хоста (если вы не раздули запуск воздушных шаров гостей, таким образом, фактически сокращая выделенную память, чтобы вы ничего не перегружали).
— Luke404

1
Я думаю о сверхкоммитировании как о том, что он не только допускает больше, чем физически имеет хост, но и как фактически использует больше, чем физически имеет хост. Обмен это ужасно, но это механизм, который позволяет вам выделять больше страниц памяти, чем у вас физически на хосте, будь то процессы или виртуальные машины - не имеет значения. Это насколько я буду вдаваться в семантику на этом.
— Дядный
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.