Recherche de site Web

Série RHCSA : Principes essentiels de la virtualisation et de l'administration des invités avec KVM - Partie 15


Si vous recherchez le mot virtualiser dans un dictionnaire, vous constaterez qu'il signifie « créer une version virtuelle (plutôt que réelle) de quelque chose ». En informatique, le terme virtualisation fait référence à la possibilité d'exécuter plusieurs systèmes d'exploitation simultanément et isolés les uns des autres, au-dessus du même système physique (matériel), connu dans le schéma de virtualisation sous le nom d'hôte.

Grâce à l'utilisation du moniteur de machine virtuelle (également appelé hyperviseur), les machines virtuelles (appelées invités) reçoivent des ressources virtuelles (c'est-à-dire CPU, RAM, stockage, réseau). interfaces, pour n'en nommer que quelques-unes) à partir du matériel sous-jacent.

Dans cette optique, il est évident que l’un des principaux avantages de la virtualisation est la réduction des coûts (en termes d’équipement et d’infrastructure réseau et en termes d’effort de maintenance) et une réduction substantielle de l’espace physique requis pour accueillir tout le matériel nécessaire.

Ce bref tutoriel ne pouvant couvrir toutes les méthodes de virtualisation, je vous encourage à vous référer à la documentation répertoriée dans le résumé pour plus de détails sur le sujet.

Veuillez garder à l'esprit que le présent article est destiné à être un point de départ pour apprendre les bases de la virtualisation dans RHEL 7 à l'aide de KVM (Kernel-based Virtual Machine) avec des utilitaires de ligne de commande, et non un outil de ligne de commande. -discussion approfondie du sujet.

Vérification de la configuration matérielle requise et installation des packages

Afin de mettre en place la virtualisation, votre CPU doit la prendre en charge. Vous pouvez vérifier si votre système répond aux exigences avec la commande suivante :


grep -E 'svm|vmx' /proc/cpuinfo

Dans la capture d'écran suivante, nous pouvons voir que le système actuel (avec un microprocesseur AMD) prend en charge la virtualisation, comme indiqué par svm. Si nous avions un processeur Intel, nous verrions vmx à la place dans les résultats de la commande ci-dessus.

De plus, vous devrez activer les capacités de virtualisation dans le firmware de votre hôte (BIOS ou UEFI).

Installez maintenant les packages nécessaires :

  1. qemu-kvm est un virtualiseur open source qui fournit une émulation matérielle pour l'hyperviseur KVM tandis que qemu-img fournit un outil de ligne de commande pour manipuler les images disque.
  2. libvirt inclut les outils permettant d'interagir avec les capacités de virtualisation du système d'exploitation.
  3. libvirt-python contient un module qui permet aux applications écrites en Python d'utiliser l'interface fournie par libvirt.
  4. libguestfs-tools : divers outils de ligne de commande d'administrateur système pour les machines virtuelles.
  5. virt-install : autres utilitaires de ligne de commande pour l'administration des machines virtuelles.

yum update && yum install qemu-kvm qemu-img libvirt libvirt-python libguestfs-tools virt-install

Une fois l'installation terminée, assurez-vous de démarrer et d'activer le service libvirtd :


systemctl start libvirtd.service
systemctl enable libvirtd.service

Par défaut, chaque machine virtuelle ne pourra communiquer qu'avec les autres sur le même serveur physique et avec l'hôte lui-même. Pour permettre aux invités d'accéder à d'autres machines à l'intérieur de notre réseau local ainsi qu'à Internet, nous devons configurer une interface de pont dans notre hôte (disons br0, par exemple) en :

1. en ajoutant la ligne suivante à notre configuration principale de carte réseau (très probablement /etc/sysconfig/network-scripts/ifcfg-enp0s3) :


BRIDGE=br0

2. créer le fichier de configuration pour br0 (/etc/sysconfig/network-scripts/ifcfg-br0) avec ce contenu (notez que vous vous devrez peut-être modifier l'adresse IP, l'adresse de la passerelle et les informations DNS) :


DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.0.18
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NM_CONTROLLED=no
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=br0
ONBOOT=yes
DNS1=8.8.8.8
DNS2=8.8.4.4

3. enfin, activer le transfert de paquets en créant, dans /etc/sysctl.conf,


net.ipv4.ip_forward = 1

et en chargeant les modifications apportées à la configuration actuelle du noyau :


sysctl -p

Notez que vous devrez peut-être également indiquer à firewalld que ce type de trafic doit être autorisé. N'oubliez pas que vous pouvez vous référer à l'article sur ce sujet dans cette même série (Partie 11 : Contrôle du trafic réseau à l'aide de FirewallD et Iptables) si vous avez besoin d'aide pour ce faire.