Установка гипервизора KVM представляет из себя простую задачу. Тем не менее, она отличается на разных версиях Debian и не помешает лишний раз сделать себе пару заметок, а кроме этого рассмотреть и базовую настройку для минимальной готовности окружения.
Если вам интересна тематика Debian и связанных с ним приложений, рекомендую обратиться к тегу Debian на моем блоге.
Содержание
Установка гипервизора KVM
Не забудьте ознакомиться с системными требованиями. Это можно сделать например из официальной документации Redhat по виртуализации 1. Конечно RHV немного другой продукт, но основан он на все том же KVM, а лучше документации вам просто не найти.
Также проверьте аппаратную поддержку виртуализации на вашем оборудовании:
1 |
egrep -c '(vmx|svm)' /proc/cpuinfo |
Если возвращает отличное от 0 значение, значит все хорошо.
Установка
Ставим на Debian 9 2:
1 2 3 4 5 |
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 в ядре:
1 |
lsmod | grep kvm |
Вывод должен иметь примерно такой вид:
1 2 3 |
kvm_intel 192512 0 kvm 589824 1 kvm_intel irqbypass 16384 1 kvm |
Также через virsh – одну из основных утилит администрирования KVM – можно получить сводку по состоянию оборудования:
1 |
virsh sysinfo |
Вывод команды сокращен:
1 2 3 4 5 6 7 8 |
<sysinfo type='smbios'> <bios> <entry name='vendor'>American Megatrends Inc.</entry> <entry name='version'>V20.5</entry> ... </bios> ... </sysinfo> |
Если все ОК, идем дальше.
Б – безопасность
Пока что ни слова не было сказано о безопасности. Предполагается, что все операции с виртуальными машинами будут выполняться из под учетной записи суперпользователя, что не совсем правильно.
Взаимодействие с KVM осуществляется через библиотеку libvirt (которая, помимо всего прочего, умеет общаться и с другими гипервизорами, но это уже из другой оперы). Чтобы предоставить права рядовому пользователю, достаточно добавить его в группы kvm и libvirt, что мы и сделаем:
1 2 |
adduser bq kvm adduser bq libvirt |
Где bq – рядовой юзер на моем тестовом сервере. Если пользователь ещё не был создан, исправляем это и сразу выставляем ему пароль:
1 2 |
useradd -m -d /home/bq -s /bin/bash bq passwd bq |
Далее открываем конфиг для редактирования:
1 |
nano /etc/libvirt/qemu.conf |
Изменяем параметры:
1 2 |
user = "bq" group = "bq" |
Где bq – соответственно новый пользователь и группа. Перезапускаем демона:
1 |
service libvirtd restart |
Переходим к следующему этапу.
Хранилище
К задачам начальной настройки также относится процесс подготовки хранилища данных виртуальных машин.
Под новым пользователем создаем нужную папку, сразу назначив необходимые права:
1 |
mkdir -m 700 /home/bq/guest_images |
Определяем пул:
1 |
virsh pool-define-as --name guest_images --type dir --target /home/bq/guest_images |
Проверим что у нас получилось:
1 |
virsh pool-list --all |
1 2 3 |
Name State Autostart ------------------------------------------- guest_images active no |
Запускаем пул:
1 |
virsh pool-start guest_images |
Активируем автозапуск пула:
1 |
virsh pool-autostart guest_images |
Осталось только посмотреть что в итоге получилось:
1 |
virsh pool-info guest_images |
Пример свойств пула на моем тестовом сервере:
1 2 3 4 5 6 7 8 |
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 я уже рассказывал про настройку сети, но не будет лишним напомнить об этом важном моменте ещё раз.
Предположим сетевые настройки выглядят следующим образом:
1 2 3 4 5 |
auto lo iface lo inet loopback allow-hotplug enp3s0 iface enp3s0 inet dhcp |
С конфигурацией моста настройки примут следующий вид:
1 2 3 4 5 6 7 8 9 10 |
auto lo iface lo inet loopback auto kvmbr0 allow-hotplug kvmbr0 iface kvmbr0 inet dhcp bridge_ports enp3s0 auto enp3s0 iface enp3s0 inet manual |
Перезапускаем демона (либо перезагрузите сервер, чтобы убедиться в нормальном функционировании конфигурации при старте):
1 |
service networking restart |
Различные варианты настройки моста доступны в официальной документации 8, а у меня на этом все.
Можно переходить к созданию первых виртуальных машин.