Как проверить и восстановить работу QEMU Guest Agent?
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
CODEПримеры ответов:
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
CODEQEMU 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
CODEQEMU Guest Agent не установлен
Unit qemu-guest-agent.service could not be found.
CODE
Диагностика на узле кластера
- Подключитесь к узлу кластера по SSH.
Определите статус QEMU Guest Agent:
virsh qemu-agent-command <vm_id>_<vm_name> '{"execute": "guest-info", "arguments": {}}'
CODEПояснения к команде<vm_id>_<vm_name> — имя файла ВМ, содержащее id и имя ВМ. Например, для ВМ с id 12 и именем test-vm имя файла должно быть 12_test_vmЕсли QEMU Guest Agent запущен, вы получите ответ вида:
Фрагмент ответа в JSON
{"return":{"version":"2.12.0","supported_commands":[{"enabled":true,"name":"guest-get-osinfo","success-response":true}
CODEЕсли QEMU Guest Agent не запущен или остановлен, вы получите ответ вида:
ошибка: Guest agent is not responding: QEMU guest agent is not connected
CODEДля ВМ с ОС CentOS определите статус функции guest-exec:
virsh qemu-agent-command <vm_id>_<vm_name> '{"execute":"guest-info"}' --pretty | grep -B1 "guest-exec"
BASHПояснения к команде<vm_id>_<vm_name> — имя файла ВМ, содержащее id и имя ВМ. Например, для ВМ с id 12 и именем test-vm имя файла должно быть 12_test_vm
Фрагмент ответа, если функция включена
"enabled": true, "name": "guest-exec",
CODEФрагмент ответа, если функция выключена
"enabled": false, "name": "guest-exec",
CODE
Восстановление работы
Если QEMU Guest Agent не установлен
- Подключитесь к ВМ по SSH.
Установите QEMU Guest Agent:
ОС CentOS
yum install qemu-guest-agent
CODEОС Debian, Ubuntu
apt install qemu-guest-agent
CODEДобавьте QEMU Guest Agent в автозагрузку:
systemctl enable --now qemu-guest-agent
CODEПроверьте статус QEMU Guest Agent:
systemctl status qemu-guest-agent
CODEПроверьте статус службы SELinux:
sestatus
CODEЕсли статус отличается от disable:
Отключите SELinux. Для этого замените в файле /etc/selinux/config строку
SELINUX=enforcing
CODEна
SELINUX=disabled
CODE- Перезагрузите ВМ.
Если в файле /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
CODE- Закомментируйте или удалите эту строку.
Перезапустите QEMU Guest Agent:
systemctl restart qemu-guest-agent
CODE
Если QEMU Guest Agent остановлен
- Подключитесь к ВМ по SSH.
Запустите QEMU Guest Agent:
systemctl start qemu-guest-agent
CODE
Если функция guest-exec отключена
- Подключитесь к ВМ по SSH.
Выполните команду:
sed -i '/BLACKLIST_RPC=/cBLACKLIST_RPC=' /etc/sysconfig/qemu-ga
BASHПерезапустите QEMU Guest Agent:
systemctl restart qemu-guest-agent
CODE
Автоматическая установка QEMU Guest Agent
Если VMmanager обнаружит проблемы с работой QEMU Guest Agent на ВМ, в статусе ВМ появится сообщение Проблема с Guest Agent. Чтобы восстановить работу QEMU Guest Agent автоматически, нажмите на сообщение Проблема с Guest Agent → кнопка Установить GA и перезапустить VM.
При восстановлении QEMU Guest Agent в ОС семейства Windows ВМ может быть неактивной в течение продолжительного времени. В некоторых случаях период восстановления может быть более 30 минут. Это происходит из-за того, что при восстановлении платформа создаёт резервную копию диска ВМ.