KVM : pré-requis, installation
KVM : pré-requis, installation jppPour les tests de shinken 0.4 j'ai récupéré une image qu format VMWARE et, au lieu de la transformer en image XEN j'ai voulu tester au passage la virtualisation avec KVM.
Première opération : compiler KVM dans le noyau Linux (ici le kernel 2.6.37.rc8), et ça marche encore pour les noyaux 3.X et 4.X.
Lancer le "make menuconfig" :
┌────────────────────────────────────────────────────────────────────────┐ │
│ │ General setup ---> │ │
│ │ [*] Enable loadable module support ---> │ │
│ │ -*- Enable the block layer ---> │ │
│ │ Processor type and features ---> │ │
│ │ Power management and ACPI options ---> │ │
│ │ Bus options (PCI etc.) ---> │ │
│ │ Executable file formats / Emulations ---> │ │
│ │ [*] Networking support ---> │ │
│ │ Device Drivers ---> │ │
│ │ Firmware Drivers ---> │ │
│ │ File systems ---> │ │
│ │ Kernel hacking ---> │ │
│ │ Security options ---> │ │
│ │ -*- Cryptographic API ---> │ │
│ │ [*] Virtualization ---> │ │
│ │ Library routines ---> │ │
│ └──────────v(+)────────────────────────────────────────────────────────┘ │
Cocher la case "Virtualization" et aller dans le détail et sélectionner le type de processeur (ici c'est AMD) : ┌────────────────────────────────────────────────────────────────────────┐ │
│ │ --- Virtualization │ │
│ │ <M> Kernel-based Virtual Machine (KVM) support │ │
│ │ <M> KVM for Intel processors support │ │
│ │ < > KVM for AMD processors support │ │
│ │ <M> Host kernel accelerator for virtio net (EXPERIMENTAL) │ │
│ │ <M> PCI driver for virtio devices (EXPERIMENTAL) │ │
│ │ <M> Virtio balloon driver (EXPERIMENTAL) │ │
│ │ | |
| ├──────────────────────────────────────────────────────────────────────┤ |
Cocher les cases correspondant à votre type de processeur (AMD/INTEL), et les trois dernières aussi. Puis compilation, installation, reboot et c'est OK !
Il faut ensuite installer :
- qemu-kvm
- uml_utilities
- bridge-utils
Pour pouvoir lancer des machines virtuelles et leur fournir un accès au réseau.
apt-get pour moi, yum pour d'autres ...
Deuxième opération : création d'un "bridge".
Le bridge peut être installé en permanence, le réseau fonctionne très bien pour la machine principale si un bridge est déclaré. Sur un système Debian il faut modifier le fichier "/etc/network/interfaces" comme suit :
Avant :
auto eth0
iface eth0 inet static
address 192.168.1.XXX
netmask 255.255.255.0
network 192.168.1.0
gateway 192.168.1.xxx
broadcast 192.168.1.255
Après :
auto br0
iface br0 inet static
address 192.168.1.XXX
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.xxx
bridge_ports eth0
bridge_maxwait 1
Ensuite rebooter la machine pour vérifier si tout est OK, et tester :
sudo ifconfig br0
br0 Link encap:Ethernet HWaddr 00:1b:2f:bf:11:c7
inet addr:192.168.1.XXX Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:53550 errors:0 dropped:0 overruns:0 frame:0
TX packets:85015 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:54066193 (51.5 MiB) TX bytes:17172164 (16.3 MiB)
Tout est alors prêt sur le système hôte pour lancer notre première machine virtuelle KVM ... dès que la partie réseau sera au point coté KVM.