Virtualisation · 6 min read · Dec 23, 2025

Virtualisation avec KVM sur un serveur OpenSUSE 12.2

Virtualisation avec KVM sur un serveur OpenSUSE 12.2

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 OpenSUSE 12.2. Je vais montrer comment créer des machines virtuelles basées sur des images et aussi 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 OpenSUSE 12.2 avec le nom d’hôte server1.example.com et l’adresse IP 192.168.0.100 ici comme mon hôte KVM.

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 OpenSUSE 12.2.

2 Installation de KVM

Hôte KVM OpenSUSE 12.2 :

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/cpuinfo

devrait afficher quelque chose, par exemple comme ceci :

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 rep_good extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch lbrv
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 rep_good extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch lbrv
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.

Pour installer KVM et virtinst (un outil pour créer des machines virtuelles), nous exécutons

zypper install kvm libvirt libvirt-python qemu virt-manager

Malheureusement, libvirt-python entre en conflit avec le package patterns-openSUSE-minimal_base-conflicts. Par conséquent, nous devons choisir de désinstaller ce package :

Problème : libvirt-python-0.9.11.4-1.2.1.x86_64 nécessite python = 2.7, mais cette exigence ne peut pas être fournie
des fournisseurs non installables : python-2.7.3-3.6.1.x86_64[openSUSE-12.2-1.6]
python-2.7.3-3.6.1.i586[repo-oss]
python-2.7.3-3.6.1.x86_64[repo-oss]
Solution 1 : Les actions suivantes seront effectuées :
ne pas installer libvirt-python-0.9.11.4-1.2.1.x86_64
ne pas installer virt-manager-0.9.4-1.6.1.x86_64
Solution 2 : Les actions suivantes seront effectuées :
ne pas installer virt-manager-0.9.4-1.6.1.x86_64
ne pas installer libvirt-python-0.9.11.4-1.2.1.x86_64
Solution 3 : désinstallation de patterns-openSUSE-minimal_base-conflicts-12.2-5.5.1.x86_64
Solution 4 : casser libvirt-python-0.9.11.4-1.2.1.x86_64 en ignorant certaines de ses dépendances

Choisissez parmi les solutions ci-dessus par numéro ou annulez [1/2/3/4/c] (c) : <– 3

Ensuite, créez les liens de démarrage du système pour libvirtd…

systemctl enable libvirtd.service

… et démarrez le démon libvirt :

systemctl start libvirtd.service

Pour vérifier si KVM a été installé avec succès, exécutez

virsh -c qemu:///system list

Cela devrait afficher quelque chose comme ceci :

server1:~ # virsh -c qemu:///system list
WARNING: no socket to connect to
Id Nom État

———————————-

server1:~ #

S’il affiche une erreur à la place, alors quelque chose a mal tourné.

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 package bridge-utils…

zypper install bridge-utils

… et configurons un pont.

Pour configurer le pont, créez le fichier /etc/sysconfig/network/ifcfg-br0 comme suit (assurez-vous d’utiliser le paramètre IPADDR du fichier /etc/sysconfig/network/ifcfg-eth0) :

vi /etc/sysconfig/network/ifcfg-br0

| STARTMODE='auto' BOOTPROTO='static' IPADDR='192.168.0.100/24' MTU='' NETMASK='' NETWORK='' BROADCAST='' USERCONTROL=no NAME='Bridge 0' NM_CONTROLLED=no BRIDGE='yes' BRIDGE_PORTS='eth0' BRIDGE_AGEINGTIME='300' BRIDGE_FORWARDDELAY='0' BRIDGE_HELLOTIME='2' BRIDGE_MAXAGE='20' BRIDGE_PATHCOSTS='19' BRIDGE_PORTPRIORITIES= BRIDGE_PRIORITY= BRIDGE_STP='on' |

(Si vous obtenez le message Vous n’avez pas de package binaire vim valide installé. Veuillez installer soit “vim”, “vim-enhanced” ou “gvim”., veuillez exécuter

zypper install vim

pour installer vi et réessayer.)

Modifiez /etc/sysconfig/network/ifcfg-eth0 comme suit (définissez IPADDR sur 0.0.0.0 et changez STARTMODE en hotplug) :

vi /etc/sysconfig/network/ifcfg-eth0

| BOOTPROTO='static' BROADCAST='' ETHTOOL_OPTIONS='' IPADDR='0.0.0.0' MTU='' NAME='MCP77 Ethernet' NETMASK='' NETWORK='' REMOTE_IPADDR='' STARTMODE='hotplug' USERCONTROL='no' |

Ensuite, redémarrez le réseau :

systemctl restart network.service

Ensuite, exécutez

ifconfig

Cela devrait maintenant afficher le pont réseau (br0) :

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:92 errors:0 dropped:0 overruns:0 frame:0
TX packets:38 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:12716 (12.4 Kb) TX bytes:5961 (5.8 Kb)

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:131711 errors:0 dropped:0 overruns:0 frame:0
TX packets:80954 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:185764801 (177.1 Mb) TX bytes:6374023 (6.0 Mb)
Interrupt:41 Base address:0x8000

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:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:860 (860.0 b) TX bytes:860 (860.0 b)

server1:~ #

3 Installation de virt-manager sur votre bureau OpenSUSE 12.1

Bureau OpenSUSE 12.2 :

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 OpenSUSE 12.2.

Devenez root…

su

… et exécutez…

zypper install virt-manager libvirt

… pour installer virt-manager.

(Si vous utilisez un bureau Ubuntu 11.10, 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)

Hôte KVM OpenSUSE 12.2 :

Revenons maintenant à notre hôte KVM OpenSUSE 12.2.

Jetez un œil à

virt-install --help pour apprendre à l’utiliser.

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 --hvm

Bien 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 OpenSUSE 12.2, 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.0-amd64-netinst.iso

… et utilisez 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.0-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvm

La sortie est la suivante :

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.0-amd64-netinst.iso –vnc –noautoconsole –os-type linux –os-variant debiansqueeze –accelerate –network=bridge:br0 –hvm
WARNING: no socket to connect to

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.
server1:~ #

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.