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 :
- l'éteindre
- la supprimer des vms existantes
- 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.