VMmanager

Как проверить и восстановить работу 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 перед изменением настроек. Это можно сделать на ВМ или узле кластера.

Диагностика на ВМ

  1. Подключитесь к ВМ по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
  2. Определите статус 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.

Диагностика на узле кластера

  1. Подключитесь к узлу кластера по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
  2. Определите статус 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
  3. Для ВМ с ОС 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 не установлен

  1. Подключитесь к ВМ по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
  2. Если на узле кластера установлена ОС 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
  3. Установите QEMU Guest Agent:

    ОС AlmaLinux, CentOS
    yum install qemu-guest-agent
    ОС Debian, Ubuntu, Astra Linux
    apt install qemu-guest-agent
  4. Добавьте QEMU Guest Agent в автозагрузку:

    systemctl enable --now qemu-guest-agent
  5. Проверьте статус QEMU Guest Agent:

    systemctl status qemu-guest-agent
  6. Проверьте статус службы SELinux:

    sestatus

    Если статус отличается от disable:

    1. Отключите SELinux. Для этого замените в файле /etc/selinux/config строку

      SELINUX=enforcing

      на

      SELINUX=disabled
    2. Перезагрузите ВМ.
  7. Если в файле /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


    1. Закомментируйте или удалите эту строку.
    2. Перезапустите QEMU Guest Agent:

      systemctl restart qemu-guest-agent

Если QEMU Guest Agent остановлен

  1. Подключитесь к ВМ по SSH.
  2. Запустите QEMU Guest Agent:

    systemctl start qemu-guest-agent

Если функция guest-exec отключена

  1. Подключитесь к ВМ по SSH.
  2. Выполните команду: 

    sed -i '/BLACKLIST_RPC=/cBLACKLIST_RPC=' /etc/sysconfig/qemu-ga
  3. Перезапустите QEMU Guest Agent: 

    systemctl restart qemu-guest-agent

Работа QEMU Guest Agent в ОС Windows

Установка

  1. Чтобы подготовить ВМ к установке драйверов virtio, создайте диск размером 1 ГБ с типом подключения virtio и подключите его к ВМ: раздел Виртуальные машины → выберите ВМ → кнопка Параметры → раздел Виртуальные диски Подключить еще дискСоздать диск и подключить → выберите Размер 1 ГБ и Тип подключения virtio → кнопка Подключить диск.
  2. Скачайте и установите на ВМ драйверы Virtio
  3. Скачайте и установите на ВМ ПО QEMU Guest Agent.

Диагностика

Запустите диспетчер управления службами services.msc и проверьте, что в списке запущенных служб есть QEMU Guest Agent. Если служба остановлена, запустите её. Если такой службы нет в списке, установите ПО QEMU Guest Agent.

Пример отображения статуса QEMU Guest Agent в диспетчере