С чего начать Первые шаги трек · 15 ступеней
Linux Labs

KVM и libvirt

3 мин Ubuntu 24.04 · libvirt · KVM

Виртуальные машины на Linux — управление через virsh, сети и хранилища, консоль.

Шпаргалка

8 команд Версия для печати
  • virsh list --all все ВМ
  • virsh start vm запустить
  • virsh shutdown vm мягко выключить (ACPI)
  • virsh console vm serial-консоль (Ctrl+] выход)
  • virsh net-list --all виртуальные сети
  • virsh domiflist vm интерфейсы ВМ
  • virsh snapshot-create-as vm snap снимок
  • virsh -c qemu+ssh://user@host/system list удалённый хост

Обзор

KVM — гипервизор в ядре Linux; libvirt — слой управления поверх него, а virsh — его CLI. На этом же стеке работает и сам тренажёр linux-labs (эфемерные лаб-ВМ). Демон libvirtd под systemd.

bash
virsh list --all                  # все домены (ВМ): запущенные и выключенные
virsh nodeinfo                     # ресурсы хоста
egrep -c 'vmx|svm' /proc/cpuinfo   # поддержка аппаратной виртуализации (>0 = есть)

Подключение к удалённому хосту: virsh -c qemu+ssh://user@host/system ....

Рецепты

2

Управление ВМ

bash
virsh start vm1                    # запустить
virsh shutdown vm1                 # мягко выключить (ACPI)
virsh destroy vm1                  # жёстко выключить (= выдернуть питание)
virsh reboot vm1
virsh console vm1                  # serial-консоль (выход: Ctrl+])
virsh dominfo vm1                  # состояние, память, vCPU
virsh autostart vm1                # автозапуск при старте хоста
virsh undefine vm1                 # удалить определение (диск остаётся!)

Сети и хранилища

bash
virsh net-list --all               # виртуальные сети
virsh net-dumpxml default          # XML сети
virsh net-start default ; virsh net-autostart default

virsh pool-list                    # пулы хранилищ
virsh vol-list default             # тома (диски ВМ)
virsh domiflist vm1                # сетевые интерфейсы ВМ (MAC, мост)
virsh dumpxml vm1                  # полное определение ВМ (XML)

Снимки:

bash
virsh snapshot-create-as vm1 snap1
virsh snapshot-list vm1
virsh snapshot-revert vm1 snap1

Неполадки

4

virsh: failed to connect to the hypervisor

libvirtd не запущен (systemctl status libvirtd) или нет прав — пользователь должен быть в группе libvirt. Для системного инстанса нужен URI qemu:///system.

ВМ не стартует

virsh start vm1 печатает ошибку; подробности — journalctl -u libvirtd и логи /var/log/libvirt/qemu/vm1.log. Часто: нет файла диска, занятый порт, мало памяти.

Нет сети у ВМ

Виртуальная сеть не запущена: virsh net-list --all → net-start. Проверь мост и firewall на хосте.

Не зайти в ВМ

virsh console vm1 (нужен включённый serial в гостевой ОС) — выход Ctrl+]. Либо по SSH, если у ВМ есть сеть.

См. также

  • qemu-img — Создание и обслуживание дисков qcow2 — overlay, конвертация, изменение размера.
  • systemctl — Управление службами systemd — start/stop/restart/status/enable/reload.
  • ssh-client — Подключение по SSH, копирование scp/rsync, ~/.ssh/config, проброс портов.
Загрузка…