Есть ли способ запустить 64-битную виртуальную машину на 64-битном процессоре без аппаратной виртуализации (amd-v, vt-x)?

2865
Paul

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

Я пробовал VirtualBox и VMware Player, но у них обоих есть проблема с процессором не-аппаратной виртуализации. Я подумал, что может помочь другая система виртуализации, например, OpenVZ, XEN или KVM? Как вы думаете?

В Stackoverflow мне посоветовали использовать Qemu. OpenVZ или XEN или KVM не будут работать? Мы просто хотели попробовать одну из этих программ, если одна из них может решить эту проблему.

Спасибо!

5
qemu полностью виртуализирует все, поэтому он может работать даже на совершенно несовместимых и разных архитектурах. Компромисс здесь - производительность. Кажется, я помню, что вы должны иметь возможность запускать 64-битные виртуальные машины на 64-битных системах без проблем, но я могу ошибаться Journeyman Geek 11 лет назад 2
Это может быть проще заменить нарушитель процессора. Michael Hampton 11 лет назад 1

3 ответа на вопрос

2
RedGrittyBrick

Вероятно, нет, или, по крайней мере, нет простого, хорошо поддерживаемого способа.

См. Http://en.wikipedia.org/wiki/X86_virtualization#Software-based_virtualization, где говорится

Первоначальная версия x86-64 (AMD64) не допускала полную виртуализацию только для программного обеспечения из-за отсутствия поддержки сегментации в длинном режиме, что делало невозможной защиту памяти гипервизора, в частности защиту обработчика ловушек который работает в адресном пространстве гостевого ядра. [12] [13]: 11 и 20 Revision D и более поздние 64-битные процессоры AMD (как правило, те, которые производятся в 90 нм или менее) добавили базовую поддержку сегментации в длинных режим, позволяющий запускать 64-битные гостевые системы на 64-битных хостах посредством двоичного преобразования. Intel не добавила поддержку сегментации в свою реализацию x86-64 (Intel 64), что делает невозможной 64-разрядную программную виртуализацию на процессорах Intel,

0
yms

If you can sacrifice performance, you can try with full CPU emulators like QEMU or Bochs. With QEMU, you can use almost any kind of CPU as guest or host. With Bochs the guest can be x86 or x86-64, and the host can be any kind of CPU.

-1
Marc MAURICE

Посмотрите на LXC или OpenVZ.

Он предлагает виртуализацию на основе контейнеров без необходимости использования процессора с инструкциями VT. Эта виртуализация практически не вызывает накладных расходов.

LXC очень похож на OpenVZ, с ВМ, совместимым с двумя технологиями. LXC - более свежий проект.

http://en.wikipedia.org/wiki/Operating_system-level_virtualization

http://en.wikipedia.org/wiki/Comparison_of_platform_virtual_machines

Похожие вопросы