Formation Virtualisation avec KVM
Description de la formation KVM
KVM est une technologie libre de virtualisation. Comme son nom l’indique (Kernel-based Virtual Machine) elle est intégrée dans le noyau Linux depuis sa version 2.6.20.
KVM peut donc s’appuyer sur chaque nouveauté ou correctif du noyau et utiliser efficacement chaque composant système tout en proposant des mécanismes de migration à chaud, de planification, de contrôles des ressources, de priorisation, et de réduction de latence.
Objectifs
Compétences visées – Objectif opérationnel :
L’objectif de cette formation est de vous permettre de comprendre le principe de fonctionnement de KVM, savoir l’installer et l’administrer.
Objectifs pédagogiques :
Concrètement, à l’issue de cette formation KVM, vous serez en mesure de:
- Savoir décrire l’infrastructure globale de KVM (architecture, concepts, fichiers)
- Savoir installer KVM et ses outils de gestion
- Savoir créer un nouvel OS invité (VM)
- Savoir configurer le réseau dans KVM (NAT, libvirt, bridge, etc.)
- Maîtriser le stockage (pool, volume, chiffrement, virtfs)
- Surveiller l’activité (monitoring)
- Effectuer des sauvegardes ou des instantanés (snapshots)
- Savoir migrer vers un autre hôte KVM
- Savoir dépanner ou maintenir un parc de VM avec KVM (virt-rescue, guestfish, virt-resize, etc.)
À qui s’adresse cette formation ?
Public :
Cette formation KVM s’adresse aux administrateurs, chefs de projet et toute personne souhaitant mettre en oeuvre la virtualisation avec KVM.
Prérequis :
Pour suivre ce cours KVM, une bonne connaissance des systèmes d’exploitation est nécessaire.
Contenu du cours KVM
Définition de la virtualisation et de ses différentes déclinaisons
- Full virtualisation
- Paravirtualisation
- Virtualisation matérielle
- Containers
Schema d’ensemble de l’infrastructure proposée par KVM
- Définition
- Matériels émulés “Virtio”
- Ballooning
- KSM
Les composants de la virtualisation
Base
- QEMU
- libvirt
guestfstools
Installation
Installation d’un hyperviseur
Installation d’outils supplémentaires
Fichiers de libvirt
- Configuration – /etc/libvirt
- Fichiers créés – /var/lib/libvirt
- Fichiers temporaires – /var/run/libvirt
- Journaux – /var/log/libvirt
- Configuration utilisateur
Aller plus loin dans la configuration
- Service libvirtd
- Contrôle d’accès avec Policykit
- Nested KVM
Se connecter à un hyperviseur distant avec ssh
Interfaces de gestions
Gestion des machines virtuelles avec virt-manager
Gestion des machines virtuelles avec virsh
- Lister les invités
Cockpit
Ajout d’un nouvel invité
Ajout avec virt-manager
Ajout avec virt-install
- Injection de fichier dans l’initrd d’install (preseed)
- VM avec une MAC assignée à la création
vCPUs
- vCPU hotplug
- vCPU pinning
memory : ballooning, hotplug
- Ballooning
- Hotplug
UEFI
Spice
Réseau
- Définition d’une interface réseau d’un domaine
- Définition d’un réseau avec NAT
- dhcp/dns fourni par la libvirt
- Modification à la volée
- libnss-libvirt, libnss-libvirt-guest
- Configuration réseau bridge
- bridge OVS
Stockage
pool
- Création avec virt-manager
- Création avec virsh
- pool iscsi
volume
- Gérer les volumes avec virsh
- Volume partagé entre VM
- Chiffrement
- Chiffrement QCOW2 (obselete)
- Chiffrement LUKS
virtfs
Monitoring
- virt-manager
- kvm_stat
- virsh
- virt-top
Sauvegardes et snapshots
- sauvegarde
- snapshot
Clonage de machines virtuelles
Migration vers un autre hôte KVM
- Installation d’un nouvel hyperviseur
- Migration à chaud
- Migration à froid
Outils et troubleshooting
guestfs tools
- virt-rescue
- guestfish
- virt-resize