Я слышал, что оба модуля используются для создания виртуальной среды для Linux, но каковы различия между ними, которые отличают их, не могли бы вы объяснить их кратко.
1 ответ
Xen - это тонкий гипервизор, который берет на себя управление перед загрузкой ОС. Вдобавок к этому работает ваша основная хост-ОС и, возможно, несколько гостевых ОС. Хост и Гость должны использовать ядро, специально созданное для Xen, и они могут общаться, используя оптимизированные методы, соответствующие Xen, и работать на скорости, близкой к собственной.
Qemu - это полноценный эмулятор, означающий, что Гость видит "классическое" виртуальное оборудование (Qemu также может эмулировать архитектуры, отличные от архитектуры хоста), поэтому Гость не должен знать, что он виртуализируется. С другой стороны, он может быть на пару порядков медленнее, чем собственная система.
KVM - это ускоритель, который позволяет Qemu-kvm согласовывать скорости с Xen. Однако он не может работать ни на одном процессоре; ЦП должен быть "виртуальным". Для x86-64 это означает поддержку расширений виртуализации Intel или AMD (посмотрите на содержимое /proc/cpuinfo
и проверьте наличие одного из флагов, svm
для AMD или vmx
для intel)
KVM, вероятно, легче развернуть (не требует прикосновения к хост-системе), если у вас совместимый процессор.
Короче:
- Xen: быстро, работает где угодно, но требует собственного ядра ОС
- Qemu без kvm: работает где угодно, но медленно
- Qemu-kvm: быстро, не требует собственного ядра, но работает только на определенных процессорах