libvirt
The QEMU guest agent (GA) runs inside the VM Guest and allows the VM Host Server
to run commands in the guest operating system via libvirt. It supports
many functions—for example, getting details about guest file systems,
freezing and thawing file systems, or suspending or rebooting a guest.
QEMU GA is included in the qemu-guest-agent package and is installed, configured, and activated by default on KVM or Xen virtual machines.
QEMU GA includes many native commands that do not have direct libvirt
counterparts. Refer to Section 18.4, “For More Information” to find the
complete list. You can run all of the QEMU GA commands by using
libvirt's general purpose command qemu-agent-command:
virsh qemu-agent-command DOMAIN_NAME '{"execute":"QEMU_GA_COMMAND"}'For example:
tux >sudovirsh qemu-agent-command sle15sp2 '{"execute":"guest-info"}' --pretty { "return": { "version": "4.2.0", "supported_commands": [ { "enabled": true, "name": "guest-get-osinfo", "success-response": true }, [...]
virsh Commands that Require QEMU GA #Edit source
Several virsh commands require QEMU GA for their functionality. Here are
some of them:
virsh guestinfoPrints information about the guest from the guest's point of view.
virsh guestvcpusQueries or changes the state of virtual CPUs from the guest's point of view.
virsh set-user-passwordSets the password for a user account in the guest.
virsh domfsinfoShows a list of mounted file systems within the running domain.
virsh dompmsuspendSuspends a running guest.
libvirt Commands #Edit source
If QEMU GA is enabled inside the guest, a number of virsh subcommands
have enhanced functionality when run in the agent mode.
The following list includes only some examples of them. For a complete list,
see the virsh manual page and search for the agent
string.
virsh shutdown --mode agent and virsh reboot --mode agentThis method of shutting down or rebooting leaves the guest clean for its next run, similar to the ACPI method.
virsh domfsfreeze and virsh domfsthawInstructs the guest to make its file system quiescent: to flush all I/O operations in the cache and leave volumes in a consistent state, so that no checks will be needed when they are remounted.
virsh setvcpus --guestChanges the number of CPUs assigned to a guest.
virsh domifaddr --source agentQueries the QEMU GA for the guest's IP address.
virsh vcpucount --guestPrints information about the virtual CPU counts from the perspective of the guest.
A complete list of commands supported by the QEMU GA is at https://www.qemu.org/docs/master/interop/qemu-ga-ref.html.
The virsh manual page (man 1 virsh) includes
descriptions of the commands that support QEMU GA interface.