Voilà,
Alors je vais surtout parler UNIX et je le précise parce que GNU/Linux a l'avantage d'avoir KVM (Kernel-based Virtual Machine) qui fonctionne sur le noyau Linux uniquement puisque designer pour le noyau Linux.
Donc dans le cadre d'un OS non-Linux, Qemu se révèle que très peu utile finalement si utilisé comme tel, sans hyperviseur*. Les OS virtualisés sont lent à en crever, rien n'est utilisable.
Cependant, On peut utiliser Qemu avec Xen (ça, on l'a, on a DOM0 pour chaque UNIX/BSD) ET Xen peut parfaitement être utilisé sans Qemu pour quelqu'OS que ce soit, le HVM pour OSes non modifiés comme Windows et les OSes offrant les DOMU. On peut créer nos disque dur de plusieurs manières comme physiquement, logiquement (partition) et logiquement ("fichier" via dd). On peut utiliser SDL pour afficher les systèmes démarrés ou VNC etc... BREF, Ou est l'utilité de Qemu quand tu as Xen ?
Alors à vérifier ce que je te dis, mais si je dis pas de bêtises, Qemu fait de "l'émulation", en soit, il permet de virtualiser des systèmes d’exploitation tournant sur des plates-formes fondamentalement différentes de ton hôte (hyperviseur) tandis que Xen fait de la paravirtualisation. La paravirtualisation est très véloce comme type de virtualisation, ceci dit, l'OS virtualisé est entre guillemets conscients qu'il est virtualisé. La paravirtualisation présente une limite, en l'occurrence si tu virtualises un système tournant sur une plate-forme trop différente comme du ARM, PowerPC etc...Jje ne suis pas sûr que tu puisses le para-virtualiser car en effet il faut que la plate-forme de ton hyperviseur soit identique à celle de ton système virtualisé pour que cela puisse fonctionner.
Il vaut du coup l'émuler et Qemu fait ça. Qemu permet de générer du matériel virtuel différent de celui de ton hôte et donc derrière de virtualiser un système d'exploitation tournant sur une plate-forme différente, ceci dit, tu paies cette interopérabilité par un coup processeur.
(a vérifier)
Ouais mais dans les cas là, c'est pas utile ! KVM peut faire de la virtualisation vers d'autres plate-formes ? Autrement ça sert à rien. Si Qemu peut émuler d'autres architectures mais à trois à l'heure...
Alors KVM fait de la virtualisation complète, je crois que la difficulté rencontrée est la même, en l'occurence, le matériel la structure de l'hôte doit être identique au système virtualisé.
La seule différence profonde entre la paravirtualisation et la virtu. complète, c'est que en paravirtu, tu as un meilleur rendement car le système invité (virtualisé) sait qu'il est virtualisé et du coup les appels systèmes sont communiqué de façon plus optimisé. En virtu complète, tu virtualises de façon étanche (comme en émulation) mais tu ne peux que virtualiser des systèmes compatibles à ta plate-forme hôte (comme en paravirtualisation).
KVM utilise aussi Qemu si je ne m'abuse pour toute la partie émulation. En effet l'émulation est quelques chose de très lent dans ce genre de domaine.. ça n'est vraiment pas orienté entreprise. En entreprise tu utilises surtout de la paravirtu. Xen est d'ailleurs un paravirtualiseur (mot que je pense inventer lol).
D'ailleurs lorsque tu prends pour exemple l'hyperviseur proxmox, tu constates qu'il utilise KVM de façon sous jacente et qu'il utilise Qemu lorsque KVM ne fait pas l'affaire.
Le 24 avril 2017 à 19:39:36 [deban]_Dakien a écrit :
Ouais mais dans les cas là, c'est pas utile ! KVM peut faire de la virtualisation vers d'autres plate-formes ? Autrement ça sert à rien. Si Qemu peut émuler d'autres architectures mais à trois à l'heure...
Qemu est tres utile pour developper pour des systemes embarques, c'est bien pratique pour tester une image ou un logiciel sur l'architecture cible sans avoir a tout flasher sur une proto-board.
Donc si j'ai bien compris, Qemu, seul, fait de l'émulation et ce, même si tu utilises du amd64 invité sur du amd64 hôte ce qui explique sa lenteur. Cependant, étant de l'émulation donc agissant au niveau architectural, il peut émuler plusieurs architectures comme de l'ARM sur un i386 par exemple.
Donc, à partir du moment où l'on veut utiliser KVM avec Qemu, il ne fait plus d'émulation mais de la virtualisation ? Donc, il ne peut plus émuler d'autres architectures ?
Pour Xen j'ai compris, c'était très clair.
Petite question au passage, on peut utiliser Qemu avec Xen aussi simplement que Qemu avec KVM ?
Parce qu'on dit qu'on utilise Qemu avec KVM mais on dit aussi qu'on utilise Xen avec Qemu (et non l'inverse). Sur Qemu, un simple --enable-kvm fait l'affaire si bien sûr tu tournes sous GNU/Linux mais il n'y a aucun équivalent Xen qui te permettrait d'utiliser tout Qemu soutenu par Xen, c'est forcément le contraire, non ?
Je sais comment utiliser Xen du fait que je l'utilise déjà mais je ne l'utilise pas avec Qemu puisque je n'en vois aucune utilité finalement. J'utilisais Qemu sur GNU/Linux parce qu'il y avait KVM qui permettait de faire tourner ses OSes rapidement.
Alors de ce que j'ai compris personnellement, Oui, pour moi Qemu générera une architecture amd64 même si celle de l'hôte était identique. Ensuite oui il peut généré de l'ARM ou du i386. Un peu à la façon d'un émulateur android (Nox, Bluestack etc qui émule finalement des architectures surement différentes). Je pense que qemu n'est employé que lorsque KVM ne peut pas virtualiser le système invité voulu. En l'occurrence si tu l'utilises avec KVM et que KVM peut virtualiser le système invité sans son aide.
Après a vérifier tout ce que je te dit, mais je pense que ça marche comme ça, après j'avoue pour ta petite question plus bas, je ne sais pas plus que ça comment ça s'articule désolé. Si tu as des infos supplémentaire, je suis preneur :p