Я понимаю, что qemu использует двоичную трансляцию для эмуляции машин, поэтому, независимо от базовой архитектуры, он может обеспечивать эмуляцию.
И KVM использует технику аппаратной виртуализации, чтобы ускорить этот процесс. Таким образом, KVM требует поддержки VT от базовых архитектур (которые обеспечивает процессор x86).
Я эмулировал архитектуру powerpc с qemu поверх архитектуры x86. У меня вопрос, можно ли запустить KVM на этой архитектуре powerpc. Мы можем реализовать вложенную виртуализацию, используя программную виртуализацию вместо аппаратной виртуализации (qemu вместо kvm), но это верно для обратного случая (kvm over qemu). Любое объяснение в ответах было бы весьма полезно.
Спасибо
KVM позволяет виртуализации использовать собственный набор аппаратных инструкций для большей части эмуляции. Это обеспечивает гораздо более быструю обработку, чем эмулируемый процессор, такой как QEMU.
Поскольку KVM использует собственный набор аппаратных инструкций, он может эмулировать только тот тип процессора, на котором он работает. Для этого требуется поддержка в собственном наборе команд ЦП. Использование аппаратного набора команд дает лучшую производительность, чем обеспечивает QEMU. Поскольку вы не запускаете PowerPC, вы не можете использовать KVM для его эмуляции.
Преимущество QEMU в том, что можно эмулировать процессоры, недоступные в системе, в которой работает QEMU. Это то, что вы делаете, эмулируя процессор PowerPC на X86. QEMU также не требует поддержки виртуализации. Недостатком является то, что ЦП эмулируется программно и работает медленнее, чем мог бы.
QEMU и KVM разделяют библиотеки поддержки. Основное отличие - используемая ими платформа виртуализации.
KVM использует инструкции аппаратной виртуализации, найденные в последних чипах x86. Qemu при эмуляции процессора x86 позволяет пользователю выбрать некоторые из параметров эмулируемого чипа. Итак, вопрос сводится к следующему: «включает ли эмулируемая qemu x86 инструкции по виртуализации?».
В группах KVM есть некоторая (все еще экспериментальная) работа по эмуляции инструкций виртуализации, чтобы вы могли запускать KVM поверх KVM. Я не знаю, перенесена ли эта работа на qemu или есть параллельная работа. В любом случае, это, скорее всего, тоже будет экспериментальным.
Чтобы точно узнать, какие возможности процессора может эмулировать ваша конкретная сборка qemu, просто запустите
qemu -cpu ?
Если вы используете симулятор, такой как Qemu, для имитации цели PowerPC на хосте x86, хост KVM бессмысленен.
Если вопрос заключается в том, можно ли запустить PowerPC-KVM поверх смоделированного PowerPC, это вопрос того, какая часть набора команд PowerPC и режимов работы моделируются. И есть ли порт KVM для целевого Linux, который использует поддержку аппаратной виртуализации.
Все серверы IBM Power Series имеют полную поддержку виртуализации, как и новейшие SoC Freescale, такие как QorIQ P4080 / P4040 / P3041 / P20401 / P5020. Таким образом, если у вас есть симулятор для одного из них (а у Qemu его нет), работающий под Linux, у вас может быть KVM поверх Linux поверх симулятора PowerPC поверх хоста x86.
Единственная известная мне система, поддерживающая эмуляцию на этом уровне, - это Wind River Simics.
Я не использовал это, но посмотрите здесь: