QEMU Guest Agent is a daemon program that is installed on a VM. QEMU Guest Agent provides execution of commands on VMs and information exchange between VMs and the cluster node.

VMmanager uses QEMU Guest Agent to change network settings without rebooting. If the QEMU Guest Agent is unavailable for the platform for five minutes, VMmanager will reboot the VM to apply the settings.

To manage VM with CentOS OS, guest-exec function should be enabled in QEMU Guest Agent.

To avoid an unplanned reboot of the VM, you can check the status of the QEMU Guest Agent before changing the settings. This can be done on a VM or the cluster node.

Diagnostics


  1. Connect to the VM via SSH.

  2. Define the status of the QEMU Guest Agent:

    systemctl status qemu-guest-agent
    CODE

     Examples of responses:

    QEMU Guest Agent is running

    ● qemu-guest-agent.service - QEMU Guest Agent
       Loaded: loaded (/usr/lib/systemd/system/qemu-guest-agent.service; enabled; vendor preset: enabled)
       Active: active (running) since Вт 2021-08-10 05:25:54 UTC; 1 weeks 3 days ago
    CODE

    QEMU Guest Agent is stopped

    ● qemu-guest-agent.service - QEMU Guest Agent
       Loaded: loaded (/usr/lib/systemd/system/qemu-guest-agent.service; enabled; vendor preset: enabled)
       Active: inactive (dead) since Пт 2021-08-20 06:27:16 UTC; 2s ag
    CODE

    QEMU Guest Agent is not installed

    Unit qemu-guest-agent.service could not be found.
    CODE

Restoring work


If QEMU Guest Agent is not installed

  1. Connect to the VM via SSH.
  2. Install QEMU Guest Agent:

    CentOS

    yum install qemu-guest-agent
    CODE

    Debian, Ubuntu

    apt install qemu-guest-agent
    CODE
  3. Add QEMU Guest Agent to the autostart:

    systemctl enable --now qemu-guest-agent
    CODE
  4. Check the status of QEMU Guest Agent:

    systemctl status qemu-guest-agent
    CODE
  5. Check the status of the SELinux service:

    sestatus
    CODE

    If the status is different from disable:

    1. Disable SELinux. Replace the below line in the /etc/selinux/config file

      SELINUX=enforcing
      CODE

      with

      SELINUX=disabled
      CODE
    2. Reboot the VM.
  6. The file /etc/sysconfig/qemu-ga contains a line the below format

    BLACKLIST_RPC=guest-file-open,guest-file-close,guest-file-read,guest-file-write,guest-file-seek,guest-file-flush,guest-exec,guest-exec-status
    CODE


    1. Mark this line as comment or delete it.
    2. Restart QEMU Guest Agent:

      systemctl restart qemu-guest-agent
      CODE

If QEMU Guest Agent is stopped

  1. Connect to the VM via SSH.
  2. Start QEMU Guest Agent:

    systemctl start qemu-guest-agent
    CODE

If guest-exec function is disabled

  1. Connect to the VM via SSH.
  2. Run the command: 

    sed -i '/BLACKLIST_RPC=/cBLACKLIST_RPC=' /etc/sysconfig/qemu-ga
    BASH
  3. Restart QEMU Guest Agent:

    systemctl restart qemu-guest-agent
    CODE