Table des matières
Création d'un serveur virtuel avec kvm et libvirt
La différence entre les serveurs virtuels de prod et les serveurs de test réside dans le fait que dans le cas de la prod les serveurs attaquent directement une partition physique alors que dans le cas d'un serveur de test on le fait mapper un fichier car les besoins en performance ne sont pas réelle.
un peu de doc avant de commencer … http://www.vogelweith.com/debian_server/14_kvm.php
et c'est parti
Pour les serveurs de prod
Installation de Libvirt pour gérer des machines virtuelles KVM
# apt-get install libvirt-bin kvm qemu virtinst
bon on va commencer par créer une partition lvm dédié :
lvcreate -L 5G -n Le-Nom-De-La-Machine vg0
Ensuite nous allons créer la machine virtuelle avec la commande
virt-install --connect qemu:///system -n Le-Nom-De-La-Machine -r 512 --vcpus=2 \ -f /dev/vg0/Le-Nom-De-La-Machine -c /root/debian-505-amd64-businesscard.iso --vnc \ --noautoconsole --os-type linux --os-variant debianLenny --accelerate \ --network=bridge:br0 --hvm --keymap=fr
voila une machine de créé avec comme nom Le-Nom-De-La-Machine, 512 Mo de mémoire, elle est mappé sur le disque /dev/vg0/Le-Nom-De-La-Machine, elle boot sur l'iso, sa carte reseau est connecté au bridge de l'hote et le deport ecran,clavier se fait via vnc
pour se connecter le mieux est d'utiliser le virtmanager et se connecter sur l'hote.
Pour les serveurs de test
Null besoin de créer une partition car on stocke la machine dans un fichier
Par contre nous allons créer le fichier au format qcow2 car c'est un format compressé.
Un des avantages de se format est qu'il compresse l'image disque et donc le fichier ne prend pas toute la place .
qemu-img create -f qcow2 /data/VMdisk.qcow2 10G
Format QCOW2
Ce format est spécifique à QEMU. C'est bien sûr un format à taille variable (indépendamment du système de fichiers), et il dispose de fonctionnalités avancées permettant notamment de gérer des snapshots à chaud.
L'un des inconvénients est la difficulté à monter une image qcow2.
Format RAW
L'avantage de ce format est sa simplicité ! C'est tout simplement une suite d'octets.. Cela permet de monter les partitions facilement (merci kpartx). Sous Linux, grâce au sparse file, c'est également un format à taille variable.
qemu-img create -f raw /data/VMdisk.img 10G
et ensuite on crée la machine virtuelle
virt-install --connect qemu:///system -n Le-Nom-De-La-Machine -r 512 --vcpus=2 \ -f /data/VMdisk.qcow2 -c /root/debian-505-amd64-businesscard.iso --vnc \ --noautoconsole --os-type linux --os-variant debianLenny --accelerate \ --network=bridge:br0 --hvm --keymap=fr
Administration et installation des machines virtuelles
Installation de virt-manager
sur votre post d'administration vous installez le paquet virt-manager
aptitude install virt-manager
et vous pouvez le lancer par le menu applications →outils systèmes → Gestionnaires de machines virtuelles
Une fois l'application lancé, vous pourrez vos connecter aux serveurs physiques en ajoutant l'adresse ip par le menu fichier→ add connection
laisser le menu hyperviseur sur kvm
dans le menu connexion choisissez le tunnel ssh
et dans le menu nom d'hote mettez l'adresse ip du serveur physique que vous voulez administrer et valider
il n'y a plus qu'à double cliquer sur l'ip de la machine pour voir apparaitre les machines virtuelles. et il suffit de double cliquer sur les machines virtuelles pour en prendre le controle. C'est bon pour l'install, mais après il vaut mieux passer par le ssh moin gourmand (enfin je crois)
Exploitation
Exemple de VM avec 2 partitions
Les étapes d'installation d'une machine virtuelle est semblable à l'installation d'une machine machine sauf que la plupart des actions sont aussi virtualisées comme :
- Monter une machine virtuelle ( taille du disque, taille de la mémoire, processeur )
- Brancher le lecteur dans la machine
- Insérer un CD-ROM
- Choisir le périphérique à démarrer en premier
- Démarrer sur le CD pour lancer l'installation
- Enlever le CD pour lancer la machine installée
—
Fichier d'une VM avec 2 partitions et un démarrage sur le disque dur :
<domain type='kvm'> <name>nom_de_la_machine</name> <memory>524288</memory> <currentMemory>524288</currentMemory> <vcpu>2</vcpu> <os> <type arch='x86_64' machine='pc-0.12'>hvm</type> <!-- hd pour démarrer sur disque dur, cdrom pour le cdrom --> <boot dev='hd'/> </os> <features> <acpi/> <apic/> <pae/> </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/bin/kvm</emulator> <!-- Exemple disque sur partition LVM --> <disk type='block' device='disk' > <driver name='qemu' /> <source dev='/mnt/disk/fichier_du_disque' /> <target dev='vda' bus='virtio' /> </disk> <!-- Exemple disque dans un fichier qcow2 --> <disk type='block' device='file'> <driver name='qemu' type="qcow2" /> <source dev='/dev/vg0/newmail_var'/> <target dev='vdb' bus='virtio'/> </disk> <disk type='block' device='cdrom'> <driver name='qemu'/> <target dev='hdc' bus='ide'/> <source file='//root/debian-6.0.0-amd64-netinst.iso'/> <readonly/> </disk> <interface type='bridge'> <mac address='52:54:00:11:bf:eb'/> <source bridge='br0'/> <model type='virtio'/> </interface> <serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target port='0'/> </console> <input type='tablet' bus='usb'/> <input type='mouse' bus='ps2'/> <graphics type='vnc' port='5907' listen="IP_Hote" keymap='fr'/> <video> <model type='cirrus' vram='9216' heads='1'/> </video> </devices> </domain>
Demandez le démarrage sur le cdrom dans la balise boot et spécifiez l'image iso.
La commande suivante :
virsh define /etc/libvirt/qemu/xxxx.xml
met au courant qemu les changements (où xxx.xml est le fichier de configuration de la VM). Sans cela, vous redémarrez la VM dans la configuration précédente. A moins de lancer la machine virtuelle par :
virsh create /etc/libvirt/qemu/xxxx.xml