Quelle est la différence et la relation entre kvm, virt-manager, qemu et libvirt ?

J'ai enquêté sur ce sujet et voici mes conlusions (mais j'ai toujours des questions, et veuillez me corriger si j'ai fait une erreur dans ma conlusion):

VMware:

VMware a développé son hyperviseur de machine virtuelle SW en 1999, mais il était propriétaire.

QEMU:

4 ans plus tard après VMware, le développeur français Fabrice Bellard a développé l'Hyporvisor QEMU (Quick Emulator) en 2003 et l'a rendu gratuit et open source. QEMU est alors devenu un "plein hyperviseur de type 2 "virtualization" après des années de développement communautaire.

  • QEMU est capable d'émuler divers HW, y compris les périphériques CPU et d'E/S.
  • QEMU est capable d'interpréter les instructions envoyées à la vCPU de la machine virtuelle en instructions réelles et de les envoyer à la CPU physique.
  • Certains périphériques émulés par QEMU sont largement utilisés par les SWs virtualizatoin tels que VirtualBox.
  • QEMU a sa propre interface graphique et CLI.

QEMU est capable de fonctionner indépendamment sans aucun autre VM SW.

Virtualisation HW:

Intel et AMD ont tous deux déployé leur technologie de virtualisation HW (VT-x et AMD-V) en 2006.

KVM:

En 2006, une petite entreprise (rachetée par Red Hat 2 ans plus tard en 2008) a développé un module kernal chargeable pour Linux appelé "KVM" qui est capable de créer des machines virtuelles en utilisant les technologies de virtualisation HW mentionnées précédemment. Il a ensuite été officiellement fusionné dans le noyau Linux en 2007.

  • KVM n'émule pas vCPU mais utilise plutôt la virtualisation HW technologies fournies par le processeur physique.
  • En tant que noyau Linux, KVM n'a ni interface graphique ni interface de ligne de commande. Il faut écrire, disons du code C pour appeler le module KVM pour créer une machine virtuelle, ce qui le rend inutile pour les utilisateurs finaux.
  • KVM est considéré comme un hyperviseur.

KVM est capable de créer des machines virtuelles indépendamment sans prise en charge de leurs hyperviseurs tels que QEMU.

Le Chat:

Car il existe de nombreux hyperviseurs sur le marché, libvirt a été développé fin 2005 pour unifier l'API et la CLI de création et de gestion des machines virtuelles. Du point de vue des utilisateurs finaux, il fournit des outils CLI tels que :

  • virsh
  • gestionnaire de virt
  • virt - installer

Libvirt lui-même ne crée pas ou ne gère pas de machine virtuelle, mais mappe plutôt la commande émise par l'utilisateur à un ou une série d'appels d'API vers l'Hyperviseur sous-jacent.

Libvirt est gratuit et ouvert source.

Virt - gestionnaire:

Lorsque les gens utilisent KVM pour créer des machines virtuelles, ils voient probablement cet écran:

Virtual Machine Manager GUI

J'avais l'habitude de considérer ce SW comme l'interface graphique de KVM, mais après mon enquête, j'ai constaté qu'il s'agissait d'un autre SW appelé "Gestionnaire de machines virtuelles", comme le montre le titre. Cela s'appelle aussi virt-manager. virt-manager est soutenu par Red Hat.

Selon son site Web, virt-manager cible principalement les machines virtuelles KVM, mais gère également Xen et LXC. Voir Site Web officiel de Virtual Machine Manager .

Virt-manager est construit sur libvirt. C'est-à-dire qu'il utilise des interfaces utilisateur (GUI et CLI). Pour la gestion de la machine virtuelle sous-jacente, il appelle simplement libvirt, qui appelle finalement l'hyperviseur sous-jacent, tel que KVM.

Mes Questions:

  1. Y a-t-il une erreur dans ma conclusion?
  2. Pourquoi l'interface graphique de virt-manager affiche "localhost(QEMU)" ou "QEMU/KVM" dans sa liste de machines virtuelles lorsque je crée des machines virtuelles KVM machine ?
  3. libvirt affirme que presque tous les outils de virtualisation commençant par virt-* sont des outils libvirt, en particulier virt-manager et virt-install. Voir FAQ lib-virt . Mais virt-manager alcal virt-install fait partie de virt-manager. Voir site web de virt-manager . Alors lequel est correct? À quoi appartiennent exactement virt-install et virt-manager ?
  4. Certains articles parlent de qemu-kvm, mais selon mon enquête, ce ne sont que deux hyperviseurs différents. Je suis capable pour utiliser KVM indépendamment pour créer des machines virtuelles, alors pourquoi devrais-je utiliser qemu-kvm? Et qu'est-ce que qemu-kvm? C'est un QEMU qui utilise certaines fonctionnalités KVM lorsque cela est nécessaire ou un KVM qui doit utiliser certaines fonctionnalités QEMU sinon il ne pourra pas créer de machines virtuelles?
demandé sur