Virtualisation avec Fedora 15 KVM et Spice (3/3)

ATTENTION : Cet article à plus de 7 années, il se peut que les infos soient obsolètes ou à adapter aux dernières versions des logiciels.

Pour finir cette première introduction avec la virtualisation sur Fedora 15, voici quelques commandes utiles.

Gérer les vms

Listes les vms

La commande suivante permet de lister les vms actives :

# virsh list

Et celle-ci de lister toutes les vms :

# virsh list --all

 

Démarrer / Arrêter / Détruire une vm

Pour démarrer une vm :

# virsh start nom_vm

Pour arrêter une vm :

# virsh shutdown nom_vm

Pour forcer l’arrêt d’une vm plantée par exemple :

# virsh destroy nom_vm

 

Cloner une vm existante

Il est possible de cloner une vm. Par exemple ici on clone la vm03 en vm05 :

# virt-clone -o vm03 -n vm05 -f /var/lib/libvirt/images/vm05.img

 

Supprimer une vm

Pour supprimer une vm il faut :

  1. l’éteindre
  2. la supprimer des vms existantes
  3. effacer le fichier img ou la partition lvm

 

Pour le point 2 il faut faire :

# virsh undefine nom_vm

 

Editer la configuration d’une vm

Il ne faut pas modifier directement le fichier xml contenant la configuration de la vm. Il faut utiliser l’outils virsh :

# virsh edit nom_vm

On se retrouve dans un éditeur classique (VI par exemple) et on peut éditer le fichier.

 

Créer une vm à partir d’un fichier img existant

Il est possible de récupérer un fichier contenu une vm kvm, cependant il faut pour faire fonctionner cette vm créer le fichier de configuration adéquat. Pour cela on va faire comme ceci en supposant que vm.img est le fichier de la vm récupéré :

# virt-install --name nom_vm --ram 2048 --vcpus 1 --disk path=/var/lib/libvirt/images/vm.img --import --noautoconsole --network=bridge:br0 --graphics spice,port=5901,listen=192.168.37.1 --video cirrus --channel spicevmc,target_type=virtio --soundhw ac97 --os-type=linux --force

 

Monter un fichier img sur le système de fichier

Il peut arriver d’avoir besoins de modifier une information dans une machine virtuelle sans la démarrer avec l’hyperviseur. Il faut impérativement que le fichier img soit un fichier de taille complète et non pas de taille dynamique.

Voici la procédure à suivre :

vm01.img est le fichier que nous voulons monter sur le système de fichier :

# losetup -f
# losetup /dev/loop0 /var/lib/libvirt/images/vm01.img
# yum install kpartx

# kpartx -av /dev/loop0
add map loop0p1 (253:3): 0 1024000 linear /dev/loop0 2048
add map loop0p2 (253:4): 0 19945472 linear /dev/loop0 1026048

# ls -alF /dev/mapper/
total 0
drwxr-xr-x.  2 root root     160 19 avril 15:32 ./
drwxr-xr-x. 20 root root    3680 19 avril 15:32 ../
crw-------.  1 root root 10, 236 19 avril 14:08 control
lrwxrwxrwx.  1 root root       7 19 avril 15:32 loop0p1 -> ../dm-3
lrwxrwxrwx.  1 root root       7 19 avril 15:32 loop0p2 -> ../dm-4
lrwxrwxrwx.  1 root root       7 19 avril 14:08 vg_srvfed15-lv_home -> ../dm-2
lrwxrwxrwx.  1 root root       7 19 avril 14:08 vg_srvfed15-lv_root -> ../dm-1
lrwxrwxrwx.  1 root root       7 19 avril 14:08 vg_srvfed15-lv_swap -> ../dm-0

 

Une difficulté supplémentaire est que nous avons des partitions lvm dans le fichier image. Il faut donc rescanner les volumes groupes disponibles :

# vgscan
Reading all physical volumes.  This may take a while...
Found volume group "vg_vmfedora15" using metadata type lvm2
Found volume group "vg_srvfed15" using metadata type lvm2

# vgchange -ay
2 logical volume(s) in volume group "vg_vmfedora15" now active
3 logical volume(s) in volume group "vg_srvfed15" now active

# mount /dev/vg_vmfedora15/lv_root /mnt/tmp1/

Une fois les manips finies :

# vgchange -an vg_vmfedora15
0 logical volume(s) in volume group "vg_vmfedora15" now active

# kpartx -d /dev/loop0
# losetup -d /dev/loop0

 

Conclusion

Voilà cette première introduction avec la virtualisation kvm et spice terminée.

Il reste encore pas mal de choses à explorer pour devenir un administrateur chevronné sur ces technologies mais l’aventure fut intéressante.

2 Comments

 Add your comment
  1. Un tout petit tips, mais a priori tu peux utiliser kpartx directement sur le fichier image, il va lui même se charger d’associer l’image à un loop device disponible.

    Pour créer le device
    # kpartx -av image.bin
    Pour le supprimer
    # kpartx -dv image.bin

Leave a Comment

Your email address will not be published.