Как установить QEMU-KVM на Ubuntu 22.04 LTS


QEMU - широкоиспользуемый виртуализатор (type-2 hypervisor) и эмулятор (hardware), который способен запустить и эмулировать не малое количество современных систем и архитектур (https://wiki.qemu.org/Documentation/Platforms).



KVM (for Kernel-based Virtual Machine) - модули ядра, предоставляющие возможность для GNU/Linux систем с архитектурой x86 виртуализировать (type-1 hypervisor) операционные системы. 

libvirt - библиотека и набор инструментов для управления виртуальными машинами от компании RedHat.

virt-manager - десктопное приложение с графическим интерфейсом для управления виртуальными машинами KVM, через libvirt (в дальнейшем RedHat планирует полностью заменить десктопный вариант на веб-интерфейс приложение)

bridge - своего рода имплементация коммутатора на уровне софта, а фактически модуль ядра Linux.

bridge-utils - пакет, который содержит утилиты для настройки Ethernet bridge в Linux

Проверка версии системы:

$ cat /etc/os-release


Посмотрим поддерживает ли CPU виртуализацию, вывод с vmx флагами подскажет, что процессор Intel поддерживает виртулизацию, а svm флаги скажут про поддержку виртуализации AMD процессором:

grep "vmx\|svm" /proc/cpuinfo



Обновление ос:

$ sudo apt update && apt upgrade

Установим необходимые пакеты: 

$ sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager

Включим libvirtd и поставим опцию для автозапуска демона при старте системы:

$ sudo systemctl enable --now libvirtd

Проверим состояние сервиса:

$ sudo systemctl status libvirtd

Добавим своего пользователя в группы kvm и libvirt:

$ sudo usermod -aG kvm $USER

$ sudo usermod -aG libvirt $USER

После добавления всех групп, необходимо будет полностью выйти пользователем из системы, чтобы группы начали отображаться, например, при проверке командой:
$ id

Создание bridge сети для виртуальныш машин KVM:

Проверим сетевые настройки до внесения изменений:

$ ip address show

$ networkctl

Предварительно создадим резервную копию файла с настройками
$ sudo cp /etc/netplan/01-network-manager-all.yaml /etc/netplan/01-network-manager-all.yaml.backup

Настройки для добавления bridge интерфейса:

192.168.0.100/24 - адрес нашего физического сетевого интерфейса на хосте
192.168.0.1 - шлюз нашего сетевого интерфейса на хосте
eno2 - имя нашего физического сетевого интерфейса

$ sudo vim /etc/netplan/01-network-manager-all.yaml

$ cat /etc/netplan/01-network-manager-all.yaml
network:
  version: 2
  ethernets:
    eno2:
      dhcp4: false
      dhcp6: false

  bridges:
    bri0:
      interfaces: [eno2]
      addresses: [192.168.0.100/24]
      routes:
        - to: default
          via: 192.168.0.1
      nameservers:
        addresses:
          - 192.168.0.1
          - 8.8.8.8
          - 8.8.4.4
      parameters:
        stp: true
        forward-delay: 4
      dhcp4: no

$ sudo netplan apply


https://linuxgenie.net/how-to-install-kvm-on-ubuntu-22-04/
https://ubuntu.com/blog/kvm-hyphervisor
https://www.core27.co/post/bridge-networks-for-kvm-on-ubuntu-2204-server
https://ubuntu.com/server/docs/network-configuration

https://unix.stackexchange.com/questions/663372/error-creating-snapshot-operation-not-supported-internal-snapshots-of-a-vm-wit
https://fabianlee.org/2021/01/10/kvm-creating-and-reverting-libvirt-external-snapshots/

Комментарии