réf : https://wiki.ubuntu.com/kvm http://doc.ubuntu-fr.org/kvm et surtout cette doc complète en français : http://www.linux-france.org/prj/inetdoc/articles/vm/vm.choix.html Pour Ubuntu 9.10 : http://www.howtoforge.com/installing-kvm-guests-with-virt-install-on-ubuntu-8.10-server https://help.ubuntu.com/community/KVM/Installation http://www.howtoforge.com/virtualization-with-kvm-on-ubuntu-9.04 http://www.linux-kvm.org/page/Main_Page http://www.ubuntu.com/products/whatisubuntu/serveredition/technologies/virtualization Pour déployer plusieurs serveurs Windows Server 2003 sur un même serveur physique, on installe la solution d'hypervision intégrée de linux KVM. Notre serveur hôte est une Ubuntu server 9.10 sur intel x86. En effet, depuis la 8.10, des méta-paquets sont livrés afin de simplifier et d'administrer tout ce qui concerne KVM : ubuntu-virt-server et ubuntu-virt-mgmt. On commence d'abord par activer la virtualisation matérielle dans le BIOS (une des options du CPU). Installation de libvirt :Puis on installe les paquets de gestion et administration de KVM :apt-get install ubuntu-virt-server ubuntu-virt-mgmt Il installe un postfix au passage qu'on ne configure pas. On obtient à la fin de l'installation un paquet d'outils utilisant libvirt : virsh virt-convert virt-install virt-clone virt-image virt-manager virt-viewer On ajoute l'utilisateur au groupe libvirt : adduser `id -un` libvirtd Afin d'éviter toutes les manipulations de CD, on crée une image iso de l'OS à virtualiser : dd if=/dev/cdrom of=WindowsServer2003R2-disc1.iso Création et déploiement d'un serveur virtuel :réf : http://www.linuxcertif.com/man/1/virt-install/virt-install
--connect qemu:///system -n win2003-1 -r 1024 --vcpus=2 -f
~/win2003-1.qcow2 -s 12 -c ~/WindowsServer2003R2-disc1.iso --vnc
--noautoconsole --os-type=windows --os-variant=win2k3 --accelerate --network=bridge:virbr0 --keymap=fr --hvm ce qui signifie : --connect : connecte l'hyperviseur en tant que root - n : le serveur virtuel aura le nom win2003-1 - r : avec 1024 Ko de RAM --vcpus=2 : et deux processeurs virtuels -f : dans le fichier win2003-1.qcow2 (en fait, je range les VM dans /home/vm/) -s : fichier qui aura une taille de 12 Go -c : pour donner le fichier source, l'image ISO de l'OS à installer --vnc : active une console vnc pour contacter le guest (port 5900) --noautoconsole : pour empêcher la tentative de connexion à la console immédiatement à partir de l'hôte --os-type : windows pour spécifier un windows --os-variant : pour optimiser le fonctionnement pour windows 2003 --accelerate : pour utiliser l'accélération matérielle KVM --network=bridge : pour fonctionner en mode bridge (voir conf en bas de page) --keymap : pour avoir clavier français dans la console --hvm : pour forcer la virtualisation complète A partir d'un poste client sur lequel on a installé virt-viewer, on peut alors suivre la procédure d'installation à distance pour faire les choix de configuration de l'assistant d'installation. Attention, il faudra un mot de passe root. sudo virt-viewer --connect qemu+ssh://root@192.168.100.8/system win2003-1 A la fin de l'installation, on obtient sur l'hôte ce message : Installation de l'invité terminée... Redémarrage de l'invité. Ensuite pour la gestion graphique au quotidien : sudo virt-manager --connect qemu+ssh://root@192.168.100.8/system win2003-1 VirtIOles drivers : http://www.linux-kvm.org/page/VirtioWindowsDrivershttp://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers Pour passer de la simple virtualisation à l'hypervision, il faut que le système invité sache qu'il est virtualisé et adresse ses appels systèmes directement à l'hyperviseur, en particulier pour les entrées/sorties lentes : réseau et disque. Pour ceci, on réalise deux choses :
Le réseauSur l'hyperviseur, guest stoppé, on édite la conf du domaine :virsh edit win2003-1 <interface type='bridge'> <mac address='54:52:00:20:e5:51'/> <source bridge='virbr0'/> <target dev='vnet0'/> <model type='virtio'/> </interface> Note: Make sure the first octet in your MAC address is EVEN (eg. 00:) as MAC addresses with ODD first-bytes (eg. 01:) are reserved for multicast communication and can cause confusing problems for you. For instance, the guest will be able to receive ARP packets and reply to them, but the reply will confuse other machines. This is not a KVM issue, but just the way Ethernet works. On démarre le guest : virsh start win2003-1 Le disqueLa procédure est un peu plus délicate. En effet, on ne peut pas modifier dans l'hyperviseur le driver du disque sur lequel est monté l'OS invité, sans quoi celui-ci ne va pas se lancer.On stoppe l'invité : virsh shutdown win2003-1 On crée d'abord sur l'hyperviseur une deuxième image disque qui va ne servir qu'à installer les drivers virtIO sur l'invité. kvm-img create /home/jerome/tmpHD.qcow2 100M virsh edit win2003-1 <disk type='file' device='disk'> <source file='/home/jerome/tmpHD.qcow2'/> <target dev='hda' bus='virtio'/> </disk> virsh start win2003-1 Il suffit alors d'éteindre l'invité : virsh shutdown win2003-1 virsh edit win2003-1 <disk type='file' device='disk'> <source file='/home/jerome/win2003-1.qcow2'/> <target dev='hda' bus='virtio'/> </disk> On obtient à la fin dans le gestionnaire de périphériques ceci :
Le réseau en mode bridgeréf : https://help.ubuntu.com/community/KVM/Networkinget conseils d'Anthony Hinsinger du projet vi4rt : https://redmine.univ-pau.fr/projects/show/vi4rt L'idée est de placer la ou les machine(s) virtuelle(s) sur le même réseau que l'hyperviseur. Pour cela, il faut créer un pont (bridge) virtuel auquel nous allons connecter la, ou les, interface(s) virtuelle(s) ainsi que l'interface physique de l'hyperviseur. On donne l'IP initiale de l'hyperviseur au bridge virbr0 dans /etc/network/interfaces pour une conf du bridge en DHCP : pour une conf du bridge avec adresse fixe : Et on n'oublie pas de relancer le réseau sur l'hyperviseur :
|