KVM & libvirtDans un article récent, j’ai décrit en détail l’installation de Rocky Linux 8 sur un serveur dédié Scaleway Dedibox. Le modèle d’entrée de gamme, la Dedibox Start, offre des performances plutôt modestes avec un processeur Intel Atom C2338, 4 Go de RAM et un SSD de 120 Go. Or, il se trouve que ce petit processeur de rien du tout est capable de faire de la virtualisation matérielle, du moins en théorie :

# lscpu | grep Virtual
Virtualization:      VT-x

Je vais donc tenter une petite expérience :

  • Transformer mon serveur dédié en hyperviseur KVM sandbox.microlinux.fr.
  • Connecter mon gestionnaire de machines virtuelles à cet hyperviseur.
  • Installer trois machines virtuelles Rocky Linux 8 sur cet hyperviseur.
  • Chaque machine virtuelle devra être joignable sur sa propre adresse IPv4 publique.
  • Les machines virtuelles seront nommées respectivement sandbox-01.microlinux.fr, sandbox-02.microlinux.fr et sandbox-03.microlinux.fr.

AstuceL’intérêt pratique d’une telle expérience, c’est de disposer de son propre petit cluster de bacs à sable virtualisés sur une machine qui est actuellement facturée aux alentours de dix euros par mois.

Installer l’hyperviseur KVM

Connecter Virtual Machine Manager

Le gestionnaire de machines virtuelles (virt-manager) devra être installé sur votre poste de travail ou votre portable. Pour la connexion, nous utiliserons l’authentification par clé SSH. Ici, je copie ma clé SSH publique (et non pas la clé privée, hein) vers mon hyperviseur pour pouvoir me connecter sans mot de passe :

$ ssh-copy-id -i .ssh/id_rsa.pub root@sandbox.microlinux.fr

Je lance le gestionnaire de machines virtuelles pour configurer la connexion à distance :

  • Fichier > Ajouter une connexion.
  • Hyperviseur : QEMU/KVM.
  • Je coche Se connecter à l’hôte distant via SSH.
  • Nom d’utilisateur : root.
  • Nom de l’hôte : sandbox.microlinux.fr.
  • Je coche Connexion automatique.
  • Je clique sur Connecter.

Virtual Machine Manager - Connexion SSH

Si tout se passe bien, la connexion apparaît comme ceci dans la fenêtre principale du gestionnaire de machines virtuelles :

Virtual Machine Manager - Connexion SSH

Une IP publique pour chaque VM

Avant d’installer nos machines virtuelles, il nous faut des adresses IP publiques pour qu’elles soient joignables depuis l’extérieur. L’interface de gestion de Scaleway offre la possibilité de commander une ou plusieurs adresses IP failover pour notre serveur, et c’est ce que nous allons faire.

AstuceNote pour les chipoteurs : Oui, je sais bien que les adresses IPv4 sont officiellement obsolètes depuis 2014. En attendant, je vais simplement me contenter d’en piocher trois dans le lot de celles qui ont miraculeusement résisté à cette obsolescence numérique.

Commander les adresses IP failover pour les VM :

  • Se connecter à la console Online.
  • Ouvrir le menu Serveur > Liste des serveurs.
  • Sélectionner la machine > Administrer > Failover.
  • Cliquer sur Commander des adresses IP > Adresses IP seules.
  • Choisir les adresses IP dans la liste et cliquer sur Commander.

Commande adresse IPv4 Scaleway

Associer une adresse IP au serveur :

  • Revenir à la page d’administration du serveur > Failover.
  • Glisser-déposer l’adresse IP failover vers le serveur correspondant.
  • Cliquer sur Mise à jour en bas de la page.
  • Attendre cinq minutes.

Adresse IP Failover Scaleway

Associer une adresse MAC virtuelle à l’IP failover :

  • Serveur > Liste des serveurs > Sélectionner la machine > Administrer.
  • Réseau > Adresses secondaires > + d’infos > Ajouter une adresse MAC.
  • Adresse MAC virtuelle > Déplier le menu > Ajouter une adresse MAC virtuelle pour KVM.
  • Noter l’adresse MAC, par exemple 52:54:00:00:E4:AC.

Scaleway IP Failover MAC KVM

Télécharger Rocky Linux

Dans le cas présent, la meilleure solution consiste à télécharger le support d’installation directement sur l’hyperviseur. Le choix du support d’installation réseau permet de gagner un peu de place sur le disque :

# cd /var/lib/libvirt/images/
# wget -c https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.7-x86_64-boot.iso

Démarrer l’installation

  • Lancer le gestionnaire de machines virtuelles.
  • Mettre l’hyperviseur distant en surbrillance : QEMU/KVM: sandbox.microlinux.fr.
  • Fichier > Nouvelle machine virtuelle.
  • Sélectionner Média d’installation local.
  • Cliquer sur Parcourir et actualiser la liste des volumes.
  • Sélectionner Rocky-8.7-x86_64-boot.iso.
  • Allouer 1024 Mo de mémoire et 2 cœurs de CPU à la VM.
  • Créer une image disque de 6 Gio.
  • Nom : sandbox-01.microlinux.fr
  • Cocher Personnaliser la configuration avant l’installation.
  • Sélectionner le réseau : Bridge device > br0.
  • Cliquer sur Terminer.
  • NIC :aa:bb:cc > Adresse MAC > remplacer par l’adresse allouée par Scaleway, par exemple 52:54:00:00:E4:AC.
  • Appliquer les changements et cliquer sur Commencer l’installation.

KVM Rocky Linux 8

Utiliser le raccourci Ctrl+Alt pour détacher le curseur de la console :

KVM Rocky Linux 8

Partitionnement

Une fois qu’on se retrouve dans la fenêtre principale de l’installateur Anaconda, on peut basculer vers une console virtuelle pour effectuer un partitionnement manuel en ligne de commande :

  • Touche d’envoi > Ctrl+Alt+F5.

Éventuellement, configurer la disposition du clavier dans la console :

# loadkeys fr-latin1

Partitionner le disque virtuel :

# fdisk /dev/sda

On utilisera un schéma de partitionnement minimaliste :

  • une partition d’échange /dev/sda1 de 1 Go
  • une partition principale /dev/sda2 de 5 Go

AstuceLe disque virtuel pourra être facilement redimensionné en cas de besoin.

# fdisk -l /dev/sda
Disk /dev/sda: 6 GiB, 6442450944 bytes, 12582912 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xd5c6d70d

Device     Boot   Start      End  Sectors Size Id Type
/dev/sda1          2048  2099199  2097152   1G 82 Linux swap / Solaris
/dev/sda2  *    2099200 12582911 10483712   5G 83 Linux

Retourner dans l’installateur graphique :

  • Touche d’envoi > Ctrl+Alt+F6.
  • Partitionnement > Personnalisé > Rafraîchir > Réanalyser les disques.
  • Mettre /dev/sda1 en surbrillance > cliquer sur Reformater > Système de fichiers : swap > Étiquette : swap > cliquer sur Mise à jour des paramètres.
  • Mettre /dev/sda2 en surbrillance > cliquer sur Reformater > Système de fichiers : ext4 > Point de montage : / > Étiquette : root > cliquer sur Mise à jour des paramètres.

KVM Rocky Linux 8

Réseau & nom d’hôte

Configurer le réseau :

  • Cliquer sur Configurer.
  • Nom de la connexion : WAN
  • Périphérique : ens3 (52:54:00:00:E4:AC)
  • Ouvrir l’onglet Paramètres IPv4.
  • Méthode : Manuel.
  • Adresses : cliquer sur Ajouter.
  • Adresse : 163.172.226.12
  • Masque de réseau : 24
  • Passerelle : 62.210.0.1
  • Serveurs DNS : 62.210.16.6, 62.210.16.7
  • Ouvrir l’onglet Paramètres IPv6.
  • Méthode : Ignorer.
  • Cliquer sur Enregistrer.
  • Nom d’hôte : sandbox-01
  • Activer le réseau.

KVM Rocky Linux 8

ImportantMême si l’installateur nous l’affiche en surbrillance jaune, l’adresse IP 62.210.0.1 n’est pas une erreur. Elle correspond à la passerelle unique fournie par Scaleway pour toutes les machines virtuelles.

Configuration post-installation de la VM

Configurer l’authentification par clé SSH :

$ ssh-copy-id -i .ssh/id_rsa.pub root@sandbox-01.microlinux.fr
$ ssh-copy-id -i .ssh/id_rsa.pub microlinux@sandbox-01.microlinux.fr

Supprimer le fichier Kickstart généré par l’installateur :

# rm -f anaconda-ks.cfg

Supprimer le délai d’attente du chargeur de démarrage :

# /etc/default/grub
GRUB_TIMEOUT=0
...

Prendre en compte les modifications :

# grub2-mkconfig -o /boot/grub2/grub.cfg

Procéder à la configuration post-installation comme pour un serveur classique :

Créer un template

Une fois que la VM est correctement configurée, je vais m’en servir pour créer un template dans un premier temps :

  • Éteindre la VM.
  • Mettre la VM en surbrillance.
  • Clic droit > Cloner.
  • Nom : sandbox-template
  • Cliquer sur Cloner.
  • Mettre le template sandbox-template en surbrillance.
  • Édition > Détails de la machine virtuelle.
  • Afficher > Détails.
  • NIC :aa:bb:cc > Clic droit > Enlever un matériel.

KVM Template

Cloner une VM

À partir du template sandbox-template, je vais maintenant créer une machine virtuelle clonée sandbox-02.microlinux.fr qui dispose de sa propre adresse IPv4 publique :

  • Mettre le template sandbox-template en surbrillance.
  • Clic droit > Cloner.
  • Nom : sandbox-02.microlinux.fr
  • Cliquer sur Cloner.
  • Mettre la VM sandbox-02.microlinux.fr en surbrillance.
  • Édition > Détails de la machine virtuelle.
  • Afficher > Détails.
  • Ajouter un matériel > Réseau.
  • Source du réseau > Bridge device > Device Name : br0
  • Adresse MAC : renseigner l’adresse MAC allouée par Scaleway pour l’adresse IPv4 correspondante.
  • Modèle du périphérique : virtio
  • Cliquer sur Terminer.
  • Démarrer la VM sandbox-02.microlinux.fr en affichant la console.

KVM Clone

Renseigner le nom d’hôte correct dans /etc/hostname :

sandbox-02

Rectifier l’adresse IP et le nom d’hôte dans /etc/hosts :

# /etc/hosts
127.0.0.1 localhost.localdomain localhost
212.129.5.42 sandbox-02.microlinux.fr sandbox-02

Redémarrer :

# reboot

Corriger la configuration de NetworkManager :

# nmtui
  • Sélectionner Edit a connection.
  • Supprimer Wired connection 1.
  • Éditer la connexion WAN.
  • Renseigner l’adresse MAC correcte dans la rubrique Device.
  • Renseigner l’adresse IPv4 correcte.
  • Activer la connexion WAN.

Tester la connexion :

# ping -c 4 google.fr

Éditer /etc/postfix/main.cf pour corriger la configuration de Postfix :

# Host
myhostname = sandbox-02.microlinux.fr

Prendre en compte les modifications :

# systemctl restart postfix

Éditer /etc/dnf/automatic.conf pour corriger la configuration des mises à jour automatiques :

[emitters]
system_name = sandbox-02.microlinux.fr
emit_via = email

Procéder de même pour cloner la machine virtuelle sandbox-03.microlinux.fr.

Au final, voici nos trois machines virtuelles en état de fonctionnement :

KVM


La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.

 


0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *