Открыть сервис

virt-manager

virt-manager — это графическое приложение с открытым исходным кодом для управления виртуальными машинами (ВМ) через гипервизор libvirt. Предназначено для администраторов и пользователей операционных систем семейства Linux, реже BSD, и предоставляет интерфейс для создания, настройки, запуска, остановки и мониторинга гостевых систем. Является частью экосистемы libvirt и обычно поставляется в составе дистрибутивов Linux как пакет virt-manager.

История

Проект был начат в 2006 году как часть набора инструментов для управления виртуализацией в среде GNOME. Разработка велась при поддержке компании Red Hat, которая активно использовала libvirt для управления KVM (Kernel-based Virtual Machine). Первоначально virt-manager был создан как альтернатива командной строке (virsh), ориентированная на упрощение работы с виртуальными машинами для системных администраторов.

В 2007 году вышла версия 0.5.0, которая уже поддерживала базовые операции: создание гостевых систем из ISO-образов, управление сетевыми интерфейсами и просмотр консоли. С выходом версии 0.6.0 в 2008 году была добавлена поддержка графического интерфейса для настройки хранилищ (storage pools) и сетей (virtual networks). В 2010-х годах virt-manager стал стандартным инструментом для управления KVM/QEMU в большинстве дистрибутивов Linux, включая Fedora, CentOS, Red Hat Enterprise Linux, Debian и Ubuntu.

В 2018 году, с выходом версии 2.0.0, была проведена значительная переработка интерфейса: обновлён дизайн в стиле GNOME 3, улучшена поддержка UEFI, добавлена возможность работы с несколькими гипервизорами через libvirt (включая Xen и LXC). На 2024 год последней стабильной версией является 4.1.0 (выпущена в 2023 году), которая продолжает развиваться в рамках проекта virt-manager на GitHub.

Архитектура и компоненты

Взаимодействие с libvirt

virt-manager использует библиотеку libvirt для взаимодействия с гипервизорами. libvirt предоставляет унифицированный API для управления виртуализацией, поддерживая KVM, QEMU, Xen, VMware ESXi, Hyper-V, LXC и другие. virt-manager подключается к демону libvirtd, который запускается на хост-системе. Это позволяет управлять как локальными, так и удалёнными гипервизорами (через SSH или TLS).

Основные компоненты

Приложение состоит из нескольких взаимосвязанных модулей:

  • Главное окно — отображает список виртуальных машин, их состояние (работает, остановлена, приостановлена) и базовую информацию (ОС, загрузка процессора, память).
  • Мастер создания ВМ — пошаговый интерфейс для настройки новой гостевой системы: выбор источника установки (ISO-образ, сетевой репозиторий, импорт образа диска), выделение ресурсов (процессор, память, дисковое пространство), настройка сети и хранилища.
  • Консоль виртуальной машины — встроенный VNC/SPICE-клиент для просмотра экрана гостевой системы и ввода данных с клавиатуры и мыши. Поддерживает буфер обмена между хостом и гостем.
  • Редактор настроек ВМ — позволяет изменять аппаратную конфигурацию: добавлять/удалять виртуальные диски, сетевые интерфейсы, USB-устройства, звуковые карты, а также настраивать загрузку, UEFI/BIOS и параметры процессора.
  • Управление хранилищами — интерфейс для создания и настройки пулов хранения (storage pools) и томов (volumes). Поддерживаются локальные каталоги, LVM, iSCSI, NFS, Ceph, GlusterFS и другие.
  • Управление сетями — позволяет создавать виртуальные сети (NAT, изолированные, мостовые), настраивать DHCP, DNS и маршрутизацию.
  • Мониторинг производительности — отображение графиков загрузки CPU, использования памяти, дискового ввода-вывода и сетевого трафика для каждой виртуальной машины.

Функциональные возможности

Создание и настройка виртуальных машин

virt-manager поддерживает создание виртуальных машин с различными операционными системами, включая Windows, Linux, BSD, macOS (в экспериментальном режиме). Процесс включает выбор типа гипервизора (KVM, QEMU, Xen), архитектуры (x86_64, i686, ARM, RISC-V) и настройку виртуального оборудования:

  • Процессор — количество виртуальных ядер, топология (сокеты, ядра, потоки), возможность включения NUMA, поддержка расширений (например, Intel VT-x, AMD-V).
  • Память — объём ОЗУ, выделяемый гостевой системе.
  • Диски — виртуальные диски в форматах qcow2, raw, vmdk, vdi, iso. Поддерживаются тонкие (thin provisioning) и толстые (thick provisioning) тома, а также подключение физических дисков (passthrough).
  • Сеть — виртуальные сетевые интерфейсы (NIC) с поддержкой моделей e1000, virtio, rtl8139, vmxnet3. Возможно подключение к мосту (bridge), NAT-сети или изолированной сети.
  • USB и PCI — проброс физических устройств (USB-накопители, веб-камеры, PCI-карты) в гостевую систему.
  • Графика — выбор видеокарты (VGA, cirrus, qxl, virtio-gpu), разрешения экрана, поддержка 3D-ускорения через SPICE.

Управление состоянием

virt-manager позволяет выполнять стандартные операции с виртуальными машинами:

  • Запуск и остановка (в том числе принудительная).
  • Приостановка (suspend) и возобновление (resume).
  • Сохранение состояния (snapshot) — создание снимков диска и памяти для отката.
  • Миграция (live migration) — перемещение работающей ВМ между хостами без прерывания работы.
  • Клонирование — создание копии виртуальной машины с изменением идентификаторов.

Поддержка UEFI и Secure Boot

Начиная с версии 2.0.0, virt-manager поддерживает загрузку в режиме UEFI (через OVMF — Open Virtual Machine Firmware) и Secure Boot. Это необходимо для установки современных операционных систем, таких как Windows 8/10/11 и некоторые дистрибутивы Linux (например, Fedora, Ubuntu с включённым Secure Boot).

Работа с контейнерами

Через libvirt virt-manager может управлять контейнерами LXC (Linux Containers). Это позволяет создавать и запускать изолированные окружения без полноценной виртуализации, используя общее ядро хоста. Функциональность ограничена по сравнению с KVM: не поддерживается миграция, проброс устройств и снимки состояния.

Интерфейс пользователя

Главное окно

Главное окно разделено на три панели:

  • Левая панель — список подключённых гипервизоров (локальный, удалённые). Каждый гипервизор отображается как узел, раскрывающий список виртуальных машин.
  • Центральная панель — таблица виртуальных машин выбранного гипервизора с колонками: имя, состояние, загрузка CPU, использование памяти, тип ОС.
  • Правая панель — панель инструментов для быстрого доступа к операциям: запуск, остановка, приостановка, создание снимка, настройка.

Мастер создания

Мастер создания ВМ состоит из нескольких шагов:

  1. Выбор источника установки: локальный ISO-образ, сетевой репозиторий (URL), импорт существующего образа диска.
  2. Выбор операционной системы (из списка или вручную).
  3. Настройка памяти и процессора.
  4. Настройка дискового пространства (размер, формат, путь хранения).
  5. Настройка сети (выбор виртуальной сети или моста).
  6. Итоговое окно с подтверждением параметров.

Консоль

Консоль virt-manager использует протоколы VNC (Virtual Network Computing) и SPICE (Simple Protocol for Independent Computing Environment). SPICE обеспечивает более высокую производительность, поддержку нескольких мониторов, передачу звука и USB-устройств. Для работы с VNC требуется установка пакета gtk-vnc.

Критика и ограничения

  • Зависимость от libvirt — virt-manager не может работать без libvirtd. Если демон не запущен или не настроен, приложение не функционирует.
  • Ограниченная поддержка Windows — хотя virt-manager позволяет устанавливать Windows, функциональность SPICE (например, буфер обмена, звук) может работать нестабильно. Рекомендуется использовать VNC для Windows-гостей.
  • Сложность настройки проброса устройств — проброс USB и PCI требует ручного редактирования XML-конфигурации в некоторых случаях, так как графический интерфейс не всегда предоставляет все опции.
  • Отсутствие встроенного менеджера образов — для работы с образами дисков (конвертация, изменение размера) требуется использовать отдельные утилиты, такие как qemu-img.
  • Производительность — при большом количестве виртуальных машин (более 50) интерфейс может замедляться, особенно при обновлении графиков производительности.

Примеры использования

  • Разработка и тестирование — создание изолированных сред для тестирования программного обеспечения под разные ОС.
  • Обучение — демонстрация работы операционных систем без необходимости установки на физическое оборудование.
  • Серверная виртуализация — управление несколькими серверами на одном хосте с использованием KVM.
  • Домашние лаборатории — создание виртуальных сетей для изучения сетевых технологий (например, настройка маршрутизации, DHCP, DNS).

Лицензия и распространение

virt-manager распространяется под лицензией GNU General Public License версии 2 (GPLv2). Исходный код доступен на GitHub в репозитории virt-manager/virt-manager. Пакеты доступны для большинства дистрибутивов Linux через официальные репозитории. Для установки в Fedora используется команда dnf install virt-manager, в Ubuntu — apt install virt-manager.

Источники

  • Официальная документация проекта virt-manager (virt-manager.org)
  • Руководство по libvirt (libvirt.org)
  • Статья «Virtual Machine Manager» в архиве Fedora Project (fedoraproject.org)
  • Репозиторий проекта на GitHub (github.com/virt-manager/virt-manager)
  • Документация Red Hat по управлению виртуализацией (access.redhat.com)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →