Ce document décrit comment nous avons déployé QEMU-KVM dans un serveur Linux Ubuntu 10.04 Server (version 64 bits), qui est aujourd’hui en production, et qui héberge actuellement 5 machines virtuelles.
Depuis le début de rédaction de cette documentation, nous avons remplacé quasiment partout les instances Vmware Server par QEMU-KVM : actuellement, nous avons 7 instances QEMU-KVM en production, et 17 serveurs virtualisés dans ceux-ci.
Les configurations présentées ici sont adaptées à des structures de taille petites à moyennes (nous gérons 6 sites et 200 personnes).
Avant de vous lancer, vérifiez que votre processeur supporte la virtualisation ! Pour cela, tapez cette commande :
egrep '^flags.*(vmx|svm)' /proc/cpuinfo >/dev/null && echo OK || echo KO
Si elle vous affiche KO, regardez dans le bios si vous pouvez activer la virtualisation. Si ce n'est pas le cas, laissez tomber...
Par défaut, les espaces disques sont créés en mode IDE. Avec Windows, les performances sont plutôt mauvaises. Pour que vos machines fonctionnent correctement, vous devez :
Voici un récapitulatif des opérations à effectuer :
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/opt/vms/virtio-win-0.1-59.iso'/>
<target dev='hdd' bus='ide'/>
<readonly/>
</disk>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/opt/vms/SW_DVD5_Windows_Svr_DC_EE_SE_Web_2008_R2_64Bit_French_w_SP1_MLF_X17-22584.ISO'/>
<target dev='hdc' bus='ide'/>
<readonly/>
</disk>
Faites attention à l'ordre de vos cdroms : hdc sera lu avant hdd, et c'est hdc qui contient le cdrom d'installation de windows. Dans le cas contraire, vous n'arriverez pas à démarrer à partir du cdrom...
L'image iso contient également un pilote virtio pour le réseau : utilisez-le, les performances seront meilleures. Pour info, voici le détail de ma configuration concernant le disque dur et la carte réseau :
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/opt/vms/windows2008.qcow2'/>
<target dev='vda' bus='virtio'/>
</disk>
<interface type='bridge'>
<mac address='XX:XX:XX:XX:XX:XX'/>
<source bridge='br0'/>
<target dev='vnet9'/>
<model type='virtio'/>
</interface>