Kvm Config xml
Config xml complète standard[modifier]
Le nom des interfaces réseaux "source bridge" est le vrai nom utilisé sur l'hyperviseur. Si dans le fichier xml la vm s appelle www.free; le fichier xml devra s appeler www.free.xml.
<domain type='kvm'>
<name>vm-technique1.ods-lamp</name>
<uuid>288cc51e-d5d3-4102-be9a-8eba0b208def</uuid>
<memory>2097152</memory>
<currentMemory>2097152</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch='x86_64' machine='rhel6.1.0'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<!-- Pour que la vm linux puisse être à la bonne heure
-->
<clock offset='utc'/>
<!-- Pour que la vm windows puisse être à la bonne heure
<clock offset='localtime'/>
-->
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/volnode02/vm-technique1'/>
<target dev='vda' bus='virtio'/>
</disk>
<controller type='ide' index='0'>
</controller>
<interface type='bridge'>
<mac address='00:16:3e:01:d6:db'/>
<source bridge='admin'/>
<model type='virtio'/>
</interface>
<interface type='bridge'>
<mac address='00:16:3e:01:d6:02'/>
<source bridge='backup'/>
<model type='virtio'/>
</interface>
<interface type='bridge'>
<mac address='00:16:3e:01:d6:01'/>
<source bridge='br0'/>
<model type='virtio'/>
</interface>
<serial type='pty'>
<target port='0'/>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' keymap='fr'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<video>
<model type='cirrus' vram='9216' heads='1'/>
</video>
<memballoon model='virtio'>
</memballoon>
</devices>
</domain>
Config xml vm en cluster[modifier]
Dans le cas de vm en cluster, il faut préciser une option supplémentaire pour que le live migration puisse fonctionner (pour tout les types de disque : classique, swap ou cdrom) : <driver name='qemu' type='raw' cache='none'/>
Cpu[modifier]
Par défaut, on peut juste mettre comme valeur <vcpu>1</vcpu> pour indiquer le nombre de cpu que va utiliser la vm. Mais si l'on veut spécifier un id de cpu spécifique, ou assigner un cpu dédié à une vm et un autre cpu dédié à d'autres vm car on n'a pas assez de cpu pour toutes nos vm, il faut alors supprimer ce parametre pour le remplacer par un autre (plus d'option sur http://libvirt.org/formatdomain.html#elementsCPUAllocation)
Ici on dit à la vm d'utiliser le cpu id 7, et de ne prendre que 1 cpu
<vcpu <placement='static' cpuset="7">1</vcpu>
Ici on dit à la vm d'utiliser les cpu 1 à 4 et le 6, mais pas le 3 (le ^ exclus)
<vcpu placement='static' cpuset="1-4,^3,6" current="1">2</vcpu>
Pour avoir les infos cpu de la vm : https://{{SERVERNAME}}/index.php/Kvm#Commande_virsh
Disque et fichier img[modifier]
En tant que disque on considère tout les /dev/sdX ou /dev/hdX ainsi que des LV avec lvm
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/vgtest1/lvtest1'/>
<target dev='vda' bus='virtio'/>
<!-- Pour utiliser l'émulation ide moins performante
<target dev='hdX' bus='ide'/>
-->
</disk>
Pour les fichiers img :
<disk type='file' device='disk'>
<driver name='qemu' type='raw'/>
<source file='/data/images/virtual64.agarik.com.img'/>
<target dev='vda' bus='virtio'/>
<!-- Pour utiliser l'émulation ide moins performante
<target dev='hdX' bus='ide'/>
-->
</disk>
Montage fichier Iso & Cdrom[modifier]
Pour faire booter la vm sur un fichier Iso ou sur le cdrom de l'hyperviseur, il faut modifier "<boot dev='hd'/>" en "<boot dev='cdrom'/>"
Pour monter un cdrom mis dans l hyerviseur. Si on met la config ci dessous, lorsque l on insert un dvd dans l hyperviseur (et / ou que l'on change de dvd), il n'est pas nécessaire de
rebooter la vm, juste faire un refresh dans la vm sur le lecteur
<disk type='block' device='cdrom'>
<driver name='qemu' type='raw'/>
<source dev='/dev/sr0'/> (ou /dev/xxx suivant l os et l hyperviseur)
<target dev='hdc' bus='ide'/> (ou hdx suivant la configuration de la vm)
<readonly/>
</disk>
Pour monter un fichier iso
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/home/centos.iso'/>
<target dev='hdc' bus='ide'/> (hdx, sdX suivant l hote de la vm)
<readonly/>
</disk>
Montage / démontage à chaud d'un fichier iso[modifier]
La vm testkvm.agarik.com (linux) est déja lancée, et nous avons ceci dans son fichier xml :
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file=''/>
<target dev='hdc' bus='ide'/>
<readonly/>
<address type='drive' controller='0' bus='1' unit='0'/>
</disk>
Pour monter un fichier iso dans le cdrom de la vm : virsh attach-disk testvm.agarik.com /gparted-live-0.16.1-1-i486.iso hdc --type cdrom --mode readonly
Pour monter cdrom de l'hyperviseur : virsh attach-disk testvm.agarik.com /dev/sr0 hdc --type cdrom
Pour le démonter (ne pas oublier avant de démonter le cdrom dans la vm) : virsh attach-disk virtual64.agarik.com "" hdc --type cdrom --mode readonly (en fait on n'attache rien)
Montage / démontage à chaud d'une interface réseau[modifier]
La vm testkvm.agarik.com est deja lancée, dans son fichier xml on a qu'une seule interface réseau (eth0 sous la vm) et on veut en mettre une deuxième (ici prive est le nom de l'interface bridge)
Pour ajouter l'interface : virsh attach-interface testkvm.agarik.com bridge prive
Pour la supprimer : virsh detach-interface testkvm.agarik.com bridge --mac 52:54:00:5F:9F:58 (faire un ifconfig -a sous la vm pour voir la mac)