You are here

KVM : la première machine

Tout étant prêt nous allons pouvoir lancer notre première machine. Comme je l'ai expliqué au début de cet article j'ai récupéré une image de disque VMWARE que j'ai convertie en image adaptée à KVM (format QCOW2) par la commande miracle :
qemu-img convert shinken-vm-0.4.vmdk -O qcow2 shinken-vm-0.4.kvm
Il s'agit donc d'une "machine pré-fabriquée" où tout est déjà installé, un prochain article détaillera la construction d'une nouvelle machine.
Une fois le disque disponible on va s'occuper des paramètres nécessaires à KVM :

  • Un disque on peut installer de "-hda" à "-hdd" et "-cdrom"
  • De la RAM (-m ...M)
  • Un nom ( -name ....)
  • Un clavier français !
  • Le lancement en "démon" ou pas (-daemonize)
  • Une carte réseau avec son adresse MAC, couplée à notre tap0
  • Le fonctionnement du disque en normal ou "snapshot" qui empêche toute modification du disque utilisé (ça peut servir !).

Lancez l'interface "TAP0" avant de lancer la MV. Le script suivant pourra vous permettre de démarrer comme moi une machine minimum avec un seul disque, mais un clavier français et le réseau :

#!/bin/bash
HDA=/RAIDHOME/soft/tmp/shinken-vm-0.4/shinken-vm-0.4.kvm
NOM=kvmtest
RAM=256M

# clavier FR
OPTION=' -k fr '  
# demoniser
DEMON=' '
DEMON=' -daemonize '
# pas de snapshot
SNAPSHOT=' -snapshot '
SNAPSHOT=' '

RESEAU=' -net nic,macaddr=00:1d:92:ab:3f:78 -m 256 -net tap '
RESEAU=$RESEAU' ifname=tap0,script=no,downscript=no '

kvm $DEMON $SNAPSHOT -hda $HDA -boot c -name $NOM -m $RAM $OPTION $RESEAU


Et cela doit démarrer sans aucun problème, Ah, j'ai failli oublier, pour "sortir" de l'écran de votre machine KVM : Ctrl+Alt (à garder appuyé), puis aller cliquer sur la barre d'une autre fenêtre. Soyez patients, quelque fois cela "foire" un peu et il faut "titiller" légèrement la souris !
Il vous faudra reconfigurer la carte réseau de votre nouveau système afin que la carte fournie (Adresse MAC) soit reconnue au boot. Un petit tour dans "/etc/udev/rules.d" est très instructif. Supprimer les "cochonneries" dans le fichier "70-persistent-net.rules" (sur une distribution Debian, mais les autres n'ont pas l'air très différentes de ce coté) et modifier la ligne "eth0" en y indiquant votre "adresse MAC".

# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x10ec:0x8139 (8139cp)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1d:92:ab:3f:88", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Attention tout est sur une seule ligne !

Un autre petit tour dans /etc/network/interfaces pour vérifier que eth0 est bien en DHCP, si vous n'avez pas de serveur DHCP utilisez une adresse fixe :

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp


Et pour moi c'est OK, si vous n'avez pas de DHCP :

allow-hotplug eth0
iface eth0 inet static
    address   192.168.1.AAA
    netmask   255.255.255.0
    network   192.168.1.0
    gateway   192.168.1.XXX
    broadcast 192.168.1.255


Un petit coup de "ifdown eth0" suivi d'un "ifup eth0" devrait activer votre réseau et vous montrer que la liaison est OK :
sudo netstat -rn
Table de routage IP du noyau
Destination Passerelle    Genmask         Indic   MSS Fenêtre irtt Iface
192.168.1.0 0.0.0.0       255.255.255.0   U         0 0          0 eth0
0.0.0.0     192.168.1.XXX 0.0.0.0         UG        0 0          0 eth0


ping -c1 www.google.fr
PING www.l.google.com (74.125.230.80) 56(84) bytes of data.
64 bytes from 74.125.230.80: icmp_req=1 ttl=54 time=135 ms

--- www.l.google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 135.909/135.909/135.909/0.000 ms


Ca marche vraiment !

KVM c'est simple !