В чем разница и взаимосвязь между kvm, virt-менеджером, qemu и libvirt?

Я исследовал эту тему, и вот мои выводы (но у меня все еще есть вопросы, и, пожалуйста, поправьте меня, если я допустил какую-либо ошибку в своем заключении):

VMware:

VMware разработала свой гипервизор виртуальной машины SW в 1999 году, но он был собственностью.

ЦЕМУ:

4 года спустя после VMware французский разработчик Фабрис Беллард разработал QEMU (Быстрый эмулятор) Hyporvisor в 2003 году и сделал его бесплатным и открытым исходным кодом. Затем QEMU стал "полным виртуализация" гипервизор типа 2 после многих лет развития сообщества.

  • QEMU способен эмулировать различные HW, включая ЦП и устройства ввода-вывода.
  • QEMU способен интерпретировать инструкции, отправленные в vCPU виртуальной машины, в реальные инструкции и отправлять их на физический процессор.
  • Некоторые эмулируемые QEMU устройства широко используются виртуализированными SWS, такими как VirtualBox.
  • QEMU имеет свой собственный графический интерфейс и интерфейс командной строки.

QEMU может работать независимо без каких-либо других Виртуальная машина SW.

Виртуализация HW:

Как Intel, так и AMD внедрили свою технологию виртуализации HW (VT-x и AMD-V) в 2006 году.

КВМ:

В 2006 году небольшая компания (которая была приобретена Red Hat 2 года спустя в 2008 году) разработала загружаемый модуль ядра для Linux под названием "KVM", который способен создавать виртуальные машины с использованием технологий виртуализации HW, упомянутых выше. Затем он был официально объединен в ядро Linux в 2007 году.

  • КВМ не эмулирует vCPU, а скорее использует технологии виртуализации HW, предоставляемые физическим процессором.
  • Как ядро Linux, KVM не имеет ни графического интерфейса, ни интерфейса командной строки. Нужно написать, скажем, код на C, чтобы вызвать модуль KVM для создания виртуальной машины, что делает его бесполезным для конечных пользователей.
  • KVM считается гипервизором.

KVM способен создавать виртуальные машины независимо без какой-либо поддержки гипервизоров, таких как QEMU.

Либвирт:

Поскольку на рынке существует множество гипервизоров, libvirt был разработан в конце 2005 года для унификации API и командной строки для создания виртуальных машин и управления ими. С точки зрения конечных пользователей, он предоставляет инструменты командной строки, такие как:

  • вирш
  • вирт-менеджер
  • вирт-установка

Сама Libvirt не создает виртуальную машину и не управляет ею, а скорее сопоставляет команду, выданную пользователем, с одним или несколькими вызовами API для базового гипервизора.

Libvirt является бесплатным и открытым источник.

Вирт-менеджер:

Когда люди используют KVM для создания виртуальных машин, они, вероятно, видят этот экран:

Virtual Machine Manager GUI

Раньше я рассматривал этот SW как графический интерфейс KVM, но после моего расследования я обнаружил, что это еще один SW, называемый "Менеджер виртуальных машин", как показано в названии. Это тоже называется вирт-менеджер. вирт-менеджер поддерживается Red Hat.

Согласно его веб-сайту, virt-manager в первую очередь нацелен на виртуальные машины KVM, но также управляет Xen и LXC. См. Официальный веб-сайт менеджера виртуальных машин.

Virt-менеджер построен поверх libvirt. Т.е. он работает с пользовательскими интерфейсами (как GUI, так и CLI). Для базового управления виртуальной машиной он просто вызывает libvirt, который, наконец, вызывает базовый гипервизор, такой как KVM.

Мои Вопросы:

  1. Есть ли какая-либо ошибка в моем выводе?
  2. Почему графический интерфейс virt-manager показывает "локальный хост (QEMU)" или "QEMU/KVM" в списке виртуальных машин, когда я создаю виртуальный KVM машина?
  3. libvirt утверждает, что почти любой инструмент виртуализации, начинающийся с virt-*, является инструментом libvirt, особенно virt-manager и virt-install. См. Часто задаваемые вопросы по lib-virt. Но virt-менеджер alcal virt-install является частью virt-менеджера. См. Веб-сайт virt-менеджера. Так какой же из них правильный? К чему именно относятся virt-установка и virt-менеджер?
  4. В некоторых статьях говорится о qemu-kvm, но, согласно моему исследованию, это всего лишь два разных гипервизора. Я в состоянии чтобы использовать KVM независимо для создания виртуальных машин, тогда почему я должен использовать qemu-kvm? И что такое qemu-kvm? Это QEMU, который использует некоторые функции KVM, когда это необходимо, или KVM, который должен использовать некоторые функции QEMU, иначе он не сможет создавать виртуальные машины?