Разберем как настроить виртуализацию на сервере на базе open source технологии KVM. В качестве операционной системы хоста ВМ мы будем использовать Ubuntu 20.04.
QEMU — свободная программа с открытым исходным кодом для эмуляции аппаратного обеспечения различных платформ. Но программная эмуляция значительно замедляет работу виртуальной машины, поэтому был интегрирован KVM — механизм для использования аппаратной поддержки виртуализации.
KVM — это решение для виртуализации, встроенное прямо в ядро Linux, не уступающее остальным решениям в функциональности и превосходящее их в удобстве использования.
Установка KVM в Ubuntu 20.04
Первым делом нужно проверить включена ли поддержка виртуализации в Bios. Результат должен быть больше 0.
egrep -c '(vmx|svm)' /proc/cpuinfo
Установим необходимые пакеты:
sudo apt install wget qemu qemu-kvm libvirt-daemon libvirt-clients bridge-utils virt-manager
Проверим корректность установки:
kvm-ok
Вывод должен быть таким:
INFO: /dev/kvm exists
KVM acceleration can be used
Настройка сети KVM в режиме bridge
Сеть будет настроена автоматически, но я рекомендую настроить бридж для использования QEMU
sudo apt install bridge-utils -y
Добавим бридж в конфиге netplan, у меня это выглядит так:
# mcedit /etc/netplan/00-installer-config.yaml
network:
ethernets:
enp4s0:
dhcp4: true
version: 2
bridges:
br0:
interfaces: [enp4s0]
dhcp4: true
Проверяем и применяем настройки:
sudo netplan generate
sudo netplan apply
Проверим, что бридж появился:
# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.00e04cae00ee no enp5s0
virbr0 8000.5254007b18fc yes virbr0-nic
Теперь добавим конфиг для KVM
# mcedit /var/lib/libvirt/images/br0.xml
<network>
<name>br0</name>
<forward mode="bridge"/>
<bridge name="br0" />
</network>
Применим конфигурацию:
virsh net-define /var/lib/libvirt/images/br0.xml
virsh net-start br0
virsh net-autostart br0
Проверим, что все получилось:
# virsh net-list --all
Name State Autostart Persistent
--------------------------------------------
br0 active yes yes
default active yes yes
Остается только выбрать созданный бридж в настройках виртуальной машины.
Управление виртуальными машинами
Скачайте MobaXterm для подключения к серверу по SSH с включенной опцией X11-Forwarding.
Загрузите образ для установки операционной системы при помощи SFTP в директорию /var/lib/libvirt/images
Используйте команду virt-manager для вызова менеджера управления виртуальными машинами KVM:
Для стабильной и быстрой работы виртуальных машин при создании используйте контроллеры от Virtio.
Установка драйверов Virtio для Windows
Скачаем стабильную версию для операционных систем Windows:
wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso -P /var/lib/libvirt/images/
Смонтируйте образ с драйверами в настройках виртуальной машины:
Обновите драйвера в диспетчере устройств с нашего подключенного образа.