KVM en pratique : garder l’essentiel sous la main

Création d’une VM debian 13 dans le répertoire /data/VM

# virt-install   --name debian13   --ram 2048   --vcpus 2   --disk path=/data/VM/debian13.qcow2,size=50   --cdrom /data/VM/debian-13.2.0-amd64-netinst.iso   --os-type linux   --os-variant debian12   --network bridge=virbr0   --graphics vnc

Cloner une VM existante

# virt-clone --original debian13 --name debian-ftp --file /data/VM/debian13-ftp.qcow2


Faire la liste des machines

albert@Boo:~$ virsh list --all
 Id   Name         State
-----------------------------
 -    debian-ftp   shut off
 -    debian13     shut off

Démarrer une machine virtuelle

albert@Boo:~$ virsh start debian13
Domain 'debian13' started

Eteindre une machine virtuelle

albert@Boo:~$ virsh shutdown debian13
Domain 'debian13' is being shutdown

Forcer une machine virtuelle à s’éteindre

albert@Boo:~$ virsh shutdown debian13
Domain 'debian13' is being shutdown

Redémarrer une machine virtuelle

albert@Boo:~$ virsh reboot debian13
Domain 'debian-ftp2' is being rebooted

Se connecter à une machine virtuelle en mode console

virt-viewer debian13

Modifier la configuration réseau pour que l’interface de la machine virtuelle soit bridgée sur l’hote.
L’hote est une debian avec network-manager.

Configuration d’un bridge

# nmcli connection add type bridge ifname br0 con-name br0
# nmcli connection add type bridge-slave ifname enp0s31f6 master br0
# nmcli connection up br0

Puis configuration de l’interface de la VM

$ virsh edit debian13

<interface type='bridge'>
      <mac address='52:54:00:5b:db:78'/>
      <source bridge='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </interface>

Pour info, configuration IP de l’hote suite à la modification

albert@Boo:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue 
2: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    inet 192.168.1.192/24 brd 192.168.1.255 scope global dynamic noprefixroute br0

Suspendre et reprendre une VM

albert@Boo:~$ virsh list
 Id   Name          State
-----------------------------
 1    debian-ftp2   running

albert@Boo:~$ virsh suspend debian-ftp2
Domain 'debian-ftp2' suspended

albert@Boo:~$ virsh list
 Id   Name          State
----------------------------
 1    debian-ftp2   paused

albert@Boo:~$ virsh resume debian-ftp2
Domain 'debian-ftp2' resumed

albert@Boo:~$ virsh list
 Id   Name          State
-----------------------------
 1    debian-ftp2   running

albert@Boo:~$ 

Créer un snapshot

albert@Boo:~$ virsh snapshot-create-as debian-ftp2 debian-ftp2-before-docker
Domain snapshot debian-ftp2-before-docker created
albert@Boo:~$ 

Afficher la liste des snapshots d’une VM

albert@Boo:~$ virsh snapshot-list --domain debian-ftp2
 Name                        Creation Time               State
------------------------------------------------------------------
 debian-ftp2-before-docker   2026-01-01 21:43:15 +0100   running

Restorer un snapshot

albert@Boo:~$ virsh snapshot-revert debian-ftp2 debian-ftp2-before-docker
Domain snapshot debian-ftp2-before-docker reverted

Supprimer un snapshot

albert@Boo:~$ virsh snapshot-delete debian-ftp2 debian-ftp2-before-docker
Domain snapshot debian-ftp2-before-docker deleted

albert@Boo:~$ virsh snapshot-list --domain debian-ftp2
 Name   Creation Time   State
-------------------------------

albert@Boo:~$ 

Afficher les ressources d’une VM

albert@Boo:~$ virsh domstats debian-ftp2
Domain: 'debian-ftp2'
  state.state=1
  state.reason=5
  cpu.time=32017524000
  cpu.user=25061525000
  cpu.system=6955998000
  cpu.cache.monitor.count=0
  cpu.haltpoll.success.time=330095297
  cpu.haltpoll.fail.time=131280790
  balloon.current=2097152

Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *