QEMU Guest Agent — это программа-демон, которая устанавливается на ВМ. QEMU Guest Agent обеспечивает выполнение команд на ВМ и обмен информацией между ВМ и узлом кластера.
VMmanager использует QEMU Guest Agent чтобы изменять сетевые настройки ВМ без перезагрузки. Если QEMU Guest Agent недоступен для платформы в течение пяти минут, VMmanager перезагрузит ВМ для применения настроек.
Чтобы управлять ВМ с ОС CentOS, в QEMU Guest Agent должна быть включена функция guest-exec.
Чтобы избежать незапланированного перезапуска ВМ, вы можете проверить статус QEMU Guest Agent перед изменением настроек. Это можно сделать на ВМ или узле кластера.
Диагностика на ВМ
- Подключитесь к ВМ по SSH.
-
Определите статус QEMU Guest Agent:
systemctl status qemu-guest-agentПримеры ответов:
QEMU Guest Agent запущен● 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 agoQEMU Guest Agent остановлен● 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 agQEMU Guest Agent не установленUnit qemu-guest-agent.service could not be found.
Диагностика на узле кластера
- Подключитесь к узлу кластера по SSH.
-
Определите статус QEMU Guest Agent:
virsh qemu-agent-command <vm_id>_<vm_name> '{"execute": "guest-info", "arguments": {}}'Пояснения к командеЕсли QEMU Guest Agent запущен, вы получите ответ вида:
Фрагмент ответа в JSON{"return":{"version":"2.12.0","supported_commands":[{"enabled":true,"name":"guest-get-osinfo","success-response":true}Если QEMU Guest Agent не запущен или остановлен, вы получите ответ вида:
ошибка: Guest agent is not responding: QEMU guest agent is not connected -
Для ВМ с ОС CentOS определите статус функции guest-exec:
virsh qemu-agent-command <vm_id>_<vm_name> '{"execute":"guest-info"}' --pretty | grep -B1 "guest-exec"Пояснения к командеФрагмент ответа, если функция включена"enabled": true, "name": "guest-exec",Фрагмент ответа, если функция выключена"enabled": false, "name": "guest-exec",
Диагностика на платформе
Чтобы определить проблему с QEMU Guest Agent, вы можете:
- при создании ВМ и переустановке ОС следить за логом операций c ВМ:
docker exec vm_box tail -f /var/log/host.log - при попытке установки или восстановления QEMU Guest Agent на ВМ следить за логом операций c QEMU Guest Agent:
docker exec vm_box tail -f /var/log/host_guest_agent.log
Восстановление работы
Если QEMU Guest Agent не установлен
- Подключитесь к ВМ по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
- Если на узле кластера установлена ОС Astra Linux Special Edition 1.8.1, добавьте репозитории frozen в файл /etc/apt/source.list: Если на ВМ установлена ОС Astra Linux Special Edition 1.8.1Если на ВМ установлена ОС Astra Linux Special Edition 1.7.5Если на ВМ установлена ОС Astra Linux Special Edition 1.7.4
-
Установите QEMU Guest Agent:
ОС AlmaLinux, CentOSyum install qemu-guest-agentОС Debian, Ubuntu, Astra Linuxapt install qemu-guest-agent -
Добавьте QEMU Guest Agent в автозагрузку:
systemctl enable --now qemu-guest-agent -
Проверьте статус QEMU Guest Agent:
systemctl status qemu-guest-agent -
Проверьте статус службы SELinux:
sestatusЕсли статус отличается от disable:
-
Отключите SELinux. Для этого замените в файле /etc/selinux/config строку
SELINUX=enforcingна
SELINUX=disabled - Перезагрузите ВМ.
-
-
Если в файле /etc/sysconfig/qemu-ga есть строка вида
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- Закомментируйте или удалите эту строку.
-
Перезапустите QEMU Guest Agent:
systemctl restart qemu-guest-agent
Если QEMU Guest Agent остановлен
- Подключитесь к ВМ по SSH.
-
Запустите QEMU Guest Agent:
systemctl start qemu-guest-agent
Если функция guest-exec отключена
- Подключитесь к ВМ по SSH.
-
Выполните команду:
sed -i '/BLACKLIST_RPC=/cBLACKLIST_RPC=' /etc/sysconfig/qemu-ga -
Перезапустите QEMU Guest Agent:
systemctl restart qemu-guest-agent
Работа QEMU Guest Agent в ОС Windows
Установка
- Чтобы подготовить ВМ к установке драйверов virtio, создайте диск размером 1 ГБ с типом подключения virtio и подключите его к ВМ: раздел Виртуальные машины → выберите ВМ → кнопка Параметры → раздел Виртуальные диски → Подключить еще диск → Создать диск и подключить → выберите Размер 1 ГБ и Тип подключения virtio → кнопка Подключить диск.
- Скачайте и установите на ВМ драйверы Virtio.
- Для Windows Server 2012 R2 используйте virtio-win-guest-tools версии 0.1.189.
- Для Windows Server 2008 используйте virtio-win-guest-tools версии 0.1.137.
- Скачайте и установите на ВМ ПО QEMU Guest Agent.
Диагностика
Запустите диспетчер управления службами services.msc и проверьте, что в списке запущенных служб есть QEMU Guest Agent. Если служба остановлена, запустите её. Если такой службы нет в списке, установите ПО QEMU Guest Agent.

Автоматическая установка QEMU Guest Agent
Если VMmanager обнаружит проблемы с работой QEMU Guest Agent на ВМ, в статусе ВМ появится сообщение Проблема с Guest Agent. Чтобы восстановить работу QEMU Guest Agent автоматически, нажмите на сообщение Проблема с Guest Agent → кнопка Установить GA и перезапустить VM.
Автоматическая установка QEMU Guest Agent не поддерживается для гостевых ОС Astra Linux.
При восстановлении QEMU Guest Agent на ОС семейства Windows создаётся резервная копия диска ВМ. При создании резервной копии ВМ будет неактивна. Время создания резервной копии зависит от размера диска и в некоторых случаях может быть более 30 минут. Вы можете не создавать резервную копию. Для этого отключите опцию Создавать резервную копию VM перед нажатием кнопки Установить GA и перезапустить VM.