.. meta:: :description: Formation QEMU / KVM / Libvirt :keywords: Linux, QEMU, KVM, Libvirt, VIRTIO, VFIO Virtualisation avec QEMU/KVM **************************** .. admonition:: Résumé La virtualisation de machines à fait ses preuves par son apport sur la sécurité, la simplification de gestion et de déploiement. QEMU/KVM est devenu le système de virtualisation privilégié de nombreuses entreprises, même IBM l'enreprise la plus inovatrice en matière de virtualisation l'a adopté. .. image:: fig_dvm_01.png :width: 300pt :align: center 1. Prise en main de la plateforme * Installation, prise en main des outils * Construction d'un guest simple pour QEMU avec `rfs `_ * Les commandes de base de QEMU 2. Présentation d'une plateforme de virtualisation * Théorie de la virtualisation [#popek]_ * Modes de virtualisation * Différents types de virtualisation 3. QEMU, KVM et Libvirt * QEMU est l'enveloppe mémoire du guest * KVM fourni l'accès aux accélérations matérielles * Libvirt facilite l'administration de la machine virtuelle * Comment construire une machine virtuelle QEMU/KVM * Comment démarrer une machine virtuelle QEMU/KVM * Gestion de base par QEMU d'une machine virtuelle QEMU/KVM 4. Accès aux périphériques * Définition *front-end* et *back-end* * L'émulation de périphériques * La virtualisation de périphériques avec VIRTIO [#virtio]_ * Dédier un périphérique physique au guest avec VFIO [#vfio]_ * L'interface avec le moniteur 5. Différents périphériques * Les formats de disques et qemu-img * Les disques avec *VIRTIO block* * Accéder au réseau avec *VIRTIO net* * La console et *VIRTIO serial* * L'accès aux fichiers du host avec *VIRTIO 9P* et *VIRTIOFS* * Le hotplug de périphériques * Interface graphique 6. CPUs et mémoire * Gérer les vCPUs * Topologie et *NUMA* * La mémoire, définir ou ajouter de la mémoire * La mémoire dynamique avec le *ballooning* 7. Gestion des machines virtuelles * Étendre le stockage d'une machine virtuelle * Clonage et déploiement de VM * Créer et gérer les snapshot * Dépanner une VM et debugger un guest * Gérer un guest avec les *CGROUPs* * Suivre les performances et les événements QEMU/KVM avec perf 8. Libvirt et le XML * L'interface XML de Libvirt * Les principaux répertoire de configuration de Libvirt * créer un guest avec virt-install ou virt-manager * Le cycle de fonctionnement d'un guest avec libvirt * Le hotplug avec Libvirt * Utiliser les snapshots avec libvirt * L'interface réseau avec Libvirt 9. Migration de machines virtuelles * Sauvegarde d'état de machine virtuelle * Différents types de migration * Gérer une migration du type *post migration* 10. Haute disponibilité et virtualisation du stockage * Construire un stockage redondant * Net failover, bascule vers le serveur de secours, *pacemaker* * Clusters de virtualisation du stockage, *ceph* * Accéder à un stockage redondant * *iSCSI*, le multipathing 11. Interface utilisateur et scripting * *HMP* l'interface humaine * *QMP* l'interface administrative avec *JASON* * Suivre les événements d'une machine virtuelle 12. Déploiement avec *Ansible* * Présentation d'ansible, *YAML* * Exemple de déploiement avec *Ansible* .. rubric:: Notes .. [#popek] Popek et Goldberg ont énoncé les exigeance pour la virtualisation des architectures de troisième génération: `Vidéo: "requirement for virtualizable third generation architecture" `_ .. [#virtio] VIRTual I/O `OASIS VIRTIO Community `_ .. [#vfio] Virtual Function I/O `VFIO dans la documentation Linux `_