virsh nodeinfo
virsh list | awk 'NR>2 && $1+0>0 {print $1}' | xargs -I{} virsh dominfo {} | grep "CPU(s):" | awk '{sum += $2} END {print sum+0}'
virsh nodeinfo
virsh list | awk 'NR>2 && $1+0>0 {print $1}' | xargs -I{} virsh dominfo {} | grep "CPU(s):" | awk '{sum += $2} END {print sum+0}'
1) Pour commencer nous allons arrêter le domaine que nous souhaitons migrer
virsh shutdown nom_VM
ou si elle ne repond pas
virsh destroy nom_VM
2) Sur l’hyperviseur source, nous allons exporter la configuration du domaine dans un fichier xml:
virsh dumpxml nom_VM > nom_VM.xml
3 ) Toujours sur l’hyperviseur source, on copie le ou les fichiers disques du domaine que l’on souhaite migrer, depuis son emplacement dans /var/lib/libvirt/images vers le même répertoire sur l’hyperviseur de destination.
scp -p /var/lib/libvirt/images/nom_VM.qcow2 hyperviseur_destination:/var/lib/libvirt/images/
rsync -avz --progress /var/lib/libvirt/images/nom_VM.qcow2 hyperviseur_destination:/var/lib/libvirt/images/
Si le chemin du disque est différent sur l’hyperviseur de destination, il faudra le modifier le fichier xml générer dans l’étape précédente pour que cela pointe au bon endroit.
4 ) On copie également notre fichier XML sur l’hyperviseur de destination
scp -p nom_VM.xml hyperviseur_destination:/tmp/
5) On intègre le domaine dans KVM à l’aide de notre fichier xml:
virsh define /tmp/nom_VM.xml
6) Il ne reste plus qu’a démarrer notre domaine
virsh start nom_VM
virsh list # VM running sur la destination virsh list --all # VM absente ou "shut off" sur la source (tu peux l’undefine après)
virsh undefine nom_VM rm nom_VM.xml /var/lib/libvirt/images/nom_VM.qcow2
On commence par lister tous nos domaines:
virsh list --all
ID Nom État
----------------------------------------------------
- Centreon fermé
- generic fermé
- Ubuntu fermé
- win10 fermé
Ici nous voulons faire un snapshot du domaine « Ubuntu », nous allons donc regarder si il y a des snapshot existant pour ce domaine:
virsh snapshot-list --domain Ubuntu
Nom Creation Time État
------------------------------------------------------------
On vérifie si le fichier disque est bien au format qemu/qcow2:
virsh dumpxml Ubuntu | grep -i qemu
<driver name='qemu' type='qcow2' cache='none'/>
<driver name='qemu' type='qcow2'/>
Pour un domaine éteint:
virsh snapshot-create-as --domain Ubuntu --name "Snapshot_test" --description "Snapshot de test"
Domain snapshot Snapshot_test created
Pour un domaine en fonctionnement:
virsh snapshot-create-as --domain Ubuntu --name "Snapshot_test" --description "Snapshot de test" --live
Domain snapshot Snapshot_test created
On peut maintenant voir notre snapshot:
virsh snapshot-list --domain Ubuntu
Nom Creation Time État
------------------------------------------------------------
Snapshot_test 2018-03-14 20:39:53 +0100 shutoff
Pour restaurer le snapshot:
virsh shutdown --domain Ubuntu
virsh snapshot-revert --domain Ubuntu --snapshotname Snapshot_test --running
Pour supprimer le snapshot:
virsh snapshot-delete --domain Ubuntu --snapshotname Snapshot_test
Domain snapshot Snapshot_test deleted
Lister les vms allumées:
virsh list
Lister toutes les vms:
virsh list --all
Editer le xml d’une vm:
virsh edit nom_vm
Affiche le fichier xml sur la sortie standard:
virsh dumpxml
Manipuler les images disques:
qemu-img
Informations sur une image:
qemu-img info fichier_image
Étendre la taille de l’image:
qemu-img resize fichier_image +tailleG
Éteindre une vm par l’acpi:
virsh shutdown nom_vm
Éteindre une vm en coupant l’alim:
virsh destroy nom_vm
Démarrer une vm:
virsh start vm :
Se connecter à la console d’une vm (pour en sortir « Ctrl+Shift+5"):
virsh console vm :
Commandes distante:
Virsh --connect qemu+ssh://nom_hyperviseur/system nom_commande
virt-viewer --connect qemu+ssh://nom_hyperviseur/system nom_vm
Bien sur il faut un accès ssh à l’hyperviseur (et le mieux est de mettre sa clé).
Comment étendre un disque (si il n’y a pas LVM …)?
1) Éteindre la vm :
virsh shutdown vm
2) Sauvegarde de l’image disque :
cp -p fichier_image fichier_image.bak
3) Étendre l’image disque :
qemu-img resize fichier_image +tailleG
3) Démarrer la vm :
virsh start vm
4) Arrêter les services et démonter la partition
5) Avec fdisk (!!!) : détruire la partition, la recréer
6) e2fsck -f /dev/partition
7) resize2fs /dev/partition
8) e2fsck -f /dev/partition
9) remonter et démarrer les services