Newsflash

2014/12/26 : Le papier "SDN based architecture for IoT and improvement of the security", O. Flauzac, C. Gonzales, A. Hachani et F. Nolot vient d'être accepté pour publication à la conférence internationale IEEE AINA 2015 / PITSac workshop.

 

Libvirt : vous ne connaissez pas ? Cela permet de contrôler intégralement des machines virtuelles sans avoir besoin d'être en mode interactif. Pour utiliser cette API, vous avez besoin d'installer les packages libvrt-bin et python-libvirt.

Nous considérons dans ce mini-tutorial sur libvirt que vous avez une image Qemu. Nous allons utiliser les images réalisées lors des tutorials précédents (installation de machines virtuelles avec kvm ou qemu et utilisation de disques relatifs avec kvm et qemu)

  1. Création du fichier de configuration
  2. Pour pouvoir utiliser cette API, vous devez lancer votre machine virtuelle via l'API. Pour cela, on utilise la commande virsh. Pour chaque machine virtuelle, vous devrez créer un fichier XML de configuration détaillant les caractéristiques de votre machine virtuelle : type d'architecture processeur, nombre de processeur, quantité mémoire maximale, nom du fichier contenant l'image de votre machine virtuelle, ... . Pour illustrer, nous allons utiliser l'image ubuntu-9.04_x86.img et nous utiliserons le fichier de configuration suivant :

    <domain type='kvm'>
    <name>ubuntu</name>
    <memory>512000</memory>
    <currentMemory>256000</currentMemory>
    <vcpu>1</vcpu>
    <os>
    <type arch='i686' machine='pc'>hvm</type>
    </os>
    <features>
    <acpi default='on' toggle='yes'/>
    <apic default='on' toggle='no'/>
    </features>
    <on_poweroff>destroy</on_poweroff>
    <on_reboot>restart</on_reboot>
    <on_crash>restart</on_crash>
    <video type='vga' nvram='8192' heads='1'>
    <acceleration accel3d='yes'/>
    </video>
    <devices>
    <emulator>/usr/bin/kvm</emulator>
    <disk type='file' device='disk'>
    <source file='/usr/local/qemu-image/ubuntu-9.04_x86.img'/>
    <target dev='hda'/>
    </disk>
    <interface type='user'>
    </interface>
    <input type='tablet' bus='usb'/>
    <graphics type='vnc' port='5901' keymap='fr'/>
    </devices>
    </domain>

    Ce fichier aura pour nom ubuntu-x86.xml. Dans la configuration, vous pouvez voir que nous utiliserons vnc, sur le port 5901 pour accéder à cette machine virtuelle.

  3. Lancement de la machine virtuelle
  4. Le lancement d'une machine virtuelle se faire par virsh create ubuntu-x86.xml. Vous pouvez contrôler que votre machine est exécutée en faisant un virsh list. Cela va lister toutes les machines actuellement en fonctionnement. Il ne vous reste plus qu'à faire un vncviewer localhost:1 pour vous connecter à votre machine virtuelle.
  5. Lancement de la machine virtuelle
  6. Le lancement d'une machine virtuelle se faire par virsh create ubuntu-x86.xml. Vous pouvez contrôler que votre machine est exécutée en faisant un virsh list. Cela va lister toutes les machines actuellement en fonctionnement. Il ne vous reste plus qu'à faire un vncviewer localhost:1 pour accéder à votre machine virtuelle.
  7. Création d'un snapshot
  8. Attention, lors de la réalisation de votre snapshot, votre machine virtuelle sera arrêtée. Il vous faudra la relancer ensuite. Pour faire un snapshot, vous aurez besoin de connaitre le nom de votre machine, c'est à dire la valeur de l'élément <name> de votre fichier XML de configuration. Sinon, vous faites un virsh list. Ma machine s'appelle ubuntu donc pour faire mon snapshot, virsh save ubuntu ubuntu.dump

    Si vous refaites un virsh list, vous pourrez constater que la machine virtuelle a été détruite. Il vous faudra la relancer.

  9. Exécuter un snapshot
  10. L'objectif de faire des snapshots, c'est de pouvoir rapidement avoir une machine virtuelle opérationnelle, dans un état donné. Pour faire une restauration d'une machine virtuelle à partir d'un snapshot, tapez la commande suivante : virsh restore ubuntu.dump. Un virsh list permet de constater que la machine est bien restauré et un vncviewer localhost:1 vous permettra d'en prendre le contrôle.
  11. Arrêter une machine virtuelle
  12. L'arrêt peut se faire de plusieurs manières. La plus soft c'est virsh shutdown ubuntu. Sur une ubuntu, cela ouvre automatiquement une fenêtre dans votre machine virtuelle vous demandant ce que vous voulez faire, Eteindre, Redémmarrer, ... Si vous ne faites rien, votre machine virtuelle s'arrêtera au bout de 60 secondes. Autre solution plus violente : virsh destroy ubuntu. Cela arrête instantanément votre machine virtuelle. A utiliser si le shutdown ne donne rien.