Установка и настройка гипервизора KVM на сервер с ОС Ubuntu

Олег Ремизов
16 июля 2020
access_time3 минуты
remove_red_eye1304
Компания «Ланкрафт»
Компания «Ланкрафт»

В данной статье подробно описывается порядок развертывания нативного гипервизора для операционных систем семейства 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:

libvirt
libvirt

Указанный выше вывод означает корректную работу демона.

7. Перезагрузим систему.

Следует отметить, что Libvirt реализует и осуществляет управление собственным сетевым интерфейсом – virbr0. После завершения инсталляции пакетов происходит его создание в качестве изолированного маршрутизируемого интерфейса, функционирующего на основе правил брандмауэра iptables.

virbr0
virbr0

Интерфейс является изолированным, не имеет связи с какими-либо физическими интерфейсами.

virbr0
virbr0

Единственный Virtual Interface, к которому он привязан, – это virbr0-nic. Его допускается применять «из коробки» для преобразования сетевых адресов (NAT). Если требуется обеспечить непосредственный доступ к виртуальной машине – создается отдельный мост (bridge) и привязывается к физическому интерфейсу.

На этом базовая установка KVM закончена.