Virtualisation · 6 min read · Dec 15, 2025
Virtualisation Avec KVM Sur Un Serveur CentOS 6.4
Virtualisation Avec KVM Sur Un Serveur CentOS 6.4
Version 1.0
Auteur : Falko Timme
Suivez-moi sur Twitter
Ce guide explique comment vous pouvez installer et utiliser KVM pour créer et exécuter des machines virtuelles sur un serveur CentOS 6.4. Je vais montrer comment créer des machines virtuelles basées sur des images et également des machines virtuelles qui utilisent un volume logique (LVM). KVM est l’abréviation de Kernel-based Virtual Machine et utilise la virtualisation matérielle, c’est-à-dire que vous avez besoin d’un processeur qui prend en charge la virtualisation matérielle, par exemple Intel VT ou AMD-V.
Je ne donne aucune garantie que cela fonctionnera pour vous !
1 Remarque Préliminaire
J’utilise un serveur CentOS 6.4 avec le nom d’hôte server1.example.com et l’adresse IP 192.168.0.100 ici comme mon hôte KVM.
J’avais désactivé SELinux sur mon système CentOS 6.4. Je n’ai pas testé avec SELinux activé ; cela pourrait fonctionner, mais sinon, il vaut mieux désactiver SELinux également :
vi /etc/selinux/configDéfinissez SELINUX=disabled…
| # Ce fichier contrôle l'état de SELinux sur le système. # SELINUX= peut prendre l'une de ces trois valeurs : # enforcing - La politique de sécurité SELinux est appliquée. # permissive - SELinux imprime des avertissements au lieu d'appliquer. # disabled - Aucune politique SELinux n'est chargée. SELINUX=disabled # SELINUXTYPE= peut prendre l'une de ces deux valeurs : # targeted - Les processus ciblés sont protégés, # mls - Protection Multi Niveau de Sécurité. SELINUXTYPE=targeted |
… et redémarrez :
reboot Nous avons également besoin d’un système de bureau où nous installons virt-manager afin que nous puissions nous connecter à la console graphique des machines virtuelles que nous installons. J’utilise ici un bureau Fedora 17.
2 Installation de KVM
Hôte KVM CentOS 6.4 :
Tout d’abord, vérifiez si votre processeur prend en charge la virtualisation matérielle - si c’est le cas, la commande
egrep '(vmx|svm)' --color=always /proc/cpuinfodevrait afficher quelque chose, par exemple comme ceci :
[root@server1 ~]# egrep ‘(vmx|svm)’ –color=always /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall
nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall
nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse
[root@server1 ~]#
Si rien n’est affiché, alors votre processeur ne prend pas en charge la virtualisation matérielle, et vous devez vous arrêter ici.
Maintenant, nous importons les clés GPG pour les paquets logiciels :
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*Pour installer KVM et virtinst (un outil pour créer des machines virtuelles), nous exécutons
yum install kvm libvirt python-virtinst qemu-kvmEnsuite, démarrez le démon libvirt :
/etc/init.d/libvirtd startPour vérifier si KVM a été installé avec succès, exécutez
virsh -c qemu:///system listCela devrait afficher quelque chose comme ceci :
[root@server1 ~]# virsh -c qemu:///system list
Id Nom État
———————————-
[root@server1 ~]#
Si cela affiche une erreur à la place, alors quelque chose s’est mal passé.
Ensuite, nous devons configurer un pont réseau sur notre serveur afin que nos machines virtuelles puissent être accessibles depuis d’autres hôtes comme si elles étaient des systèmes physiques dans le réseau.
Pour ce faire, nous installons le paquet bridge-utils…
yum install bridge-utils… et configurons un pont. Créez le fichier /etc/sysconfig/network-scripts/ifcfg-br0 (veuillez utiliser les valeurs IPADDR, PREFIX, GATEWAY, DNS1 et DNS2 du fichier /etc/sysconfig/network-scripts/ifcfg-eth0) ; assurez-vous d’utiliser TYPE=Bridge, pas TYPE=Ethernet :
vi /etc/sysconfig/network-scripts/ifcfg-br0| DEVICE="br0" NM_CONTROLLED="yes" ONBOOT=yes TYPE=Bridge BOOTPROTO=none IPADDR=192.168.0.100 PREFIX=24 GATEWAY=192.168.0.1 DNS1=8.8.8.8 DNS2=8.8.4.4 DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System br0" |
Modifiez /etc/sysconfig/network-scripts/ifcfg-eth0 comme suit (commentez BOOTPROTO, IPADDR, PREFIX, GATEWAY, DNS1 et DNS2 et ajoutez BRIDGE=br0) :
vi /etc/sysconfig/network-scripts/ifcfg-eth0| DEVICE="eth0" #BOOTPROTO=none NM_CONTROLLED="yes" ONBOOT=yes TYPE="Ethernet" UUID="73cb0b12-1f42-49b0-ad69-731e888276ff" HWADDR=00:1E:90:F3:F0:02 #IPADDR=192.168.0.100 #PREFIX=24 #GATEWAY=192.168.0.1 #DNS1=8.8.8.8 #DNS2=8.8.4.4 DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth0" BRIDGE=br0 |
Redémarrez le réseau…
/etc/init.d/network restart… et exécutez
ifconfigCela devrait maintenant afficher le pont réseau (br0) :
[root@server1 ~]# ifconfig
br0 Link encap:Ethernet HWaddr 00:1E:90:F3:F0:02
inet addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:27 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:460 (460.0 b) TX bytes:2298 (2.2 KiB)
eth0 Link encap:Ethernet HWaddr 00:1E:90:F3:F0:02
inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:18455 errors:0 dropped:0 overruns:0 frame:0
TX packets:11861 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:26163057 (24.9 MiB) TX bytes:1100370 (1.0 MiB)
Interrupt:25 Base address:0xe000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:5 errors:0 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2456 (2.3 KiB) TX bytes:2456 (2.3 KiB)
virbr0 Link encap:Ethernet HWaddr 52:54:00:AC:AC:8F
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
[root@server1 ~]#
3 Installation de virt-viewer Ou virt-manager Sur Votre Bureau Fedora 17
Bureau Fedora 17 :
Nous avons besoin d’un moyen de nous connecter à la console graphique de nos invités - nous pouvons utiliser virt-manager pour cela. Je suppose que vous utilisez un bureau Fedora 17.
Devenez root…
su… et exécutez…
yum install virt-manager libvirt qemu-system-x86 openssh-askpass… pour installer virt-manager.
(Si vous utilisez un bureau Ubuntu 12.04, vous pouvez installer virt-manager comme suit :
sudo apt-get install virt-manager)
4 Création D’un Invité Debian Squeeze (Basé Sur Une Image) Depuis La Ligne De Commande
Hôte KVM CentOs 6.4 :
Maintenant, retournons à notre hôte KVM CentOS 6.4.
Jetez un œil à
man virt-installpour apprendre à utiliser virt-install.
Nous allons créer nos machines virtuelles basées sur des images dans le répertoire /var/lib/libvirt/images/ qui a été créé automatiquement lorsque nous avons installé KVM au chapitre deux.
Pour créer un invité Debian Squeeze (en mode pont) avec le nom vm10, 512 Mo de RAM, deux CPU virtuels, et l’image disque /var/lib/libvirt/images/vm10.img (avec une taille de 12 Go), insérez le CD d’installation Netinstall de Debian Squeeze dans le lecteur CD et exécutez
virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 --disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /dev/cdrom --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvmBien sûr, vous pouvez également créer une image ISO du CD d’installation Netinstall de Debian Squeeze (veuillez la créer dans le répertoire /var/lib/libvirt/images/ car plus tard, je vais montrer comment créer des machines virtuelles via virt-manager depuis votre bureau Fedora, et virt-manager cherchera des images ISO dans le répertoire /var/lib/libvirt/images/)…
dd if=/dev/cdrom of=/var/lib/libvirt/images/debian-6.0.5-amd64-netinst.iso… et utiliser l’image ISO dans la commande virt-install :
virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 --disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /var/lib/libvirt/images/debian-6.0.5-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvmLa sortie est la suivante :
[root@server1 ~]# virt-install –connect qemu:///system -n vm10 -r 512 –vcpus=2 –disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /var/lib/libvirt/images/debian-6.0.5-amd64-netinst.iso –vnc –noautoconsole –os-type linux –os-variant debiansqueeze –accelerate –network=bridge:br0 –hvm
Démarrage de l’installation…
Allocation de ‘vm10.img’ | 12 Go 00:00
Création de domaine… | 0 B 00:00
L’installation du domaine est toujours en cours. Vous pouvez vous reconnecter à
la console pour terminer le processus d’installation.
[root@server1 ~]#
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.