Biokaminy-lux.ru

Все про ремонт быт. техники
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Kernel-based Virtual Machine (KVM)

Kernel-based Virtual Machine (KVM)

В Ubuntu рекомендуется использовать гипервизор (менеджер виртуальных машин) KVM и библиотеку libvirt в качестве инструментария управления им. Libvirt включает в себя набор программного API и пользовательских приложений управления виртуальными машинами (ВМ) virt-manager (графический интерфейс, GUI ) или virsh (командная строка, CLI). В качестве альтернативных менеджеров можно использовать convirt (GUI ) или convirt2 (WEB интерфейс).

В настоящее время в Ubuntu офицально поддерживается только гипервизор KVM. Этот гипервизор является частью кода ядра операционной системы Linux. В отличие от Xen, KVM не поддерживает паравиртуализацию, то есть, для того, чтобы его использовать, ваш CPU должен подерживать технологии VT. Вы можете проверить, поддерживает ли ваш процессор эту технологию, выполнив команду в терминале:

Если в результате получили сообщение:

значит KVM будет работать без проблем.

Если же на выходе получили сообщение:

то вы всё равно сможете использовать виртуальную машину, но работать она будет намного медленнее.

Для хост-машины рекомендуется использовать 64-битную ОС. Это позволит:

Установка kvm в Ubuntu 20.04

kvm install

Создать хост виртуализации в операционной системе Ubuntu 20.04 с гипервизором kvm не составит сложности, понимая технологии которые используются при этом. Это позволяет использовать обычный физический сервер с операционной системой Linux на борту как полноценный узел виртуализации, аналогичный Vmware ESXi. При этом мы можем не думать о стоимости лицензий программного обеспечения виртуализации. Так же, как и продукты VMware, функционирование kvm требует поддержки аппаратной виртуализации со стороны центрального процессора сервера. В качестве гостевых операционных систем мы можем использовать как различные дистрибутивы Linux и BSD, так и все вариации MS Windows.

Данная статья посвящена процедуре установки и первоначальной настройки хостовой операционной системы Ubuntu Linux 20.04 и гипервизора kvm. Мы пройдем поэтапно по всем основным шагам и получим в результате работающий гипервизор виртуализации, которой можно будет полноценно использовать как в продакшене, так и для тестовых целей. Особый акцент сделан на сетевую часть. Показано как настроить виртуальную сеть kvm таким образом, чтобы обеспечить прямой доступ из физической сети к гостевым машинам.

Проверка системы

Для начала нам нужно определиться с поддержкой технологий аппаратной виртуализации со стороны физического сервера. Если такой поддержки нет, то и использовать гипервизор kvm у нас не получится. Для выяснения этого выполним следующую команду, читающую данные о процессорах сервера.

В данном примере результат выполнения команды — 8, что больше нуля. Это значит, что у нас 8 ядер ЦПУ, которые поддерживают технологию аппаратной виртуализации. Если же мы получим в качестве вывода ноль, то работать kvm у нас на данном сервере не будет.

Также операционную систему рекомендуется проверить командой kvm-ok для уточнения совместимости с гипервизором. Чтобы установить ее, выполняем команду.

Читайте так же:
Установка программ системе linux

После этого можно проверить операционную систему на непосредственную совместимость с kvm. В нашем случае система полностью совместима и вывод команды kvm-ok представлен ниже.

Установка KVM

Теперь мы готовы для непосредственной установки apt пакетов, которые обеспечивают работу гипервизора kvm. Это делается с помощью нижеуказанной команды.

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

Смотрим статус текущего состояния сервиса libvirtd следующим образом. Как видно, все работает нормально и можно переходить к следующму этапу конфигурации гипервизора.

Настройка сетевой части гипервизора

По умолчанию после установки kvm гипервизор использует один сетевой бридж, в котором выход в общую сеть для виртуальных машин закрыт за NATом. Обычно же на хостах виртуализации необходим прямой доступ с гостевых машин в сеть. Для этого нужно выполнить ряд настроек. В первую очередь создадим файл /etc/sysctl.d/12-bridge.conf, содержание которого представлено ниже и который отключает правила фильтрации IPTABLES на бриджах хостовой ОС.

Для того, чтобы эти настройки применялись в операционной системе при загрузке создадим еще один файл — /etc/udev/rules.d/99-bridge.rules. Добавим в него одну только строчку.

После проведенных манипуляций выполним перезагрузку операционной системы хоста и продолжим настройку сетевой части гипервизора. С помощью двух последующих команд virsh удалим дефолтную виртуальную сеть default, которая была создана при установке kvm.

Когда дефолтная kvm виртуальная сеть, натирующая весь трафик от виртуалок будет удалена, можно настроить новую виртуальную сеть, обеспечивающую прямой доступ в ЛВС через программный бридж в операционной системе хоста. Для этого добавим настройки бриджа в файл /etc/netplan/00-installer-config.yaml. Простейший пример такого файла с одним ethernet интерфейсом и одним программным бриджом представлен далее.

Когда файл будет отредактирован, выполним команду sudo netplan apply, чтобы внесенные изменения вступили в силу. Теперь у нас в операционной системе хоста будет работающий программный бридж br0, который мы задействуем для проброса трафика из гостевых машин во внешние сети. Если у нас есть несколько внешних сетевых интерфейсов, то при необходимости мы можем создать несколько бриджей, используя их для проброса трафика на виртуальные машины.

После того, как бридж у нас будет готов, мы настроим виртуальную сеть kvm, которая будет использовать данный бридж. Создадим небольшой xml файл в текущей директории с конфигурацией виртуальной сети — bridge-network.xml.

Используя данный xml файл, выполним настройку виртуальной kvm сети с помощью утилиты virsh.

Проверить созданную виртуальную kvm сеть можно следующим образом.

На этом наши операции по установке и настройке гипервизора kvm заканчиваются. Мы проинсталировали необходимое ПО и настроили его таким образом, что можем считать поставленную задачу в названии статьи выполненной.

Что дальше

После того, как все вышеуказанные манипуляции успешно завершены, можно приступить к непосредственному созданию гостевых машин и их эксплуатации в kvm. Если Вы новичок в этом деле, рекомедую прочесть еще одну статью на моем блоге — Создание виртуалок в kvm из консоли. Она позволит преодолеть подводные камни, которые встречаются на этом пути.

Читайте так же:
Как на ноутбуке регулировать звук клавишами

Установка и начальное конфигурирование

Установите необходимый для виртуализации набор пакетов из стандартного репозитория.
Если вы используете РЕД ОС версии 7.1 или 7.2, выполните команду:

Если вы используете РЕД ОС версии 7.3 и старше, выполните команду:

Включите автозапуск службы libvirtd

Перезагрузите компьютер для загрузки модулей ядра kvm (если у вас процессор Intel так же должен загрузиться модуль intel-kvm).

После перезагрузки, проверьте загрузку модулей.

Так же проверьте сетевые подключения

Должен появиться дополнительное подключение vbr0.

Добавьте пользователя, используемого для управления виртуальными машинами, в группу libvirt.

На этом установка и начальное конфигурирование завершено.

Введение в QEMU/KVM

KVM (Kernel-based Virtual Machine) — это комплекс программ для виртуализации с аппаратной поддержкой в среде Linux x86. Виртуализация позволяет нам устанавливать полностью изолированные, но работающие бок о бок операционные системы на одном и том же железе.

Гипервизор KVM представляет из себя загружаемый модуль ядра Linux. Он обеспечивает только уровень абстракции устройств. Таким образом одного гипервизора KVM недостаточно для запуска виртуальной ОС. Нужна еще эмуляция процессора, дисков, сети, видео, шины. Для этого существует QEMU.

QEMU (Quick Emulator) — эмулятор различных устройств, который позволяет запускать операционные системы, предназначенные для одной архитектуры, на другой.

Обычно такой комплекс программ для виртуализации называют QEMU/KVM.

Проверка аппаратной поддержки виртуализации

Во-первых, перед настройкой KVM необходимо проверить совместимость сервера с технологиями виртуализации:

Числа отличные от нуля говорят о том, что процессор имеет поддержку аппаратной виртуализации Intel-VT или AMD-V .

Подготовка сервера

Во-вторых, для удобства создадим каталоги для хранения образов жестких дисков наших виртуальных машин и образов ISO, с которых будет производиться установка операционных систем.

В результате будет создан каталог /kvm/hdd для виртуальных жестких дисков и каталог /kvm/iso для образов ISO.

Установка и запуск QEMU/KVM в Ubuntu

В качестве интерфейса к технологиии виртуализации QEMU/KVM в Ubuntu мы будем использовать библиотеку libvirt. С помощью следующей команды мы установим гипервизор, эмулятор, библиотеку и утилиты управления.

Где qemu-kvm — сам гипервизор; libvirt-bin — библиотека управления гипервизором; virtinst — утилита управления виртуальными машинами; libosinfo-bin — утилита для просмотра списка вариантов гостевых операционных систем.

После успешной установки всех пакетов настроим автоматический запуск сервиса.

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

И установим права доступа на ранее созданные каталоги:

Настраивать виртуальные машины, хранилища и сети можно как из командной строки, так и с помощью GUI-инструмента virt-manager. Причем установить его можно как на сервер, так и на другой компьютер, например, на ваш ноутбук. В последнем случае вам придется добавить удаленное соединение к libvirt. Установку virt-manager и работу при помощи него с libvirt и виртуальными машинами мы рассмотрим в следующей статье.

Читайте так же:
Установка операционной системы на usb hdd

Настройка сети

Итак, виртуальные машины могут работать через свою виртуальную сеть с NAT или получать IP-адреса из локальной сети через сетевой мост, который нам необходимо настроить.

Настройка сетевого моста

В старых версиях Ubuntu большая часть настроек конфигурации сети Ethernet находится в файле /etc/network/interfaces. На всякий случай создадим его резервную копию:

Затем устанавливаем утилиты для конфигурирования Ethernet-моста:

Открываем файл /etc/network/interfaces в своем любимом редакторе (vim, nano):

И приводим его к примерно такому виду:

Все, что закомментировано — старые настройки сети; br0 — название интерфейса создаваемого моста; eno1 — сетевой интерфейс, через который будет работать мост.

Если вы получаете адрес динамически через DHCP, то конфигурация сократится до такой:

Внимательно проверяем конфигурацию и перезапускаем службу сети:

Начиная с релиза Ubuntu 17.10, для управления конфигурацией сети по умолчанию используется утилита Netplan, которая добавляет новый уровень абстракции при настройке сетевых интерфейсов. Конфигурация сети хранится в файлах формата YAML. Предоставляется эта информация бэкендам (network renderers), таким как NetworkManager или systemd-networkd.

Файлы конфигурации Netplan хранятся в папке /etc/netplan. Для настройки сети открываем в редакторе файл 01-netcfg.yaml

и приводим его к такому виду:

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

В файлах конфигурации указываем свои адреса, имена интерфейсов и доменов и после тщательной проверки применяем сетевые настройки:

Виртульные сети (NAT forwarding)

Каждая стандартная установка libvirt обеспечивает подключение виртуальных машин на основе NAT из коробки. Это так называемая виртуальная сеть по умолчанию. Вы можете проверить, что она доступна таким образом:

Для того, чтобы виртуальные машины с сетевым интерфейсом NAT могли выходить в интернет необходимо настроить перенаправление сетевого трафика. Для этого надо убрать комментарий строки #net.ipv4.ip_forward=1 в файле /etc/sysctl.d/99-sysctl.conf и сохранить настройки:

Создание виртуальной машины

Для создания виртуальной машины нам понадобятся две утилиты: osinfo-query — для получения списка доступных для установки вариантов операционных систем и virt-install — непосредственно для самой установки.

Итак, создадим нашу первую виртуальную виртуальную машину с ОС Ubuntu 16.04, 1024MiB ОЗУ, 1 процессором, сетью через мост и 12GiB жестким диском.

Обратите внимание на параметр —os-variant. Он указывает гипервизору под какую именно ОС следует адаптировать настройки.
Список доступных вариантов можно получить, выполнив команду:

Подробнее с параметрами virt-install вы можете ознакомиться на страницах руководства, а я приведу команду создания ВМ c сетью через NAT:

Читайте так же:
Solaris операционная система установка

После запуска установки в консоли сервера вы увидите текст похожий на этот:

Значит все нормально и для продолжения установки ОС в виртуальной машине нам нужно соединиться к ней по VNC. Чтобы узнать номер порта на котором он поднят для нашей ВМ откройте новую консоль или в текущей переведите задание в фоновый режим с помощью CTRL+Z , bg и выполните команду:

В моем случае это порт 5903:

или выполнив команду

вы получите примерно такой результат:

Это число нужно сложить с базовым портом 5900.

Далее подключаемся с помощью клиента VNC (Remmina, TightVNC) к нашему серверу по полученному порту и устанавливаем Ubuntu 16.04 в нашей ВМ.

Установка Ubuntu в виртуальной машине QEMU/KVM через VNC

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

Управление виртуальной машиной

Для управления гостевыми системами и гипервизором существует текстовая утилита virsh. Она использует libvirt API и служит альтернативой графическому менеджеру виртуальных машин virt-manager.

Я коснусь только основных команд управления ВМ, так как описание всех возможностей утилиты — тема для отдельной статьи.

Список всех доступных команд вы можете увидеть так:

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

где command — это команда из списка, который мы получили выше.

Для просмотра списка всех виртуальных машин используйте:

Вот что она показала у меня:

Если же вам нужны только работающие в данный момент виртуалки, то введите:

Для запуска виртуальной машины выполните в консоли:

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

Создание виртуальных машин

Теперь, когда KVM установлен на рабочем столе Ubuntu, вы можете создать первую виртуальную машину. Это можно сделать либо из командной строки, либо с помощью приложения virt-manager.

Загрузите ISO-образ операционной системы, которую вы хотите установить, и выполните следующие действия, чтобы создать виртуальную машину:

  1. В строке поиска «Действия» введите «Диспетчер виртуальных машин» и щелкните значок, чтобы запустить приложение.
  2. После запуска приложения в верхнем меню нажмите «Файл» -> «Новая виртуальная машина»:Как установить KVM на Ubuntu 20.04
  3. Появится новое окно. Выберите «Local install media» и нажмите кнопку «Вперед».
  4. Укажите путь к ISO-образу и нажмите кнопку «Вперед».
  5. На следующем экране выберите параметры памяти и процессора виртуальной машины. Нажмите Вперед.
  6. Затем выберите «Создать образ диска для виртуальной машины» и выберите размер дискового пространства виртуальной машины. Нажмите Вперед.
  7. Введите имя для вашей виртуальной машины и нажмите «Готово».
  8. VM загрузится, и откроется новое окно:Как установить KVM на Ubuntu 20.04
    Отсюда вы можете следовать инструкциям на экране для завершения установки операционной системы.

После установки операционной системы вы можете получить доступ к виртуальной машине из приложения virt-manager, через ssh или через интерфейс последовательной консоли.

Установка KVM в Ubuntu 20.04

Перед тем как переходить к самой установке KVM нужно проверить поддерживает ли ваш процессор аппаратное ускорение виртуализации от Intel-VT или AMD-V. Для этого выполните такую команду:

Читайте так же:
Установка операционной системы с флешки bios

egrep -c ‘(vmx|svm)’ /proc/cpuinfo

Если в результате будет возвращено 0 — значит ваш процессор не поддерживает аппаратной виртуализации, если 1 или больше — то вы можете использовать KVM на своей машине.

Теперь мы можем перейти к установке KVM, набор программ можно получить прямо из официальных репозиториев:

sudo apt install qemu qemu-kvm libvirt-daemon libvirt-clients bridge-utils virt-manager

Мы установили не только утилиту kvm, но и библиотеку libvirt, а также менеджер виртуальных машин. После того, как установка будет завершена вам необходимо добавить своего пользователя в группу libvirt, потому что только root и пользователи этой группы могут использовать виртуальные машины KVM:

sudo gpasswd -a $USER libvirt

Затем убедитесь, что сервис libvirt запущен и работает:

sudo systemctl status libvirtd

После выполнения этой команды выйдите из системы и войдите снова. Далее, давайте проверим все ли правильно было установлено. Для этого используйте команду kvm-ok:

Если все было сделано правильно, то вы увидите такое же сообщение.

Создание виртуальных машин в Proxmox VE

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

Для создания новой виртуальной машины внутри гипервизора необходимо в правом верхнем углу web-интерфейса нажать «Create VM», после чего откроется окно настройки.

Окно создания виртуального сервера

Перед вами откроется окно настроек с восемью вкладками и множеством параметров. Рассмотрим основные базовые, вы их можете изменить под свои нужды. Единственный момент, который необходимо учесть при создании виртуальных машин, их ресурсы не должны превышать физические характеристики гипервизора. Логично, что имея физически на боту 16 Gb оперативной памяти, создать виртуальных несколько машин потребляющих суммарно 32 Gb у вас получится, но при превышении ресурсов гипервизор просто «уйдет в себя». Это же касается и емкости жестких дисков. За этим важно следить.

Приведу листинг по пунктам:

Окно проверки параметров при создании виртуального сервера

Сверившись, что все настроено верно, нажимаем «Finish» и ждум загрузку виртуальной машины. Когда она будет запущена, выберем ее и перейдем во вкладку «Console», где увидим окно первоначальной настройки дистрибутива.

Окно первоначальной настройки дистрибутива

Настройка виртуальной машины ничем не отличается от обычной настройки дистрибутива CentOS. Настроив все параметры, сеть, вы сможете подключаться к ней по ssh и работать как с полноценным сервером.

У нас Вы можете арендовать сервер (dedicated server) c поддержкой аппаратной виртуализации, развернуть на котором гипервизор Proxmov VE у Вас не сосотавит труда. Если во время использования инструкции у Вас возникнут вопросы, наша техническая поддержка готова прийти на помощь в любое время.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector