Разница между 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, поэтому некоторые функции могут отсутствовать.

dyasny
источник
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).

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

Luke404
источник
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
Я думаю о сверхкоммитировании как о том, что он не только допускает больше, чем физически имеет хост, но и как фактически использует больше, чем физически имеет хост. Обмен это ужасно, но это механизм, который позволяет вам выделять больше страниц памяти, чем у вас физически на хосте, будь то процессы или виртуальные машины - не имеет значения. Это насколько я буду вдаваться в семантику на этом.
Дядный