Qemu-guest-agent: Difference between revisions
mNo edit summary |
m (Add debugging with socat for qemu guest agent) |
||
Line 61: | Line 61: | ||
</pre> | </pre> | ||
=== Testing that the communication with the guest agent is working === | |||
The communication with the guest agent takes place over a unix socket located in /var/run/qemu-server/<my_vmid>.gqa | |||
You can test the communication with the socat utility: | |||
socat /var/run/qemu-server/<my_vmid>.qga - | |||
once connected you can issue commands in the form of json key-values | |||
{"execute": "guest-ping"} | |||
will display | |||
{"return": {}} | |||
if the qemu-guest-agent is correctly runnning in the VM, and nothing if the communication could not be established | |||
== See Also == | == See Also == |
Revision as of 15:11, 11 July 2017
Introduction - What is qemu-guest-agent
The qemu-guest-agent is a helper daemon, which is installed in the guest. It is used to exchange information between the host and guest, and to execute command in the guest.
In Proxmox VE, the qemu-guest-agent is used for mainly two things:
- To properly shutdown the guest, instead of relying on ACPI commands or windows policies
- To freeze the guest file system when making a backup (on windows, use the volume shadow copy service VSS).
Installation
Host
You have to enable the guest-agent per VM, either set it in the GUI to "Yes" under options (see screenshot):
or via CLI:
qm set VMID -agent 1
Guest
Linux
On Linux you have to simply install the qemu-guest-agent, please refer to the documentation of your system.
We show here the commands for Debian/Ubuntu and Redhat based systems:
on Debian/Ubuntu based systems (with apt-get) run:
apt-get install qemu-guest-agent
and on Redhat based systems (with yum):
yum install qemu-guest-agent
Windows
First you have to download the virtio-win driver iso (see Windows VirtIO Drivers).
Then install the virtio-serial driver:
- Attach the ISO to your windows VM (virtio-*.iso)
- Go to the windows Device Manager
- Look for "PCI Simple Communications Controller"
- Right Click -> Update Driver and select on the mounted iso in DRIVE:\vioserial\<OSVERSION>\ where <OSVERSION> is your Windows Version (e.g. 2k12R2 for Windows 2012 R2)
After that, you have to install the qemu-guest-agent:
- Go to the mounted ISO in explorer
- Execute the installer with double click (either qemu-ga-x64.msi (64-bit) or qemu-ga-x86.msi (32-bit)
After that the qemu-guest-agent should be up and running. You can validate this in the list of Window Services, or in a PowerShell with:
PS C:\Users\Administrator> Get-Service QEMU-GA Status Name DisplayName ------ ---- ----------- Running QEMU-GA QEMU Guest Agent
Testing that the communication with the guest agent is working
The communication with the guest agent takes place over a unix socket located in /var/run/qemu-server/<my_vmid>.gqa You can test the communication with the socat utility:
socat /var/run/qemu-server/<my_vmid>.qga -
once connected you can issue commands in the form of json key-values
{"execute": "guest-ping"}
will display
{"return": {}}
if the qemu-guest-agent is correctly runnning in the VM, and nothing if the communication could not be established