Chapitre 15. Virtualisation

Amélioration de la performance du processeur KVM

Partage des tranches horaires des CPU virtuels
Le partage des tranches horaires des CPU virtuels est une fonctionnalité améliorant la performance au niveau du planificateur Linux, où un CPU virtuel en rotation peut offrir le reste de sa tranche horaire à un autre CPU virtuel avec de céder le CPU. Cette fonctionnalité adresse un problème de préemption du propriétaire d'un verrou inhérent qui existe dans les systèmes SMP et qui peut affecter la performance des CPU virtuels. Cette fonctionnalité est prise en charge sur les processeurs Intel et AMD, elle est appelée PLE (« Pause Loop Exiting ») sur les processeurs Intel et « Pause Filter » sur les processeurs AMD.
Amélioration de la performance réseau de KVM

La performance réseau de KVM est un besoin critique pour la virtualisation et pour les solutions et produits basés sur le cloud. Red Hat Enterprise Linux 6.2 fournit un certain nombre d'optimisations de la performance réseau pour améliorer la performance du pilote réseau paravirtualisé KVM dans différentes installations.

Performance KVM small message améliorée
Red Hat Enterprise Linux 6.2 a amélioré la performance de KVM small message pour satisfaire toute une gamme de charges de travail de réseau qui généraient des messages courts.
Besoin de vitesse de câble dans les pilotes réseau KVM
Les produits de virtualisation et du cloud qui exécutent des charges de travail réseau doivent exécuter des vitesses de câble. Jusqu'à Red Hat Enterprise Linux 6.1, l'unique manière d'atteindre une vitesse de câble sur un NIC Ethernet de 10 Go avec une basse utilisation du CPU était d'utiliser un passthrough de périphérique PCI, qui limite les autres fonctionnalités comme l'overcommit de mémoire et la migration d'invité.
Les capacités macvtap/vhost zero-copy permettent à l'utilisateur d'utiliser ces fonctionnalités lorsqu'une haute performance est utilisée. Cette fonctionnalité améliore la performance pour tout invité Red Hat Enterprise Linux 6.x dans le cas d'utilisation VEPA. Cette fonctionnalité est présentée comme un aperçu technologique.
Optimisation checksum UDP pour les pilotes réseau KVM
L'optimisation checksum UDP élimine le besoins de l'invité de valider le checksum s'il a été validé par les NIC hôtes. Cette fonctionnalité accélère UDP sur de l'externe vers l'invité sur des cartes Ethernet 10 Go avec les hôtes et invités Red Hat Enterprise Linux6.2. L'optimisation checksum UDP est implémentée sur le pilote virtio-net.
Performance des chemins des E/S améliorée lorsque l'hôte est plus lent que l'invité
Le pilote réseau KVM de Red Hat Enterprise Linux 6.2 possède une performance de chemins d'E/S améliorée, avec des sorties et interruptions de machine virtuelle réduites, ce qui résulte en une livraison de données plus rapide. Cette amélioration vous permet aussi d'exécuter un invité plus rapide sur un hôte plus lent sans affecter la performance. Cette amélioration est accomplie grâce à une structure d'anneau virtio améliorée et à la prise en charge de l'index des événements dans virtio et vhost-net.
Améliorations de la gestion des système KVM et de l'utilisabilité

Suivi du système via SNMP
Cette fonctionnalité fournit la prise en charge KVM d'une technologie stable qui est déjà utilisée dans les centres de données avec des systèmes bare metal. SNMP est le standard pour les suivis et est extrêmement bien compris et efficace d'un point de vue informatique. Le suivi de système via SNMP dans Red Hat Enterprise Linux 6.2 permet aux hôtes KVM d'envoyer des traps SNMP sur des événements pour que les événements de l'hyperviseur puissent être communiqués à l'utilisateur via le protocole SNMP standard. Cette fonctionnalité est fournie avec l'ajout d'un nouveau paquetage :libvirt-snmp. Cette fonctionnalité est un aperçu technologique.
Capacité de débogage d'invités améliorée
Les utilisateurs qui virtualisent leurs centres de données doivent avoir un moyen d'effectuer des débogages lorsque le système d'exploitation hôte est suspendu et qu'un vidage d'incident doit être initié. Deux méthodes sont très utilisées avec les systèmes physiques :
  • Déclencher une NMI (interruption non-masquable) dans l'invité
  • Envoyer des séquences SysRq à l'invité
Tandis que ces capacités sont directement fournies avec la console KVM, un certain nombre d'utilisateurs utilisent KVM avec les API libvirt et virsh, où ces deux fonctionnalités étaient manquantes. Red Hat Enterprise Linux 6.2 améliore les capacités de débogage d'invité à travers la pile KVM, permettant ainsi à un utilisateur de déclencher des NMI dans des invités et d'envoyer des séquences clé SysRq aux invités.
Amélioration de l'accès au démarrage de la machine virtuelle
Les utilisateurs qui virtualisent leurs centres de données doivent suivre le processus de démarrage de l'invité et afficher le message de démarrage noyau et BIOS entier dès le début. L'absence de cette fonctionnalité empêche les utilisateurs d'utiliser la console virsh de manière interactive avant le démarrage. Un nouveau paquetage, sgabios, a étét ajouté à Red Hat Enterprise Linux 6.2 pour fournir cette capacité ainsi que certaines additions à qemu-kvm.
Live Snapshot
Red Hat Enterprise Linux 6.2 présente la fonctionnalité Live Snapshot comme aperçu technologique. Cette fonctionnalité fournit une copie de sauvegarde automatique des images virtuelles sur le disque dur et un instantané de manière transparente des disques virtuels par disque, à l'aide des images qcow2 externes. La création d'instantanés live multi-disques aide à conserver l'intégrité des données en pausant qemu avant de prendre autant d'instantanés qu'il y a de disques. Ainsi, un instantané multi-disques possédera tous les disques contenant des données au même moment.
Il est important de savoir qu'il existe une limitation à la consistance des systèmes de fichiers. Cependant, la ré-utilisation d'images instantanées est consistante avec les incidents. Un utilisateur devra exécuter une vérification de systèmes de fichiers (fsck) ou relire les entrées du journal, ce qui est similaire à effectuer un démarrage après avoir débranché le cordon d'alimentation.
Améliorations des réglages multi-processeurs (NUMA)
Red Hat Enterprise Linux 6.2 apporte des améliorations aux réglages de la pile API libvirt, résultant en une performance originale améliorée lors de prises de mesures SPECvirt. Red Hat Enterprise Linux 6.2 est maintenant en mesure d'accrocher la mémoire associée à un nœud NUMA lorsqu'une machine virtuelle est créée.
Améliorations USB
L'émulation USB 2.0 a été implémentée pour qemu-kvm. Celle-ci est disponible directement pour QEMU uniquement. La prise en charge de libvirt est planifiée pour la prochaine version.
La prise en charge de Remote Wakeup (réveil distant) a été ajoutée au contrôleur hôte USB. Avec la coopération du système d'exploitation invité, elle permet d'arrêter le mode de sondage 1000Hz et met le périphérique en mode veille. Ceci améliore dramatiquement la consommation d’électricité et la consommation CPU des machines virtuelles avec une émulation de souris (ou tablette) USB — qui est un périphérique commun que toute machine virtuelle possède.
Améliorations de Xen

Ballooning de mémoire
Le ballooning de mémoire est maintenant pris en charge par les invités paravirtualisés Xen Red Hat Enterprise Linux 6.
Limite de mémoire de domaine
La limite de mémoire pour les invités PV domU x86_64 a été augmentée jusqu'à 128 Go : CONFIG_XEN_MAX_DOMAIN_MEMORY=128.
Comptabilité de temps
L'implémentation de xen_sched_clock (qui retourne le nombre de nanosecondes non-volées) a été remplacée par l'implémentation de xen_clocksource_read.
Documentation sur la virtualisation

Le guide de virtualisation Red Hat Enterprise Linux a été divisé en plusieurs guides spécifiques :

spice-protocol

Le paquetage spice-protocol a été mis à jour à la version 0.8.1, fournissant ainsi les nouvelles fonctionnalités suivantes :

  • Prise en charge de changements de volume
  • Prise en charge des interruptions et écritures d'E/S d'invités asynchrones
  • Prise en charge des écritures d'E/S d'invités liés aux suspensions (S3)
  • Prise en charge des interruptions indiquant un bogue d'invité
Conteneurs Linux

Les conteneurs Linux offrent une approche flexible au confinement du temps d'exécution des applications sur systèmes bare metal sans avoir besoin de pleinement virtualiser la charge de travail. Red Hat Enterprise Linux 6.2 fournit des conteneurs de niveau application pour séparer et contrôler les politiques d'utilisation des ressources d'applications via les cgroups et les espaces de noms. Cette version présente une gestion de base du cycle de vie des conteneurs en permettant la création, la modification et la suppression de conteneurs via l'API libvirt et l'interface utilisateur graphique virt-manager. Les conteneurs Linux sont un aperçu technologique.

RPM de l'hyperviseur Red Hat Enterprise Virtualization multi-installable

Afin de permettre des installations côte à côte du paquetage rhev-hypervisor, configurez Yum afin de faire de rhev-hypervisor une paquetage d'installation seule en modifiant le fichier /etc/yum.conf et en ajoutant l'option installonlypkgs :

[main]
...
installonlypkgs=rhev-hypervisor
Cette option doit aussi inclure la liste par défaut des paquetages d'installation seule qui peut être trouvée dans la page man yum.conf (man yum.conf 5), sous l'option de section installonlypkgs.