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 à déclarer dans votre service DHCP :
# 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 mais c'est très simple !