web-dev-qa-db-fra.com

Différence entre Xen PV, Xen KVM et HVM?

Je sais que Xen est généralement meilleur qu'OpenVZ car le fournisseur ne peut pas survendre dans Xen. Cependant, quelle est la différence entre Xen PV, Xen KVM et HVM (Je parcourais ce fournisseur spécifications ? Laquelle est la meilleure pour quelles fins et pourquoi?


Éditer:

Pour un utilisateur final qui hébergera simplement des sites Web, quel est le meilleur? D'efficacité ou d'un autre point de vue, y a-t-il un avantage l'un par rapport à l'autre?

53
JP19

Types de virtualisation pris en charge par Xen

Xen prend en charge l'exécution de deux types d'invités différents. Les invités Xen sont souvent appelés domU (domaines non privilégiés). Les deux types d'invités (PV, HVM) peuvent être utilisés en même temps sur un seul système Xen.

Paravirtualisation Xen (PV)

La paravirtualisation est une technique de virtualisation efficace et légère introduite par Xen, adoptée plus tard également par d'autres solutions de virtualisation. La paravirtualisation ne nécessite pas d'extensions de virtualisation à partir du CPU hôte. Cependant, les invités paravirtualisés nécessitent un noyau spécial qui est porté pour s'exécuter en mode natif sur Xen, afin que les invités connaissent l'hyperviseur et puissent fonctionner efficacement sans émulation ni matériel émulé virtuel. Les noyaux invités Xen PV existent pour les systèmes d'exploitation Linux, NetBSD, FreeBSD, OpenSolaris et Novell Netware.

Les invités PV n'ont aucun type de matériel émulé virtuel, mais la console graphique est toujours possible en utilisant le pvfb invité (framebuffer paravirtuel). La console graphique de l'invité PV peut être visualisée à l'aide du client VNC ou du virt-viewer de Redhat. Il existe un serveur VNC distinct dans dom0 pour le PVFB de chaque invité.

Upstream kernel.org Les noyaux Linux depuis Linux 2.6.24 incluent le support invité Xen PV (domU) basé sur le framework pvops Linux, de sorte que chaque noyau Linux en amont peut être automatiquement utilisé comme noyau invité Xen PV sans aucun correctif ou modification supplémentaire.

Voir la page wiki XenParavirtOps pour plus d'informations sur la prise en charge de Linux pvops Xen.

Virtualisation complète Xen (HVM)

Les invités HVM (Hardware Virtual Machine) entièrement virtualisés nécessitent des extensions de virtualisation de CPU à partir du CPU hôte (Intel VT, AMD-V). Xen utilise une version modifiée de Qemu pour émuler le matériel PC complet, y compris le BIOS, IDE contrôleur de disque, adaptateur graphique VGA, contrôleur USB, adaptateur réseau, etc. pour les invités HVM. Les extensions de virtualisation du processeur sont utilisées pour augmenter les performances Les invités entièrement virtualisés ne nécessitent pas de noyau spécial, par exemple, les systèmes d'exploitation Windows peuvent être utilisés comme invités Xen HVM. Les invités entièrement virtualisés sont généralement plus lents que les invités paravirtualisés, en raison de l'émulation requise.

Pour améliorer les performances, les invités HVM entièrement virtualisés peuvent utiliser des pilotes de périphériques paravirtuels spéciaux pour contourner l'émulation pour les disques et les E/S réseau. Les invités HVM Windows Xen peuvent utiliser les pilotes GPLPV opensource. Voir la page wiki XenLinuxPVonHVMdrivers pour plus d'informations sur les pilotes Xen PV-on-HVM pour les invités HVM Linux.

Cela vient de http://wiki.xenproject.org/wiki/XenOverview

KVM n'est pas du tout Xen, c'est une autre technologie, où KVM est un module de noyau natif Linux et pas un noyau supplémentaire, comme Xen. Ce qui fait KVM une meilleure conception. L'inconvénient ici est que KVM est plus récent que Xen, donc il pourrait manquer certaines des fonctionnalités.

48
dyasny

Xen est un hyperviseur qui fonctionne sur metal (le pc/serveur) puis héberge des machines virtuelles appelées domaines.

UNE Xen PV le domaine est un domaine paravirtualisé, cela signifie que le système d'exploitation (généralement nous parlons ici de linux) a été modifié pour fonctionner sous Xen, et il n'est pas nécessaire d'émuler le matériel. Cela devrait être la façon la plus efficace de procéder, en termes de performances.

UNE Xen HVM le domaine est émulé par le matériel domaine, cela signifie que le système d'exploitation (pourrait être Linux, Windows, peu importe) n'a été modifié d'aucune façon et que le matériel est émulé. C'est assez lent, donc vous installez généralement pilotes PV dans le système d'exploitation invité pour le matériel critique (généralement le disque et le réseau), de sorte que l'invité dans son ensemble s'exécute entièrement virtualisé mais les éléments les plus critiques pour les performances le matériel fonctionnera paravirtualisé. Les systèmes Linux récents ont des pilotes pv pour le disque et le réseau dans le noyau, et il existe également divers pilotes PV pour Windows. Avec tout le développement sur HVM au cours des dernières années, il y a généralement peu de différence de performances entre HVM et PV pour les charges de travail standard.

KVM n'est pas Xen, c'est une autre plateforme de virtualisation construite à l'intérieur du noyau Linux. D'un point de vue invité, il ressemble à Xen HVM: l'invité s'exécute entièrement virtualisé et il existe un pilote spécifique pour exécuter certaines parties paravirtualisées (encore une fois, disque et réseau).

Xen HVM et Linux KVM nécessitent une prise en charge de la virtualisation assistée par matériel (Intel VT-x, AMD AMD-V), tandis que Xen PV ne fait pas mais ne peut pas exécuter les systèmes d'exploitation sans prise en charge PV (vous pouvez exécutez pas Windows sur Xen PV).

Xen HVM et Linux KVM utilisera des parties du logiciel de virtualisation qemu pour émuler le matériel réel des périphériques n'utilisant pas de pilotes PV dans le système invité.

Xen (PV et HVM) peut faire la migration en direct d'un invité en cours d'exécution d'un serveur physique à un autre, je ne sais pas si KVM le peut aussi.

Xen et KVM ne peuvent pas surcharger la mémoire, vous obtenez donc généralement de la "vraie RAM", tandis que d'autres plates-formes comme VMware peuvent permuter une partie du ram invité sur le disque.

Il existe des différences, mais elles s'appliquent généralement à des installations spécifiques et non au serveur privé virtuel générique à vendre à d'autres personnes. Par exemple, les hyperviseurs Xen récents prennent en charge la mémoire transcendante qui pourrait améliorer l'utilisation de la mémoire et les performances de l'invité si l'invité en prend en charge (noyaux Linux> = 3. quelque chose).

Toutes ces technologies vous donneront une grande expérience si elles sont implémentées correctement, et ne feront pas une grande différence de votre point de vue. Bien sûr, il y a mille façons dont les choses peuvent mal tourner et cela n'est pas lié à la solution de virtualisation spécifique (c'est-à-dire que votre invité pourrait être stocké sur des disques lents et que cela nuirait à vos performances).

32
Luke404