KVM (Kernel-Based Virtual Machine) est un logiciel de virtualisation qui permet d'exécuter plusieurs machines virtuelles (invités) à l'aide d'extensions de virtualisation matérielle. Il prend en charge une grande variété de systèmes d'exploitation invités tels que Linux, Windows, Solaris et bien plus encore.
Les machines virtuelles peuvent être créées ou gérées à l'aide d'outils de ligne de commande ( virsh, virt-install et guestfish) ou d'outils graphiques disponibles (console Web Cockpit).
Ici, nous allons voir comment installer KVM sur CentOS 8 / RHEL 8 et apprendre à créer des machines virtuelles.
Prérequis
Vérifier l'assistance VT
Comme indiqué précédemment, vous ne pouvez exécuter des machines virtuelles que si le processeur prend en charge la virtualisation matérielle, soit Intel VT ou AMD-V.
Pour savoir si votre CPU prend en charge les fonctionnalités VT, exécutez la commande suivante.
egrep '(vmx|svm)' /proc/cpuinfo | wc -l
Si la commande ci-dessus renvoie autre que zéro, votre matériel a activé VT, sinon ce n'est pas le cas.
Pont réseau
Créez un pont réseau sur votre système pour permettre aux machines virtuelles de communiquer avec les réseaux externes.
Ici, nous allons créer un pont virtuel appelé br0. Pour ce faire, commencez par créer un fichier de configuration de pont réseau.
vi /etc/sysconfig/network-scripts/ifcfg-br0
Mettez à jour le fichier de configuration avec l'adresse IP et d'autres informations sur le réseau. Ce pont sera ma connexion réseau principale.
DEVICE="br0"
BOOTPROTO="static"
IPADDR="192.168.0.10"
NETMASK="255.255.255.0"
GATEWAY="192.168.0.1"
DNS1="192.168.0.1"
ONBOOT="yes"
TYPE="Bridge"
Modifiez le fichier de configuration de votre interface réseau pour utiliser le pont br0.
vi /etc/sysconfig/network-scripts/ifcfg-ens33
Mettez à jour la configuration avec les informations ci-dessous.
DEVICE="ens33"
TYPE="Ethernet"
BOOTPROTO="none"
ONBOOT="yes"
BRIDGE="br0"
Rechargez le profil de connexion et redémarrez le NetworkManager.
nmcli connection reload
systemctl restart NetworkManager
Validez la configuration réseau à l'aide de la commande ifconfig.
ifconfig
Sortie :
Installer KVM
Installez le module de virtualisation. Ce module installera tous les packages nécessaires pour que le système prenne en charge la virtualisation.
dnf module install -y virt
Installez les packages virt-install et virt-viewer.
dnf install -y virt-install virt-viewer
virt-install – Outil en ligne de commande pour créer des machines virtuelles.
virt-viewer – Console graphique
Exécutez la commande ci-dessous pour valider si l'hôte est prêt à exécuter des machines virtuelles.
virt-host-validate
Output: QEMU: Checking for hardware virtualization : PASS QEMU: Checking if device /dev/kvm exists : PASS QEMU: Checking if device /dev/kvm is accessible : PASS QEMU: Checking if device /dev/vhost-net exists : PASS QEMU: Checking if device /dev/net/tun exists : PASS QEMU: Checking for cgroup 'cpu' controller support : PASS QEMU: Checking for cgroup 'cpuacct' controller support : PASS QEMU: Checking for cgroup 'cpuset' controller support : PASS QEMU: Checking for cgroup 'memory' controller support : PASS QEMU: Checking for cgroup 'devices' controller support : PASS QEMU: Checking for cgroup 'blkio' controller support : PASS QEMU: Checking for device assignment IOMMU support : WARN (No ACPI IVRS table found, IOMMU either disabled in BIOS or not supported by this hardware platform)Si vous obtenez QEMU :Vérification de la virtualisation matérielle :ÉCHEC (Seuls les processeurs émulés sont disponibles, les performances seront considérablement limitées), votre machine ne peut pas exécuter de machines virtuelles.
Créer et gérer des machines virtuelles
Si la validation de l'hôte est bonne, nous pouvons alors créer des machines virtuelles à l'aide de la ligne de commande ou de l'interface graphique.
Mode ligne de commande
La commande virt-install est utilisée pour créer des machines virtuelles. La commande nécessite quelques arguments obligatoires pour créer une machine virtuelle, tels que le nom de la machine virtuelle, le processeur, la mémoire, le disque, le réseau, l'emplacement du support d'installation, la variante du système d'exploitation, etc.
virt-install --name=itzgeekguest --ram=1024 --vcpus=1 --os-type=linux --os-variant=rhel6.0 --cdrom=/tmp/CentOS-6.10-x86_64-minimal.iso --network bridge=br0 --graphics vnc,port=5901,listen=0.0.0.0 --disk path=/var/lib/libvirt/images/itzgeekguest.qcow2,size=10
Arguments | Objectif |
---|---|
--nom | Nom de la machine virtuelle |
--bélier | Taille de la mémoire en Mo |
--vcpus | Les processeurs virtuels en chiffres |
--type-os | Types de système d'exploitation comme Linux, Windows, etc. |
--os-variante | Variante de système d'exploitation comme RHEL 6, Solaris |
--cdrom | Emplacement de l'image ISO |
--réseau | Mise en réseau avec des options |
--graphiques | Console invité (VNC avec numéro de port) |
--disk-path | Emplacement du disque (qcow2) avec une taille |
Une fois que vous avez exécuté la commande ci-dessus, elle créera une machine virtuelle et démarrera la session de visualisation VNC pour la console graphique.
La commande virt-install ne se fermera pas tant que l'installation du système d'exploitation ne sera pas terminée. Alors, ouvrez un nouveau terminal et continuez.Autoriser les connexions VNC dans le pare-feu.
firewall-cmd --permanent --add-port=5901/tcp
firewall-cmd --reload
Ouvrez une visionneuse VNC et accédez à la console VM.
Quelques commandes importantes pour gérer les machines virtuelles.
Lister toutes les machines virtuelles :
virsh list --all
Démarrer une machine virtuelle :
virsh shutdown <vmname>
Arrêtez correctement une machine virtuelle :
virsh shutdown <vmname>
Redémarrez une machine virtuelle :
virsh reset <vmname>
Forcer l'arrêt d'une machine virtuelle :
virsh destroy <vmname>
Supprimer une machine virtuelle ainsi que ses volumes de stockage :
virsh undefine <vmname> --remove-all-storage
Mode graphique
CentOS 8 / RHEL 8 est livré avec Cockpit, une interface Web pour la gestion des systèmes Linux locaux et distants.
LIRE : Comment installer Cockpit sur CentOS 8 / RHEL 8
Le Cockpit fournit des modules complémentaires pour gérer les machines virtuelles depuis sa console.
dnf install -y cockpit-machines
Après l'installation, redémarrez le service Cockpit.
systemctl restart cockpit.socket
Accédez au Cockpit et rendez-vous sur la page Machines Virtuelles. Vous devriez voir toutes vos machines virtuelles existantes.
Si vous n'avez pas de machines virtuelles, continuez et créez une nouvelle machine virtuelle en cliquant sur Créer une machine virtuelle. Remplissez le formulaire Créer une nouvelle machine virtuelle et cliquez sur Créer.
Dans quelques secondes, vous devriez voir la VM nouvellement créée.
Cliquez sur la VM et accédez à l'onglet Console. Vous verrez l'écran d'installation de CentOS 6.
Vous pouvez effectuer les actions de cycle d'alimentation de la machine virtuelle telles que démarrer, arrêter, redémarrer, mettre en pause la machine virtuelle sélectionnée.
Vous pouvez gérer la machine virtuelle en accédant à l'onglet Disques et réseaux. Vous pouvez y ajouter, modifier et supprimer des périphériques de disque/réseau.
Disques :
Réseaux :
Conclusion
C'est tout. J'espère que vous avez appris à installer KVM sur CentOS 8 / RHEL 8 et à créer des machines virtuelles.