В данной статье подробно описывается порядок развертывания нативного гипервизора для операционных систем семейства Linux – Kernel-based virtual machine (KVM)
– на сервере с ОС Ubuntu 20.04 LTS
.
Предполагается, что ОС Ubuntu уже установлена на физический сервер – процесс установки хостовой ОС не является предметом настоящей статьи.
1. Проверим возможность использования хостовой системы в качестве гипервизора:
-
Установим пакет cpu-checker:
sudo apt install cpu-checker
-
Проверим поддержку аппаратной виртуализации:
kvm-ok
В случае поддержки аппаратной виртуализации система ответит на команду kvm-ok следующим образом:
INFO: /dev/kvm exists
KVM acceleration can be used
2. Установим утилиту bridge-utils для управления внутренним сетевым мостом:
apt install vlan bridge-utils
3. Настроим сеть (в данном случае без vlan), для чего отредактируем файл /etc/netplan следующим образом:
network: version: 2 renderer: networkd ethernets: enp0s31f6: #основной интерфейс dhcp4: false #отключаем dhcp клиент bridges: r0: #создаем bridge interfaces: [enp0s31f6] addresses: [ 192.168.1.2/24 ] #назначаем адрес управления vhost: gateway4: 192.168.1.1 nameservers: search: [ corp.domain.tld ] addresses: - "192.168.1.1"
Применим обновленные сетевые настройки:
netplan apply
5. Установим необходимые пакеты для корректной работы KVM:
apt-get install qemu-kvm libvirt-daemon-system libvirt-clients virtinst virt-manager
где
-
qemu-kvm
– программное обеспечение, обеспечивающее эмуляцию оборудования для гипервизора KVM. -
libvirt
– программное обеспечение для управления платформами виртуализации. -
virtinst
– набор инструментов командной строки для создания виртуальных машин. -
virt-manager
– графический интерфейс и утилиты командной строки для управления виртуальными машинами через libvirt.
6. После установки пакетов и их зависимостей необходимо проверить работу демона libvirt:
Указанный выше вывод означает корректную работу демона.
7. Перезагрузим систему.
Следует отметить, что Libvirt реализует и осуществляет управление собственным сетевым интерфейсом – virbr0. После завершения инсталляции пакетов происходит его создание в качестве изолированного маршрутизируемого интерфейса, функционирующего на основе правил брандмауэра iptables.
Интерфейс является изолированным, не имеет связи с какими-либо физическими интерфейсами.
Единственный Virtual Interface, к которому он привязан, – это virbr0-nic
. Его допускается применять «из коробки» для преобразования сетевых адресов (NAT). Если требуется обеспечить непосредственный доступ к виртуальной машине – создается отдельный мост (bridge) и привязывается к физическому интерфейсу.
На этом базовая установка KVM закончена.