K

- Base de connaissances

Accueil > Projets Open Source > KVM ou « Kernel-based Virtual Machine » > KVM et QEMU : Création d’une machine virtuelle

KVM et QEMU : Création d’une machine virtuelle

samedi 7 novembre 2015, par webmestre

Lire aussi :

KVM, pour Kernel-based Virtual Machine , est une solution de virtualisation libre et intégrée aux noyaux Linux supérieures ou égales au version 2.6.20. Elle nécessite le support matériel de la virtualisation par les technologies VT (d’Intel) ou SVM (d’AMD).

KVM permet de faire fonctionner facilement des machines virtuelles aux OS variés, Windows, Linux, BSD, etc, à faibles coûts dans des environnements de production.

Pré-requis

Comme évoqué en préambule, la virtualisation sous KVM est intégré au noyau et elle nécessite donc un supporte matériel.

Donc en premier lieu, il est nécessaire de vérfier que le système d’exploitation socle est compatible KVM.

Pour se faire, nous allons vérifier le paramétrage de ce dernier.

Etape 1 : Est-ce que le processeur intègre la technologie VT-x ou AMD-v ?
En exécutant la commande suivante :

egrep -c '(vmx|svm)' /proc/cpuinfo

Si cette ligne de commande, vous retourne 0, alors vérifier que le support VT-x (ou AMD-v) est bien activé dans le bios ou que votre processeur supporte bien la technologie de virtualisation VT-x (pour les processeurs INTEL) ou AMD-v (pour les processeurs AMD).

Exemple : Pour un processeur Intel® Core™2 Duo Processor T6600, cette technologie n’est pas prise en charge et donc que la virtualisation KVM n’est pas possible. Il faudra donc changer de matériel !

Si la ligne de commande retourne une valeur plus grande que 0 (2 dans la plupart des cas) alors vous pouvez passer à l’étape 2.

Etape 2 : Est-ce que les modules KVM sont intégrés au noyau ?
Depuis les noyaux 2.6.20, KVM est intégré aux kernel Linux. Vérifiez que les modules sont bien disponibles sur votre distribution :

find /lib/modules/`uname -r` -iname "*kvm*"

Le retour devrait ressembler à :

/lib/modules/3.16.0-4-amd64/kernel/arch/x86/kvm
/lib/modules/3.16.0-4-amd64/kernel/arch/x86/kvm/kvm-amd.ko
/lib/modules/3.16.0-4-amd64/kernel/arch/x86/kvm/kvm.ko
/lib/modules/3.16.0-4-amd64/kernel/arch/x86/kvm/kvm-intel.ko

Ou en vérifiant la configuration de votre noyau :

grep KVM /boot/config-3.16.0-4-amd64

Le retour devrait ressembler à :

CONFIG_KVM_GUEST=y
# CONFIG_KVM_DEBUG_FS is not set
CONFIG_HAVE_KVM=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_HAVE_KVM_IRQFD=y
CONFIG_HAVE_KVM_IRQ_ROUTING=y
CONFIG_HAVE_KVM_EVENTFD=y
CONFIG_KVM_APIC_ARCHITECTURE=y
CONFIG_KVM_MMIO=y
CONFIG_KVM_ASYNC_PF=y
CONFIG_HAVE_KVM_MSI=y
CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
CONFIG_KVM_VFIO=y
CONFIG_KVM=m
CONFIG_KVM_INTEL=m
CONFIG_KVM_AMD=m
# CONFIG_KVM_MMU_AUDIT is not set
CONFIG_KVM_DEVICE_ASSIGNMENT=y

Etape 3 : Est-ce que les modules KVM sont activés ?
Pour vérifier ce point, il suffit d’exécuter la commande suivante :

lsmod | grep kvm

Le retour devrait ressembler à :

kvm_amd                59091    0
kvm                    388635   1 kvm_amd

Etape 4 : Est-ce que le support de la virtualisation est activé dans le BIOS ?
JPEGEnfin, le dernier point est de vérifier que le support de la virtualisation est activé dans le BIOS de votre machine.



Installation

Pour installer les outils permettant de gérer les machines virtuelles, il suffit d’installer le paquet QEMU. QEMU est un logiciel libre de machine virtuelle, pouvant émuler un processeur et, plus généralement, une architecture différente si besoin. Il permet d’exécuter un ou plusieurs systèmes d’exploitation via les hyperviseurs KVM et Xen, ou seulement des binaires, dans l’environnement d’un système d’exploitation déjà installé sur la machine.
Ce dernier est est « empaqueté » sous la quasi totalité des distributions, et dans le cas d’une DEBIAN, il suffit d’exécuter la commande suivante :

apt-get install qemu-kvm

Puis, il faut accorder les droits aux utilisateurs ayant droit ou autorité pour utiliser la virtualisation. Pour se faire, il suffit de les ajouter au groupe kvm en exécutant la commande suivante :

gpasswd -a <utilisateur> kvm

Création d’une machine virtuelle

Le socle étant posé, c’est-à-dire les outils permettant de gérer, contrôler la machine virtuelle, et donc dans notre cas QEMU et KVM, créons une machine virtuelle.

Etape 1 : Création d’un disque virtuel
La création d’une machine virtuelle consiste en premier lieu à créer un disque dur (virtuel) qui sera « matérialisé » sous la forme d’un fichier. Ce dernier est créé à l’aide de l’outil qemu-img invoqué en mode création avec pour paramètres, au moins :

  • le nom du fichier servant de disque dur à la machine virtuelle ;
  • la taille du disque de la machine.

D’où, la commande par exemple :

qemu-img create pi.debian.8.raw 20G

Par défaut, le disque est créé au format RAW. Mais, l’option -f permet de préciser d’autres formats (cf. la page de man de qemu-img)

Etape 2 : Premier démarrage de la machine virtuelle
PNGUne fois le disque dur créé, il est possible de lancer la machine virtuelle via la commande de base suivante :

kvm pi.debian.8.raw

Par défaut, les ressources allouées à la machine virtuelle seront :

  • 128Mo de RAM
  • un coeur de processeur
  • une interface réseau
  • ...

PNGOn constate que nous avons un système virtuel nu... Avant de continuer par la suite logique des choses c’est-à-dire par l’installation du système d’exploitationInstallons un système d’exploitation, allons un peu plus loin avec la commande de lancement.

Iil est possible via le jeu de paramètres de lancement de configurer sa machine virtuelle, en voici quelques uns :

Paramètre
-daemonizeLance la machine virtuelle en mode démon
-vnc :apermet d’accéder à la machine virutelle sur l’ip de la machine hôte via VNC (port 5900+a)
-smp xpermet de préciser le nombre de processeur alloué à la machine virtuelle
-m xpermet de donner la taille en méga octets de la mémoire vive allouée à la machine virtuelle
-k code languepermet de paramétrer le clavier de la machien virtuelle, exemple : fr pour français

Ainsi en reprenant, la dernière ligne de commande, nous pourrions lancer notre machine virtuelle tel que :

kvm pi.debian.8.raw -m 1024 -k fr -vnc :1

Puis voir le résultat via la commande suivante :

xtightvncviewer {{ip_de_ma_machine_hote}}:5901

Nous constaterons la même chose que la précédente ligne de commande en prenant le contrôle à distance de la machine virtuelle via un client VNC (comme par exemple tightvncviewer), à savoir que nous constatons que nous avons un système virtuel nu...

Pour finir et pour plus d’information sur les paramètres possibles, tapez la commande suivante :

kvm -help

Etape 3 : Installation d’un système d’exploitation
PNGPour réaliser une installation d’un système d’exploitation, il existe plusieurs méthodes. Dans notre cas, nous utiliserons une méthode standard, c’est-à-dire via une image d’un CD d’installation d’un système d’exploitation.

Pour se faire, nous allons ajouter une ressource CD-ROM chargé virtuellement avec l’image ISO du CD-ROM d’installation d’une distribution DEBIAN 8. D’où la commande suivante :

kvm pi.debian.8.raw -m 1024 -k fr -vnc :1 -cdrom debian-8.2.0-amd64-netinst.iso -boot d

On ajoute à la machine virtuelle un lecteur CD-ROM via l’option -cdrom fichier et nous préciserons au système de démarrer dessus avec l’option -boot et en propriété dessus (la lettre d indique cette proirité).

A vos VM....

Répondre à cet article

Plan du site | Suivre la vie du site RSS 2.0 | powered by NYSTEK-EDITIONS and NYSTEK-CONSULTING