Какова роль QEMU в виртуализации серверов?

Я знаю, что KVM обеспечивает функцию аппаратного ускорения за счет использования расширения виртуализации в микросхемах ЦП, таких как Intel VT. Так что VCPU можно напрямую сопоставить с физическими процессорами для достижения почти собственной скорости.

Поскольку ядро ​​Linux включает драйверы для жесткого диска, сети и памяти. Зачем нам нужен QEMU для виртуализации серверов? (Предположим, что нам не нужно эмулировать такие устройства, как графическая карта).

В дополнение к этому, с поддержкой паравиртуализации, предоставляемой драйверами virtio. Значительно улучшены производительность дискового ввода-вывода и сети. Почему мы не можем просто использовать KVM и virtio. Какова роль QEMU в этом случае?

0
задан 20 April 2020 в 13:13
1 ответ

QEMU - это виртуальное оборудование. ЦП, наборы микросхем, шины ввода-вывода, контроллеры прерываний, базовая периферия и другие аппаратные API-интерфейсы, которые заставляют платформу работать. Эмуляция достаточно хороша, чтобы можно было запустить десяток платформ на чужом оборудовании. Медленно, из-за накладных расходов на перезапись инструкций ЦП, но возможно. Медленный по сравнению с родным, то есть QEMU является «быстрым эмулятором».

Хост-ядро Linux - это что-то вроде виртуальной прошивки и драйверов. Низкий уровень подталкивания к реальному оборудованию, чтобы заставить его работать. Linux, конечно, может запускать программы пользовательского пространства самостоятельно, в этом случае эти программы представляют собой виртуальные машины, имитирующие оборудование.

KVM добавляет ускоренные драйверы, использующие аппаратную виртуализацию. Удаление эмуляции и других накладных расходов делает его быстрее. Эмуляция любой аппаратной платформы больше невозможна. Но на практике более эффективно купить ARM, POWER или x86 и каждый запускать гостевую систему своей собственной архитектуры.

2
ответ дан 20 April 2020 в 12:37

Теги

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