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 ago
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: inactive (dead) since Пт 2021-08-20 06:27:16 UTC; 2s ag
QEMU 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 в диспетчере
Автоматическая установка QEMU Guest Agent
Если VMmanager обнаружит проблемы с работой QEMU Guest Agent на ВМ, в статусе ВМ появится сообщение Проблема с Guest Agent. Чтобы восстановить работу QEMU Guest Agent автоматически, нажмите на сообщение Проблема с Guest Agent → кнопка Установить GA и перезапустить VM.
Автоматическая установка QEMU Guest Agent не поддерживается для гостевых ОС Astra Linux.