Kernel Virtual Module — ПО, позволяющее создавать виртуальную среду на уровне ядра Linux, т.е. использовать виртуальные машины внутри основной хост-системы. Единственное требование — железо должно поддерживать виртуализацию (например — Intel VT). Для начала обновим репозитории.
sudo apt update
Теперь установим основные пакеты.
sudo apt install qemu libvirt-clients virt-manager bridge-utils
По умолчанию libvirtd может управляться только пользователем root и группой libvirt. При попытке запустить Virtual Mashine Manager появится ошибка Failed to connect socket to ‘/var/run/libvirt/libvirt-sock’: Permission denied. Нужно добавить свою учётку в группу libvirt.
sudo usermod -aG libvirt $USER
Перезагружаемся.
init 6
Проверяем, всё ли работает.
koobik@ubuntu:~$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used
koobik@ubuntu:~$ systemctl status libvirtd
● libvirtd.service - Virtualization daemon
Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor pres>
Active: active (running) since Mon 2023-02-06 11:05:44 MSK; 10min ago
TriggeredBy: ● libvirtd-admin.socket
● libvirtd.socket
● libvirtd-ro.socket
Docs: man:libvirtd(8)
https://libvirt.org
Main PID: 852 (libvirtd)
Tasks: 19 (limit: 32768)
Memory: 51.3M
CPU: 2.692s
CGroup: /system.slice/libvirtd.service
└─852 /usr/sbin/libvirtd
фев 06 11:05:44 fws systemd[1]: Starting Virtualization daemon...
фев 06 11:05:44 fws systemd[1]: Started Virtualization daemon.
Запускаем VMM:
KVM готов к работе. Однако у нас ещё не настроена сеть. Нам потребуется добавить сетевой мост (virbr0), и прикрутить к нему сетевой интерфейс хост-машины (eth0).
sudo brctl addbr virbr0
sudo brctl addif virbr0 eth0
ip link set virbr0 up
## ifconfig virbr0 up ## Для любителей олдскула
dhclient virbr0
Посмотреть основные параметры моста и включенные порты можно командами:
ip link show virbr0
brctl show