Virtualisation avec OpenStack pour TP GIS : Différence entre versions

De Wiki d'activités IMA
Ligne 22 : Ligne 22 :
 
     bs=1024 : Read and write 1024 BYTES bytes at a time.
 
     bs=1024 : Read and write 1024 BYTES bytes at a time.
 
     count=524288 : Copy only 523288 BLOCKS input blocks.
 
     count=524288 : Copy only 523288 BLOCKS input blocks.
 +
====Fichier de configuration libvirt====
 +
Une VM gérée par libvirt est définie par un fichier XML.
 +
ici une exemple de XML
 +
    <domain type='kvm'>
 +
<name>lisa</name>
 +
<uuid>d20d66dc-4d97-452c-8bea-5461a2f717fb</uuid>
 +
<memory>4194304</memory>
 +
<currentMemory>4194304</currentMemory>
 +
<vcpu>4</vcpu>
 +
<!--
 +
<cpu mode='custom' match='exact'>
 +
  <model fallback='allow'>core2duo</model>
 +
  <feature policy='require' name='vmx'/>
 +
</cpu>
 +
-->
 +
<cpu mode='custom' match='exact'>
 +
  <model fallback='allow'>SandyBridge</model>
 +
  <vendor>Intel</vendor>
 +
  <topology sockets='2' cores='1' threads='2'/>
 +
  <feature policy='require' name='vmx'/>
 +
</cpu>
 +
 +
<os>
 +
<type>hvm</type>
 +
<!--<boot dev="cdrom"/>-->
 +
</os>
 +
<features>
 +
<acpi/>
 +
</features>
 +
<clock offset='utc'/>
 +
<on_poweroff>destroy</on_poweroff>
 +
<on_reboot>restart</on_reboot>
 +
<on_crash>destroy</on_crash>
 +
<devices>
 +
<emulator>/usr/bin/kvm</emulator>
 +
 +
<!--  DISKS  -->
 +
<disk type="file" device="disk">
 +
<driver name="qemu" type="qcow2"/>
 +
<source file="/home/pifou/ylin/lisa/lisa.img"/>
 +
<target dev="vda" bus="virtio"/>
 +
</disk>
 +
 +
 +
<disk type="file" device="disk">
 +
<driver name="qemu" type="raw"/>
 +
<source file="/home/pifou/ylin/lisa/lisaSwap.img"/>
 +
<target dev="vdb" bus="virtio"/>
 +
</disk>
 +
 +
<!--
 +
<disk type="file" device="cdrom">
 +
<driver name="qemu" type="raw"/>
 +
<source file="/home/pifou/ylin/debian-8.4.0-amd64-netinst.iso"/>
 +
<target dev="hdc" bus="ide"/>
 +
<readonly/>
 +
</disk>
 +
-->
 +
 +
<controller type="ide" index="0">
 +
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x1"/>
 +
</controller>
 +
 +
<interface type='bridge'>
 +
<!--<mac address='52:54:aa:00:f0:00'/>-->
 +
<source bridge='br0'/>
 +
</interface>
 +
 +
<interface type='bridge'>
 +
<!--<mac address='52:54:aa:00:f0:01'/>-->
 +
<source bridge='br0'/>
 +
</interface>
 +
 +
 +
<input type='mouse' bus='ps2'/>
 +
<graphics type='vnc' port='-1' autoport="yes" listen='127.0.0.1'/>
 +
</devices>
 +
</domain>

Version du 27 mai 2016 à 15:54

Virtualiser dans une VM

Création de une VM avec kvm et libvirt

Kernel-based Virtual Machine (KVM) est un logiciel hyperviseur pour Linux. Il fonctionne originellement sur les processeurs à architectures x86, x86_64 disposant des instructions de Virtualisation Intel VT ou AMD-V. QEMU est capable, grâce à son module KQEMU (K pour Kernel, « noyau » en anglais), d'exécuter du code machine directement sur le processeur hôte afin d'accélérer l'émulation.

libvirt est une bibliothèque, une API, un daemon et des outils en logiciel libre de gestion de la virtualisation. Elle est notamment utilisée par KVM, Xen, VMware ESX, QEMU et d'autres solutions de virtualisation. Elle est notamment utilisée par la couche d'orchestration des hyperviseurs.

Les paquetages à installer installer:

   apt-get install qemu-kvm libvirt-bin

Créer une image de disque

Pour commencer il faut créer les image de disque dans les quelles les VMs stockeront les donnée. Pour créer une image de disque de format RAW il est suffit de lancer le command

   qemu-img create -f raw disk.img 8G

Il est aussi possible de créer une image de format QCOW2 qui supporter les technologies "copy on write" et snapshot pour les VMs.

   qemu-img create -f qcow2 disk.img 8G

Il est pratique de créer une image de swap

   dd if=/dev/zero of=/swapfile1 bs=1024 count=524288

Comm:

   if=/dev/zero : Read from /dev/zero file. /dev/zero is a special file in that provides as many null characters.
   of=/swapfile1 : Read from /dev/zero write storage file to /swapfile1.
   bs=1024 : Read and write 1024 BYTES bytes at a time.
   count=524288 : Copy only 523288 BLOCKS input blocks.

Fichier de configuration libvirt

Une VM gérée par libvirt est définie par un fichier XML. ici une exemple de XML

    <domain type='kvm'> 

<name>lisa</name> <uuid>d20d66dc-4d97-452c-8bea-5461a2f717fb</uuid> <memory>4194304</memory> <currentMemory>4194304</currentMemory> <vcpu>4</vcpu> <cpu mode='custom' match='exact'>

 <model fallback='allow'>SandyBridge</model>
 <vendor>Intel</vendor>
 <topology sockets='2' cores='1' threads='2'/>
 <feature policy='require' name='vmx'/>

</cpu>

<os> <type>hvm</type> </os> <features> <acpi/> </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <devices> <emulator>/usr/bin/kvm</emulator>

<disk type="file" device="disk"> <driver name="qemu" type="qcow2"/> <source file="/home/pifou/ylin/lisa/lisa.img"/> <target dev="vda" bus="virtio"/> </disk>


<disk type="file" device="disk"> <driver name="qemu" type="raw"/> <source file="/home/pifou/ylin/lisa/lisaSwap.img"/> <target dev="vdb" bus="virtio"/> </disk>


<controller type="ide" index="0"> <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x1"/> </controller>

<interface type='bridge'> <source bridge='br0'/> </interface>

<interface type='bridge'> <source bridge='br0'/> </interface>


<input type='mouse' bus='ps2'/> <graphics type='vnc' port='-1' autoport="yes" listen='127.0.0.1'/> </devices> </domain>