Каковы различия между Xen, QEMU и KVM?

Я знаю, что QEMU используется Xen, а KVM является вилкой QEMU.

Итак, KVM включает, что Xen добавляет к QEMU? Какое имя?

Спасибо

Ответ 1

QEMU - мощный эмулятор, что означает, что он может эмулировать различные типы процессоров.

Xen использует QEMU для HVM гостей, более конкретно для модели гостевого устройства HVM. Xen-специфический QEMU называется qemu-dm (сокращенно для модели устройства QEMU)

QEMU использует эмуляцию; KVM использует расширения процессора (HVM) для виртуализации.

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

Xen уникален тем, что он paravirtualized гости, которые не требуют аппаратной виртуализации.

И у Xen, и у KVM есть паравиртуализированные драйверы устройств, которые могут запускаться поверх гостей HVM.

Ответ 2

Приведенные выше ответы являются глубокими, техническими. Я пытаюсь выразить это простым языком.

Qemu - это эмулятор, который может работать с или без KVM, который является ускорителем (модуль ядра linux, который позволяет гостевой инструкции запускаться непосредственно на центральном процессоре хоста), что делает Qemu + KVM более быстрым решением, в отличие от более медленной альтернативы Qemu + TCG.

Xen - это железный гипервизор с различными режимами (типами виртуализации). Кстати, "голый металл" - вводящий в заблуждение термин. Всем гипервизорам Type-II/hosted или Type-I/bare-metal необходима соответствующая ОС. Таким образом, голый металл также имеет очень тонкий слой минимальной операционной системы, такой как слой, который использует гипервизор.

Xen PV или Paravirtualized- Не требуется аппаратная эмуляция, гостевое ядро модифицировано, чтобы гостевая система могла обнаружить/запустить базовый гипервизор Xen.

Xen HVM или Fully Virtualized- Требуется аппаратная эмуляция, доступная только на процессорах, поддерживающих виртуализацию Intel-VT и т.д., Модифицированный Qemu используется для аппаратной эмуляции (диск, сеть, контроллеры USB и т.д.), Гостевое ядро не модифицируется.

Обычно эмулируемая виртуализация (полная) медленнее, чем модифицированная виртуализация ядра (пара). Установив специализированные драйверы (драйверы PV) в гостевое ядро, можно улучшить производительность полностью виртуализированных гостей.