Kvm Config xml

De BlaxWiki
(Redirigé depuis Kvm & config xml)
Aller à la navigationAller à la recherche


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)