Настройка аппаратной виртуализации KVM/LibVirt в Ubuntu Linux 24.04

В общих чертах про LibVirt я уже рассказывал в двух заметках Установка и базовая настройка LibVirt в Ubuntu 20.04 и Установка MiniKube в Ubuntu Linux. Сегодня копнем в этой теме немного глубже, так как мне понадобилась виртуалка с Windows Server, а Proxmox я поднимать не хочу.

Проверка железа на совместимость

Первым делом надо проверить, а поддерживает мой ноутбук аппаратную виртуализацию?

$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used

Более подробно какие функции виртуализации поддерживает ядро мы можем узнать запросив информацию из /cat/proc/cpuinfo.

$ grep --color vmx /proc/cpuinfo

В моем случае получилось вот так.

vmx flags       : vnmi preemption_timer posted_intr invvpid ept_x_only ept_ad ept_1gb flexpriority apicv tsc_offset vtpr mtf vapic ept vpid unrestricted_guest vapic_reg vid ple pml ept_mode_based_exec

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

# apt-get install qemu-system-x86 qemu-kvm libvirt-daemon libvirt-daemon-system libvirt-clients
# aptitude install virt-manager

Проверяем, что служба запущена.

# systemctl status qemu-kvm.service
● qemu-kvm.service - QEMU KVM preparation - module, ksm, hugepages
     Loaded: loaded (/usr/lib/systemd/system/qemu-kvm.service; enabled; preset: enabled)
     Active: active (exited) since Sat 2025-04-05 07:47:37 +07; 50min ago
   Main PID: 794 (code=exited, status=0/SUCCESS)
        CPU: 8ms

апр 05 07:47:37 home-workstation-01 systemd[1]: Starting qemu-kvm.service - QEMU KVM preparation - module, ksm, hugepages...
апр 05 07:47:37 home-workstation-01 systemd[1]: Finished qemu-kvm.service - QEMU KVM preparation - module, ksm, hugepages.

Добавляем пользователя в группу libvirt.

# usermod -a -G libvirt chernousov

Работа с графической оболочкой virt-manager

Пробуем запустить графическую оболочку для управления LibVirt/KVM.

$ virt-manager
virt-manager графическая оболочка для LibVirt

Большую часть операций по работе с виртуальными машинами мы сможем выполнить при помощи графического интерфейса (но консоль никто не отменял).

Первым делом нам понадобится создать два каталога. Первый для хранения ISO-образов, а второй для хранения собственно образов дисков виртуальных машин.

# mkdir -p /opt/virtualization/images
# mkdir -p /opt/virtualization/iso
# chown chernousov:chernousov /opt/virtualization/iso

Давайте начнем с простого, а потом перейдем к хардкору. А простое это у нас GUI и нам надо подключить хранилища.

Свойства локального узла

Тут стоит отметить, что это очень удобная игрушка которая позволяет делать из GUI практическ и все, что мы могли бы сделать из консоли. Так же обратите внимание, что помимо своего хоста (который localhost) мы можем подключить и удаленный узел и управлять несколькими узлами KVM/LibVirt из одного места.

Список соединений в virt-manager

Вернемся к подключению хранилищ. Переходим Узел -> Подробности -> Вкладка Пространство данных.

LibVirt пространства данных

Изменяем пространство default на путь к хранилищу образов виртуальных машин и дополнительно создаем пространство iso для хранения iso-образов установочных дисков.

Хранилище ISO-образов виртуальных машин

Переходим на вкладку “Виртуальные сети” и видим, что сеть default это сеть типа NAT.

Вообще, есть несколько типов сетей которые мы можем создать из GUI.

  • NAT
  • Маршрутизация
  • Открытый
  • Изолированный
  • Буфер SR-IOV

Сейчас для демонстрации нам вполне подойдет настройка по умолчанию с типом сети NAT.

Создание виртуальной машины в VirtManager

Приступаем к созданию новой виртуальной машины и устанавливать мы будем Kubuntu 24.10. Создание виртуальных машин в целом абсолютно идентично для всех других типов ОС.

Установка виртуальной машины с ISO-образа диска

Выбираем тип установки “Локальный ISO или CDROM” и следующим шагом указываем путь к образу диска и тип операционной системы.

Тип операционной системы

Тип операционной системы это просто шаблон с описанием необходимого эмулируемого оборудования и минимального объема жесткого диска и типа контроллера и все это можно задать самостоятельно в особо тяжелых случаях.

Выбор образа для установки

Настройка процессора объема выделяемой оперативной памяти это наш следующий этап.

Процессор и память для виртуальной машины

Пространство хранения данных мы сделаем кастомное.

Том хранилища ВМ

Тут все просто и мы выбираем “Настроить” и создаем новый том в нужном нам хранилище и соответственно прикрепляем его к нашей ВМ.

Виртуальная машина из шаблона

Можем приступать к установке.

Установка Kubuntu 24.10

Детально описывать процесс установки я не буду. Я сделал отдельную статью по установке Kubuntu 24.10, если кому интересно, то добро пожаловать https://blog.anton-c.ru/2025/04/06/ustanovka-kubuntu-24-10/

Проверяем сетевые параметры.

Собственно, как и говорил, мы за NAT со своей подсетью и нам такого не надо, мне надо мост в реальную сеть.

Сетевые мосты, wifi и другие приключения

Давайте подумаем как мне удачнее реализовать виртуальную сеть с ноутбука в домашнюю и еще и по wifi.

Для теста создаем мост и в мост добавляем WIFI-интерфейс.

# brctl addbr kvm-2-wifi
# brctl addif kvm-2-wifi wlo1

И логично, что мы поймали типовую ошибку с добавлением wifi-интерфейса в мост.

# brctl addif kvm-2-wifi wlo1
can't add wlo1 to bridge kvm-2-wifi: Operation not supported

Если кому опять же интересно, то увы wifi интерфейсы больше нельзя в мосты добавлять и в целом сообщество против мостов и за маршрутизацию.

Но мост мы все же создадим и выход по маршрутам и по красоте, но в другой заметке. И так уже лонг-рид получился который никто читать не будет.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *