Virtualisation de systèmes d'exploitation
Introduction
Virtualisation de systèmes d'exploitation :
- technique qui permet de faire fonctionner en même temps, sur un seul ordinateur (hôte), plusieurs systèmes d'exploitation (invités). Il existe plusieurs types de virtualisation.
- on parle alors de Virtual Machines (VM) ou Machine Virtuelle.
- La virtualisation sur Wikipédia
Hyperviseur
- Logiciel de virtualisation installé dans le système d'exploitation de l'hôte et qui permet à plusieurs systèmes d'exploitation de fonctionner sur l'hôte.
- Crée des environnements clos où sont installé les OS invités.
- KVM (Kernel-based Virtual Machine) est un hyperviseur libre de type I pour Linux. C'est l'hyperviseur qui sera utilisé dans ce document.
Pourquoi utiliser la virtualisation ?
- Utiliser plusieurs VM en même temps sur la même machine,
- Tester différents systèmes d'exploitation,
- Tester des logiciels dans un environnement contrôlé sans danger pour le système hôte,
- Copier et utiliser des environnements de test,
- Utiliser des configurations différentes sur le même serveur comme par exemple Nginx et PostgreSQL sur une VM et Apache2 et MySQL sur une autre.
- Transporter un OS d'une machine à l'autre.
Description de l'installation et des outils utilisés dans ce document
Le réseau
Le réseau local est connecté à internet via un modem routeur. Il communique avec l'extérieur (le monde) à l'aide d'une adresse IP publique que nous représenterons par XXX.XXX.XXX.XXX.
Le modem routeur possède 4 prises LAN (réseau local ).Donc, on peut y connecter 4 appareils. Ici,on voit :
- un PC sur la prise 1 et
- un serveur sur la prise 2.
- Les deux autres prises sont libres.
Les appareils du réseau local communiquent l'un avec l'autre à l'aide d'adresses IP privées. Ici, par exemple :
- le PC a pour adresse IP privée 198.168.0.1
- le serveur l'adresse IP privée 192.168.0.2.
Les systèmes d'exploitation des machines
Dans ce document il ne sera question que d'OS GNU/Linux. Pour trouver des informations sur l'OS installé tapez dans un terminal la commande :
uname -a
- PC :
Linux <nom de la machine> 5.15.0-58-generic #64~20.04.1-Ubuntu SMP Fri Jan 6 16:42:31 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
- Serveur (machine hôte):
Linux <nom du serveur> 5.4.0-137-generic #154-Ubuntu SMP Thu Jan 5 17:03:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
- Archive utillisée pour installer la VM : ubuntu-20.04.5-live-server-amd64.iso
L'hyperviseur KVM
- Hyperviseur de type I pour une virtualisation complète.
- Simule un nouvel ordinateur complet pour les le système d'exploitation (OS) invité.
- KVM est plus facile à mettre en place qu'un hyperviseur de type II.
- KVM est un logiciel libre.
- Pour des OS prévus pour la même architecture matériel que le processeur physique.
- Hyperviseurs : KVM
Est-ce que la machine hôte supporte la virtualisation ?
Envoyer cette commande dans une console de l'hôte où on veut installer une VM:
egrep -c '(svm|vmx)' /proc/cpuinfo
Réponse :
- si 0 : l'hôte ne supporte pas la virtualisation
- si 1 ou + : l'hôte supporte la virtualisation
La virtualisation est-elle activée dans le BIOS/UEFI ?
Installer cpu-checker
sudo apt install cpu-checker
Commande
Envoyer cette commande dans une console de l'hôte.
sudo kvm-ok
Réponses
- Si la virtualisation n'est pas activée cette réponse est envoyée en anglais (ici elle est traduite pour plus de commodité).
INFO : /dev/kvm n'existe pas ASTUCE : sudo modprobe kvm_intel INFO : Votre processeur prend en charge les extensions KVM INFO : KVM (vmx) est désactivé par votre BIOS ASTUCE : Entrez dans la configuration de votre BIOS et activez la technologie de virtualisation (VT), puis éteignez ou rallumez votre système. L'accélération KVM ne peut PAS être utilisée
Il faut entrer dans le BIOS et activez la technologie de virtualisation (VT), puis rebooter le système.
- Si la virtualisation est activée cette réponse s'affiche en anglais dans la console.
INFO : /dev/kvm existe L'accélération KVM peut être utilisée