Virsh — это мощная командная утилита для управления виртуальными машинами (ВМ) в системах на базе libvirt, таких как QEMU/KVM. Она позволяет администраторам и разработчикам создавать, запускать, останавливать и настраивать ВМ без графического интерфейса. Virsh особенно полезен для автоматизации задач, работы на серверах без GUI и интеграции в скрипты. В этой статье мы разберём основы работы с virsh, ключевые команды и практические примеры.
Virsh — часть пакета libvirt, который является стандартным интерфейсом для управления виртуализацией в Linux. Он поддерживает гипервизоры вроде QEMU, KVM, Xen и VMware. В отличие от графических менеджеров вроде virt-manager, virsh работает в терминале, что делает его идеальным для:
Virsh можно запускать в интерактивном режиме (sudo virsh) или выполнять команды напрямую (sudo virsh list).
Virsh входит в пакет libvirt. Установите его:
sudo apt update && sudo apt install libvirt-clients qemu-kvmsudo dnf install libvirt-client или sudo yum install libvirt-clientsudo pacman -S libvirtУбедитесь, что служба libvirtd запущена: sudo systemctl start libvirtd && sudo systemctl enable libvirtd.
sudo virsh (введите команды, выход — quit).sudo virsh <команда>.Все команды требуют прав root или пользователя в группе libvirt.
Разделим команды по категориям для удобства.
virsh list (активные ВМ), virsh list --all (все, включая остановленные), virsh list --autostart (с автозапуском).virsh start <имя_ВМ>virsh shutdown <имя_ВМ>virsh destroy <имя_ВМ> (аналог "выдергивания шнура").virsh suspend <имя_ВМ>, virsh resume <имя_ВМ>virsh reboot <имя_ВМ>virsh autostart <имя_ВМ>, virsh autostart <имя_ВМ> --disablevirsh dominfo <имя_ВМ>virsh dumpxml <имя_ВМ> > vm_config.xmlvirsh define vm_config.xmlvirsh undefine <имя_ВМ>virsh edit <имя_ВМ> (откроется редактор, например, nano).virsh net-list --allvirsh net-start <имя_сети>, virsh net-destroy <имя_сети>virsh pool-list --allvirsh pool-start <имя_пула>virsh console <имя_ВМ> (выход — Ctrl+]).virsh attach-device <имя_ВМ> device.xmlvirsh help <команда>virsh versionvirsh nodeinfo# Проверить все ВМ
sudo virsh list --all
# Запустить ВМ
sudo virsh start my-vm
# Подключиться к консоли
sudo virsh console my-vm
# Выключить и включить автозапуск
sudo virsh shutdown my-vm
sudo virsh autostart my-vm
# Экспортировать конфиг
sudo virsh dumpxml my-vm > my-vm.xml
# Изменить конфиг (добавить RAM)
sudo virsh edit my-vm # В редакторе найти <memory> и изменить
# Перезагрузить конфиг
sudo virsh define my-vm.xml
Для скриптов используй virsh в bash:
#!/bin/bash
VM_NAME="my-vm"
if sudo virsh list --name | grep -q "$VM_NAME"; then
echo "ВМ $VM_NAME уже запущена"
else
sudo virsh start "$VM_NAME"
fi
libvirt: sudo usermod -aG libvirt $USER, затем перезайди.sudo journalctl -u libvirtd.virsh dominfo <имя_ВМ> на ошибки.Virsh — незаменимый инструмент для серьёзной работы с виртуализацией. Он прост в освоении и гибок. Если вы новичок, начните с virsh help и экспериментируйте на тестовой ВМ. Для углубления читайте документацию libvirt на официальном сайте.
Вы должны авторизоваться, чтобы оставлять комментарии.
Комментарии ()