Dans cette première partie de la série sur KVM, nous allons procéder à l’installation de KVM (/Qemu) et mettre en place un début de réseau avec Openvswitch.
Suivez le guide !
I – KVM
A – Installation
On commence par les bases :
# apt install qemu-kvm libvirt-clients libvirt-daemon-system --no-install-recommends
Dans le cadre d’un serveur headless, le –-no-install-recommends est, justement, recommandé …
A la différence de Xen, KVM ne nécessite pas de booter sur un noyau particulier, donc rien d’autre à faire.
Pour voir si ça tourne :
# service libvirtd status
A y est, c’est prêt… 🙂
B – Management de KVM
Pour le management des VMs, on trouve deux solutions :
- En mode graphique, avec virt-manager. Je ne traite pas ceci dans mes articles car d’une, c’est déjà fort bien documenté, de deux, je suis en headless, de trois, si vous savez le faire en ligne de de commande, vous saurez le faire dans une GUI 😉
- En mode ligne de commande donc, avec virsh.
Virsh, c’est un peu l’équivalent de la commande xl de Xen et ça se lance ainsi :
# virsh
On arrive alors dans la console virsh.
On peut taper par exemple :
virsh# help
Et pour quitter :
virsh# exit
Et on peut aussi passer le tout en une ligne :
# virsh node-info
Vous affiche les infos de l’host.
# virsh list
Cette commande vous affiche les VMs qui tournent.
Pour voir à la fois celles qui tournent et celles à l’arrêt, ce sera :
# virsh list --all
On reviendra de toute façon sur virsh en temps et en heure. Pour les impatients : https://linux.die.net/man/1/virsh
II – Réseau
A – Openvswitch
Pour le réseau, comme à mon habitude, j’utilise Openvswitch car c’est le bien.
# apt install openvswitch-switch
Et on va ajouter le premier bridge
# ovs-vsctl add-br br0
Nous allons modifier le fichier interfaces /etc/network/interfaces de l’hyperviseur :
source /etc/network/interfaces.d/* auto lo iface lo inet loopback #allow-hotplug eno1 #iface eno1 inet dhcp auto br0 allow-ovs br0 allow-br0 eno1 iface br0 inet static address AAA.BBB.CCC.DDD netmask 255.255.255.0 gateway IP.GATEWAY ovs_type OVSBridge ovs_ports eno1 iface eno1 inet manual ovs_bridge br0 ovs_type OVSPort
ceci afin de le brancher directement sur le br0, etc…
Si votre port est nommé autrement (avec le nouveau système de Debian), vous adaptez, bien évidement.
Un p’tit reboot (on pourrait faire sans, mais ainsi, je valide que mon fichier est sans erreurs)
# reboot
Et voila, l’hyperviseur est connecté sur le bridge br0 pour sortir, et ce bridge permettra à d’autres machines de sortir directement.
B – KVM
On va confier la gestion du réseau des VMs au système de pools de KVM. C’est optionnel, mais pratique.
Pour voir ce qu’il y a en place :
# virsh net-list --all
Et ce truc par défaut, on le supprime :
# virsh net-undefine default
On va maintenant lui dire de prendre en compte notre tout nouveau switch br0.
Cela se fait en le définissant dans un fichier xml, nommé, par exemple, front.xml :
<network> <name>ovs-front</name> <forward mode='bridge'/> <bridge name='br0'/> <virtualport type='openvswitch'/> </network>
Il faut ensuite l’insérer et l’activer :
# virsh net-define front.xml # virsh net-start ovs-front # virsh net-autostart ovs-front
Pour voir si tout est ok :
# virsh net-list
Voila, c’est prêt !
III – Conclusion
KVM/Qemu est en place, le réseaux est prêt. Il ne reste plus qu’a créer nos VMS et vous allez voir que par rapport à Xen où je n’expliquais qu’une seule façon de faire (je reviendrais d’ailleurs dessus), ici, on va balayer plusieurs méthodes et comprendre ainsi un peu mieux les arcanes du boot de linux.
Et pour commencer, on va se faire une petite VM en partant d’une ISO de Debian, la méthode la plus simple
Excellent
Avec un peu de retard, Merci Thierry !
Et pour info, je reprends un peu la rédaction des articles…, ça devrait avancer !