Menu Chiudi

Pillola #25: Collegarsi a / Scriptare qemu-monitor per macchine virtuali KVM

L’ambiente di virtualizzazione KVM (o meglio i tools QEMU per la sua gestione) mettono a disposizione una comoda e potente console di gestione, qemu-monitor. Qui di seguito si descrivono un paio di modi alternativi per usarla con profitto.

In proxmox la console è esposta tramite un socket unix in ‘/var/run/qemu-server/’ :

/var/run/qemu-server/<vmid>.mon

Se usate kvm tramite l’interfaccia standalone virt-manager (Su Ubuntu, ad esempio), il socket è:

/var/lib/libvirt/qemu/<nome vm>.monitor

In quest’ultimo caso occorre stoppare il servizio libvirtd ( /etc/init.d/libvirt-bin stop ) che tiene occupato il socket.

Nel caso di pve normalmente la console è rediretta in un’applet java accessibile via
interfaccia web, ma volendo ci si può lavorare direttamente:

1) Interattivamente, usando un programma di emulazione terminale, ad
esempio minicom:basta predisporre in /etc/minicom un file di configurazione come il seguente:

========= /etc/minicom/minirc.<vmid>-mon ====
pu port   unix#/var/run/qemu-server/<vmid>.mon
pu minit
pu mreset
========================================

richiamando

minicom <vmid>-mon

si accede direttamente alla console.

2) Ancora più interessante l’accesso via script, usando il comando “socat”. Esempio:

echo 'info usb' | socat - unix-connect:/var/run/qemu-server/<vmid>.mon

Restituisce lo stato dei device usb collegati alla VM:

QEMU 0.14.0 monitor - type 'help' for more information
(qemu) info usb
Device 0.1, Port 1, Speed 12 Mb/s, Product QEMU USB Tablet
Device 0.2, Port 2, Speed 12 Mb/s, Product QEMU USB Hub

il comando seguente invece collega al volo un disco usb alla macchina:

echo 'usb_add disk:/var/lib/vz/demo1.qcow' | socat - unix-connect:/var/run/qemu-server/<vmid>.mon

Listando si nota il nuovo device ‘QEMU USB MSD’  con id 0.3 :

echo 'info usb' | socat - unix-connect:/var/run/qemu-server/<vmid>.mon

QEMU 0.14.0 monitor - type 'help' for more information
(qemu) info usb
Device 0.1, Port 1, Speed 12 Mb/s, Product QEMU USB Tablet
Device 0.2, Port 2, Speed 12 Mb/s, Product QEMU USB Hub
Device 0.3, Port 2.8, Speed 12 Mb/s, Product QEMU USB MSD

il disco si può scollegare con:

echo 'usb_del 0.3' | socat - unix-connect:/var/run/qemu-server/<vmid>.mon

WordPress Appliance - Powered by TurnKey Linux