Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ceci est une ancienne révision du document !
Nota :
Contributeurs, les sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli !
Créer des machines virtuelles c'est super intéressant pour expérimenter sans tout casser.
Voici donc une méthode utilisant l'hyperviseur KVM/qemu. J'ai choisi la techno libvirt/KVM, pour son coté «full-virtualization» apportant, en principe, de meilleures performances.
En effet, lorsqu'un CPU emule un CPU virtuel (vCPU) l'hyperviseur doit «traduire » les instructions de l'un vers l'autre. Ce qui implique un impact conséquent en terme de performances. Pour éviter ceci les technologies du type Intel VT-x et AMD-V permettent un transfert plus direct des instructions. Ce qui signifie que les instructions données au vCPU peuvent-être directement exécutés sur une partie du CPU physique.
Je considère donc qemu comme l'hyperviseur des machines virtuelles, KVM comme un agent accélérateur d'instructions et libvirt (et tous ses composants), comme un gestionnaire de VM.
Il faut, avant toute installation vérifier que le CPU de la machine hôte supporte la virtualisation.
egrep -c '(vmx|svm)' /proc/cpuinfo
Doit renvoyer autre chose que «0», pour permettre la virtualisation sur ce processeur. Sinon il faut changer de machine (ou de processeur).
Pour installer le minimum requis de dépendances:
apt install --no-install-recommends qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virtinst dnsmasq
Puis vérifier l'état du système libvirtd (le daemon de libvirt):
systemctl status libvirtd.service
Qui doit renvoyer quelque chose dans le genre de:
● libvirtd.service - Virtualization daemon Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-05-07 13:54:29 CEST; 1 day 1h ago Docs: man:libvirtd(8) https://libvirt.org Main PID: 645 (libvirtd) Tasks: 19 (limit: 32768) Memory: 32.6M CGroup: /system.slice/libvirtd.service ├─645 /usr/sbin/libvirtd ├─782 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --lease └─783 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --lease
À partir de là le démon libvirtd est bien lancé.
Pour pouvoir utiliser des VM via virsh (l'outil en ligne de commande permettant la gestion de libvirt) en user non privilégié (pas root, donc) il va falloir ajouter cet user dans les groupes libvirt et libvirt-qemu.
adduser <nom_d'user> libvirt adduser <nom_d'user> libvirt-qemu
Puis, ajouter le groupe au groupset de l'utilisateur:
newgrp <user> libvirt newgrp <user> libvirt-qemu
Il va maintenant s'agir de lancer le profil réseau de libvirt. Pour des VM créées en user non privilégié, il faudra utiliser sudo, sinon passer root via:
su -l
. Libvirt utilise un profil déja enregistré sous le nom de « default». On va donc le lancer et le passer en auto-start afin d'éviter d'avoir à le faire à chaque utilisation:
sudo virsh net-start default sudo virsh net-autostart default
En cas de besoin (par exemple pour l'éditer), vous pouvez stopper le profil réseau via:
sudo virsh net-autostart default