Установка гипервизора KVM

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


Если вам интересна тематика Debian и связанных с ним приложений, рекомендую обратиться к тегу Debian на моем блоге.


Установка гипервизора KVM

Не забудьте ознакомиться с системными требованиями. Это можно сделать например из официальной документации Redhat по виртуализации 1. Конечно RHV немного другой продукт, но основан он на все том же KVM, а лучше документации вам просто не найти.

Также проверьте аппаратную поддержку виртуализации на вашем оборудовании:

egrep -c '(vmx|svm)' /proc/cpuinfo

Если возвращает отличное от 0 значение, значит все хорошо.

Установка

Ставим на Debian 9 2:

apt-get install qemu-kvm libvirt-clients libvirt-daemon-system virtinst bridge-utils

Примечание: для предыдущих версий ОС список пакетов будет отличаться

apt-get install qemu-kvm libvirt-bin bridge-utils virtinst.

Подробнее о пакетах:

  • qemu-kvm — сам гипервизор;
  • libvirt-clients — набор библиотек для взаимодействия с гипервизором;
  • libvirt-daemon-system — демон libvirtd;
  • virtinst — инструменты и библиотеки для управления виртуальными машинами;
  • bridge-utils — для организации сети для виртуальных машин.

После установки место на диске уменьшится на 120-650МБ в зависимости от дистрибутива ОС.

Проверка

Пришло время проверить корректность выполненных выше операций. Первым делом убедимся загружены ли модули KVM в ядре:

lsmod | grep kvm

Вывод должен иметь примерно такой вид:

kvm_intel  192512 0
kvm        589824 1 kvm_intel
irqbypass   16384 1 kvm

Также через virsh — одну из основных утилит администрирования KVM — можно получить сводку по состоянию оборудования:

virsh sysinfo

Вывод команды сокращен:

<sysinfo type='smbios'>
 <bios>
 <entry name='vendor'>American Megatrends Inc.</entry>
 <entry name='version'>V20.5</entry>
 ...
 </bios>
 ...
</sysinfo>

Если все ОК, идем дальше.

Б — безопасность

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

Примечание: стоит оговориться, что вариант работы поз под root полностью приемлем для тестового окружения, но не для продакшена.

Взаимодействие с KVM осуществляется через библиотеку libvirt (которая, помимо всего прочего, умеет общаться и с другими гипервизорами, но это уже из другой оперы). Чтобы предоставить права рядовому пользователю, достаточно добавить его в группы kvm и libvirt, что мы и сделаем:

adduser bq kvm
adduser bq libvirt

Где bq — рядовой юзер на моем тестовом сервере. Если пользователь ещё не был создан, исправляем это и сразу выставляем ему пароль:

useradd -m -d /home/bq -s /bin/bash bq
passwd bq

Далее открываем конфиг для редактирования:

nano /etc/libvirt/qemu.conf

Изменяем параметры:

user = "bq"
group = "bq"

Где bq — соответственно новый пользователь и группа. Перезапускаем демона:

service libvirtd restart

Переходим к следующему этапу.

Хранилище

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

Примечание: В данном случае моим выбором будет хранилище на основе директорий 3, но вы можете использовать различные варианты, в том числе основанные на дисках 4, разделах 5, томах LVM 6 и др 7.. Для получения более подробной информации читайте руководство Virtualization Deployment and Administration Guide от Redhat. Оно даст вам наиболее полное представление о KVM.

Под новым пользователем создаем нужную папку, сразу назначив необходимые права:

mkdir -m 700 /home/bq/guest_images

Определяем пул:

virsh pool-define-as --name guest_images --type dir --target /home/bq/guest_images

Проверим что у нас получилось:

virsh pool-list --all
 Name           State    Autostart
-------------------------------------------
 guest_images   active   no

Запускаем пул:

virsh pool-start guest_images

Активируем автозапуск пула:

virsh pool-autostart guest_images

Осталось только посмотреть что в итоге получилось:

virsh pool-info guest_images

Пример свойств пула на моем тестовом сервере:

Name:        guest_images
UUID:        7cd1c7fb-0277-4da4-9cdb-57a2e228f9f3
State:       running
Persistent:  yes
Autostart:   yes
Capacity:    422,76 GiB
Allocation:  6,16 GiB
Available:   416,60 GiB

Настройка хранилища завершена.

Базовая настройка сети

Функционал виртуальной сети положен на сторонний софт, а именно на bridge-utils, о котором я упоминал выше. Напомню, что гипервизор отвечает лишь за управление ресурсами CPU и RAM.

В статье Установка гипервизора Xen я уже рассказывал про настройку сети, но не будет лишним напомнить об этом важном моменте ещё раз.

Предположим сетевые настройки выглядят следующим образом:

auto lo
iface lo inet loopback

allow-hotplug enp3s0
iface enp3s0 inet dhcp

С конфигурацией моста настройки примут следующий вид:

auto lo
iface lo inet loopback

auto kvmbr0
allow-hotplug kvmbr0
iface kvmbr0 inet dhcp
 bridge_ports enp3s0

auto enp3s0
iface enp3s0 inet manual

Перезапускаем демона (либо перезагрузите сервер, чтобы убедиться в нормальном функционировании конфигурации при старте):

service networking restart

Примечание: если вы сделали какие-либо ошибки в сетевых настройках, то вы можете потерять подключение к серверу. В этом случае неплохо либо находиться недалеко от сервера, либо иметь к нему удаленную консоль, не завязанную на основном сетевом подключении (например ipmi).

Различные варианты настройки моста доступны в официальной документации 8, а у меня на этом все.

Можно переходить к созданию первых виртуальных машин.

comments powered by HyperComments
Установка Windows на KVM - blog.bissquit.com
2017-10-28 22:52:33
[&#8230;] К настоящему моменту у меня уже есть сервер с KVM. На нем также сконфигурирована сеть и хранилище гостевых дисков. Все это я подробно расписал в своей предыдущей статье Установка гипервизора KVM. [&#8230;]