Система виртуализации KVM (Kernel-based Virtual Machine) используется во многих хостинг-платформах — от локальных серверов до промышленных дата-центров. Она обеспечивает высокую производительность, гибкость и поддержку современных систем управления, включая libvirt, которая позволяет работать с виртуальными машинами через консольную утилиту virsh.
Это универсальный инструмент для администраторов VPS, предоставляющий полный контроль над виртуальными машинами: запуск, остановку, создание, удаление и мониторинг состояния. В этом материале разберём, как использовать virsh на практике — с примерами команд, комментариями и советами для повседневной работы.
Что такое virsh и зачем он нужен
virsh — это консольный инструмент для управления виртуальными машинами KVM через библиотеку libvirt. Он позволяет:
- управлять виртуальными машинами (создание, запуск, перезапуск, остановка, удаление);
- изменять конфигурацию без доступа к графическим интерфейсам;
- подключаться к гостевым системам, отслеживать их состояние и ресурсы;
- работать как с локальным гипервизором, так и с удалённым через SSH.
Использовать virsh удобно, если вы администрируете VPS или управляете KVM-инфраструктурой на уровне хост-сервера.
Подключение к гипервизору
Обычно virsh подключается к локальному libvirt-серверу:
virsh connect qemu:///system
Если необходимо управлять виртуализацией на удалённом хосте:
virsh -c qemu+ssh://root@IP/system
После этого можно выполнять любые команды, как если бы вы находились на самом сервере.
Основные команды virsh
Просмотр списка виртуальных машин
Показать запущенные виртуальные машины:
virsh list
Показать все, включая остановленные:
virsh list --all
Получение информации о виртуальной машине
virsh dominfo kvm101
Выведет информацию о состоянии, UUID, объёме памяти, числе CPU, дисках и сетевых интерфейсах виртуальной машины.
Управление запуском и остановкой
Действие | Команда | Комментарий |
---|---|---|
Запуск ВМ | virsh start kvm101 | Запускает виртуальную машину по имени |
Завершение работы | virsh shutdown kvm101 | Посылает гостевой системе сигнал на корректное завершение |
Принудительное выключение | virsh destroy kvm101 | Останавливает ВМ немедленно, без корректного завершения |
Перезагрузка | virsh reboot kvm101 | Аналог нажатия кнопки Reset |
Приостановка работы | virsh suspend kvm101 | Сохраняет состояние и приостанавливает выполнение |
Возобновление | virsh resume kvm101 | Возобновляет приостановленную ВМ |
Работа с конфигурационными файлами
Файлы конфигурации KVM обычно хранятся в /etc/libvirt/qemu/ и имеют расширение .xml.
Действие | Команда | Описание |
---|---|---|
Создание ВМ из XML | virsh create /etc/libvirt/qemu/kvm101.xml | Запускает виртуальную машину на основе конфигурации |
Сохранение конфигурации | virsh define /etc/libvirt/qemu/kvm101.xml | Добавляет ВМ в список постоянных |
Удаление конфигурации | virsh undefine kvm101 | Удаляет ВМ из списка без удаления дисков |
Мониторинг и статистика
Для просмотра ресурсов используйте:
- virsh domstats kvm101 — статистика CPU, памяти и дисков,
- virsh domblklist kvm101 — список подключённых дисков,
- virsh domiflist kvm101 — сетевые интерфейсы ВМ.
Если нужно быстро оценить нагрузку всех виртуальных машин, установите утилиту virt-top:
yum install virt-top
или
apt install virt-top
Она отображает использование ресурсов в реальном времени, аналогично команде top в Linux.
Работа с снимками (snapshots)
Снимки позволяют зафиксировать состояние ВМ и при необходимости откатиться к нему.
Создание снимка:
virsh snapshot-create-as kvm101 backup_before_update
Просмотр списка снимков:
virsh snapshot-list kvm101
Восстановление:
virsh snapshot-revert kvm101 backup_before_update
Удаление:
virsh snapshot-delete kvm101 backup_before_update
Полезные приёмы
Чтобы быстро войти в консоль ВМ:
virsh console kvm101
(выход — сочетание клавиш Ctrl + ])
Проверить автозапуск виртуальной машины при перезагрузке:
- virsh autostart kvm101 — включить,
- virsh autostart --disable kvm101 — отключить
Список всех пулов хранилищ (storage):
virsh pool-list --all
Просмотр всех сетей libvirt:
virsh net-list --all
Команды virsh для повседневной работы
Назначение | Команда | Примечание |
---|---|---|
Список ВМ | virsh list --all | Полный список виртуальных машин |
Информация о ВМ | virsh dominfo [имя] | Подробности о конкретной ВМ |
Запуск | virsh start [имя] | Включает ВМ |
Остановка | virsh shutdown [имя] | Корректно завершает работу |
Принудительное выключение | virsh destroy [имя] | Аналог обесточивания |
Перезагрузка | virsh reboot [имя] | Перезапускает ВМ |
Создание из XML | virsh create /путь/к/файлу.xml | Временный запуск |
Сохранение конфигурации | virsh define /путь/к/файлу.xml | Добавляет ВМ в автозагрузку |
Удаление конфигурации | virsh undefine [имя] | Удаляет описание ВМ |
Мониторинг | virt-top | Просмотр нагрузки в реальном времени |
Заключение
Утилита virsh — незаменимый инструмент для управления KVM-виртуализацией. Она позволяет выполнять всё — от простого старта VPS до сложных операций с хранилищами, снапшотами и сетями.
Используя команды из этого руководства, вы сможете оперативно управлять виртуальными машинами, диагностировать проблемы и оптимизировать работу серверов без необходимости обращаться к графическим интерфейсам.
Для администраторов, работающих с VPS в AdminVPS или других хостинг-средах на базе KVM, знание virsh — это база, которая обеспечивает гибкость, скорость и полный контроль над инфраструктурой.
Читайте в блоге:
- Что выбрать: VPS или выделенный сервер
- Как избежать превышения лимитов нагрузки на хостинг
- Ubuntu 24.04 LTS против 22.04: стоит ли обновляться