QEMU Guest Agent — что такое и как установить в Windows и Linux

Что такое QEMU Guest Agent

В инструкции рассказываем, как установить и настроить QEMU Guest Agent для управления виртуальными машинами, а также делимся важными особенностями и преимуществами сервиса.

Введение

Представим, что вы управляете виртуальной машиной, которая работает на мощном гипервизоре QEMU/KVM. При этом вам важно не просто запускать приложения, а полностью управлять жизненным циклом, контролировать состояние извне и эффективно взаимодействовать с ВМ. Здесь на сцену и выходит QEMU Guest Agent.

Вкратце о QEMU Guest Agent

QEMU Guest Agent — это специальный сервис (демон), который устанавливается и запускается внутри гостевой операционной системы виртуальной машины. Его основное предназначение — стать надежным и безопасным каналом связи между ВМ (гостем) и хост-системой, на которой работает гипервизор QEMU/KVM.

Преимущества и ключевые возможности QEMU Guest Agent

Безопасное и надежное выключение/перезагрузка ВМ. Вместо принудительного отключения питания (аналог выдергивания вилки из розетки) через гипервизор, хост может отправить команду через QEMU Guest Agent гостевой ОС на корректное завершение работы (shutdown, reboot). Это гарантирует сохранность данных, предотвращает повреждение файловых систем и корректно закрывает все работающие приложения внутри ВМ.

Заморозка файловой системы для создания снапшотов. Когда вы создаете снапшот ВМ для бэкапов или восстановления, критически важно, чтобы данные на диске были в согласованном состоянии. QEMU Guest Agent позволяет хосту временно приостановить операции записи на диск — заморозить файловую систему (ФС) внутри гостя на время создания снимка.

Управление паролями пользователей. QEMU Guest Agent позволяет удаленно сбрасывать пароли локальных пользователей внутри гостевой ОС (при наличии соответствующих разрешений и настроек безопасности). Особенно полезно в случаях, когда потерян доступ к учетной записи и нет других способов восстановить контроль над ВМ.

Получение актуальной информации из гостевой ОС. Guest Agent позволяет получить данные из гостевой системы, включая:

  • IP-адреса сетевых интерфейсов, 
  • имя системы, 
  • информацию об ОС,
  • статус агента, 
  • использование ресурсов (CPU, RAM, диски).

Синхронизация времени. Обеспечивает синхронизацию времени гостевой ОС с гипервизором, на котором она находится. Это важная функция для журналирования, мониторинга и согласованности логов между системами. Также синхронизация может быть критичной при использовании резервного копирования или кластера баз данных.

Установка QEMU Guest Agent на Linux

Установку Qemu Guest Agent на Linux можно выполнить с помощью ряда несложных действий.

1. Обновите пакеты:


    sudo apt update         # Для Debian/Ubuntu
sudo dnf update         # Для RHEL/CentOS/Fedora (dnf/yum)

2. Установите пакет qemu-guest-agent:


    # Debian/Ubuntu:
sudo apt install -y qemu-guest-agent

# RHEL/CentOS/Rocky Linux/AlmaLinux/Fedora:
sudo dnf install -y qemu-guest-agent
# или 
sudo yum install -y qemu-guest-agent

3. Запустите и включите автозапуск:


    sudo systemctl start qemu-guest-agent
sudo systemctl enable qemu-guest-agent

Установка QEMU Guest Agent на Windows

Для установки QEMU Guest Agent на Windows сначала нужно скачать драйверы VirtIO и QEMU Guest Agent с официального сайта.

Файлы для скачивания с официального сайта.

Варианты загрузки:

  • virtio-win-guest-tools.exe — установщик, который содержит все драйверы VirtIO и QEMU Guest Agent;
  • virtio-win.iso — образ CD с драйверами и установщиками. Полезен, если сетевое подключение в гостевой Windows ограничено. Этот образ нужно будет подключить со стороны гипервизора к ВМ.

После скачивания установщика нужно найти и запустить virtio-win-guest-tools.exe от имени администратора. Далее примите лицензионное соглашение.

На экране Выбор компонентов:

  1. обязательно убедитесь, что галочка стоит напротив QEMU Guest Agent;
  2. рекомендуем установить VirtIO Balloon Driver для точного мониторинга памяти и VirtIO Serial Driver для канала связи QEMU Guest Agent;
  3. остальные драйверы (сетевой, блочный, GPU) устанавливайте по необходимости.

Теперь осталось нажать Next и дождаться завершения установки. В финале перезагрузите виртуальную машину по запросу установщика.

Проверка наличия агента QEMU на сервере 

На Linux

Проверьте статус службы qemu-guest-agent:


    sudo systemctl status qemu-guest-agent

Пример успешного вывода:


    Active: active (running)
Скриншот терминала.

На Windows

  1. Откройте Службы (services.msc).
  2. Найдите службу QEMU Guest Agent.
  3. Убедитесь, что ее состояние — Работает (Running), а тип запуска — Автоматически (Automatic).
Скриншот настроек службы.

Перезапуск QEMU-агента

Для Linux-гостей

Стандартный метод перезапуска:


    sudo systemctl restart qemu-guest-agent

Проверка статуса:


    sudo systemctl status qemu-guest-agent
# Успешный вывод: "Active: active (running)"

Для Windows-гостей (10/11/Server)

Для начала рассмотрим стандартный метод.

  1. Откройте services.msc.
  2. Найдите службу QEMU Guest Agent.
  3. Кликните правой кнопкой мыши → Перезапустить.

Второй способ — через PowerShell (от имени администратора):


    Restart-Service -Name "QEMU Guest Agent" -Force

Третий способ — через командную строку (от имени администратора):


    net stop "QEMU Guest Agent" && net start "QEMU Guest Agent"

Третий способ — через командную строку (от имени администратора):


    Get-Service "QEMU Guest Agent" | Select Status, Name
# Успешный результат: Status = Running

Проверка статуса через консоль:


    sc query QEMU-GA

Важное предупреждение для обеих ОС

Не перезапускайте агент во время следующих операций:

  • создание снапшотов,
  • Fsfreeze/VSS-заморозки,
  • выполнение команд guest-shutdown.

Если QEMU Guest Agent во время выполнения операции guest-file-write или guest-fsfreeze-freeze получит сигнал об остановке или перезапуске, это может привести, например, к тому, что файловая система останется в замороженном состоянии.

Используем QEMU Guest Agent для управления виртуальными машинами

QEMU Guest Agent открывает множество сценариев для управления виртуальными машинами напрямую из гипервизора. В этой статье не будем углубляться в использование QMP (QEMU Machine Protocol) — протокола, который используется для взаимодействия с гостевой ОС. Ограничимся необходимой базой. С деталями и инструкциями можно ознакомиться в официальной документации QEMU.
Управление жизненным циклом ВМ. Безопасное выключение и перезагрузка помогут предотвратить потерю данных при зависании гостевой ОС:


    virsh shutdown --mode=agent vm_name  # Через агент (не через ACPI!)
virsh reboot --mode=agent vm_name

Принудительное завершение работы:


    virsh qemu-agent-command vm_name '{"execute":"guest-shutdown"}'

Создание согласованных снапшотов (Backup). Заморозка файловых систем перед созданием снимка:


    # Заморозка:
virsh qemu-agent-command vm_name '{"execute":"guest-fsfreeze-freeze"}'

# Создание снапшота (через libvirt)

# Разморозка:
virsh qemu-agent-command vm_name '{"execute":"guest-fsfreeze-thaw"}'

Windows автоматически использует VSS (Volume Shadow Copy Service) для согласованности приложений (SQL, Exchange).

Мониторинг ресурсов гостевой ОС. Получение системной информации и текущего состояния можно автоматизировать через вызовы к агенту:


    # Получить использование памяти:
virsh qemu-agent-command vm_name '{"execute":"guest-get-memory-blocks"}'

# Проверить свободное место на дисках:
virsh qemu-agent-command vm_name '{"execute":"guest-get-fsinfo"}'

Если вы хотите освоить QEMU — мощный инструмент для виртуализации и эмуляции, то рекомендуем также ознакомиться с отдельной инструкцией. Из нее вы узнаете, как эффективно работать с виртуальными машинами, управлять дисками и эмулировать различные архитектуры.

Чем может помочь Selectel

Во всех подготовленных образах Selectel уже предустановлен QEMU Guest Agent. Это избавляет вас от необходимости вручную устанавливать и настраивать агент — вы сразу получаете доступ к его возможностям после запуска ВМ.

О создании облачного сервера в панели управления подробно рассказали в документации.

Помимо прочего, в SelectOS QEMU Guest Agent доступен «из коробки» — его можно установить напрямую из репозитория Selectel. Это особенно удобно для автоматизированного развертывания и администрирования инфраструктуры на базе KVM. Мы обновляем и тестируем QEMU Guest Agent на совместимость с ключевыми компонентами, чтобы обеспечить стабильную работу и корректный обмен данными между гипервизором и гостевой ОС.

Начать можно с Community-версии — она включает все необходимое: поддержку KVM, QGA и документацию. А если в процессе возникнут сложности — техническая поддержка всегда на связи и готова помочь.

Заключение

QEMU Guest Agent — важный компонент в работе виртуальной инфраструктуры. Благодаря нему вы получите много точной и полезной информации со стороны гостевой ОС, а также сможете выполнять некоторые задачи непосредственно через агента.

Рекомендуем всегда активировать QGA при развертывании новых ВМ — это сэкономит время на диагностике и администрировании. Также используйте официальные источники: virtio-win-guest-tools.exe для Windows, пакеты из репозиториев ОС для Linux.