Установка kvm на fedora
Qemu-kvm in combination with Libvirt management toolkit is the standard virtualization methodology in Fedora. This optionally includes a local virtual network that you may use for protected communication between the virtual guest systems with each other and with the host. Its default configuration enables also natted access to the public network, specifically usful for virtual machines or containers without its own direct access to the public interface.
Шаг 3. Запустите и включите демон KVM
По умолчанию демон KVM libvirtd не запускается, запустите службу с помощью команды:
Затем включите службу для запуска при загрузке
Выводы
Совсем не трудно установить на системы под управлением дистрибутивов Fedora / CentOS / RHEL 8 такой инструмент, как KVM с пакетами виртуализации. И что каждый может научиться создавать и администрировать виртуальные системы с помощью простого веб-интерфейса Cockpit.
Спасибо за время, которое вы уделили прочтению статьи о том, как установить KVM!
Если возникли вопросы — задавайте их в комментариях!
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.
Это руководство будет охватывать полную установку гипервизора KVM и его инструментов управления в Fedora 32/31/30/29. KVM (виртуальная машина на основе ядра) — это решение для полной виртуализации систем Linux, работающих на оборудовании x86 с расширениями виртуализации (Intel VT или AMD-V).
KVM состоит из загружаемого модуля ядра kvm.ko , который обеспечивает базовую инфраструктуру виртуализации, и модуля для конкретного процессора, kvm-intel.ko или kvm-amd.ko.
Установка гостевых дополнений SPICE
Для того, чтобы в гостевой ОС появилась полная поддержка обмена данными с буфером обмена хостовой ОС, динамическое изменение разрешения виртуального дисплея и т.д., установим внутри гостя пакет SPICE Guest Tools по прямой ссылке.
Запустим скачанный файл и выполним установку всех предложенных по умолчанию компонентов, включая дополнительные драйверы виртуального дисплея QXL. Перезагрузим виртуальную машину для вступления изменений в силу.
Preparation
Настройка гостевой ОС Windows 10
Мы не будем подробно описывать все параметры конфигурации гостевой ОС, а лишь остановимся лишь на самых важных, от правильной установки которых зависит успех всей нашей задачи.
Переключимся на страницу SATA диск 1, выберем пункт Дополнительные параметры и изменим шину диска с SATA на VirtIO.
Тонкие настройки виртуального накопителя
Здесь же допускается явно задать серийный номер накопителя, который будет передан гостевой ОС (если не указано, то генерируется автоматически), а также включить поддержку процедуры TRIM в случае если хранилище было создано на SSD накопителе.
Нажмём кнопку Добавить оборудование, выберем тип Хранилище.
Подключение дискеты с драйверами
Изменим Тип устройства на Устройство чтения дискет, затем установим точку в Выбрать или создать дополнительное пространство данных и нажмём кнопку Настроить.
Выбор файла образа дискеты с драйверами
В появившемся окне переключимся на пул iso, выберем образ дискеты, нажмём Выбор тома, а затем Готово.
Переключимся на страницу Видео и в поле Модель убедимся, что установлено значение QXL. Если это не так, внесём правки.
Все остальные параметры оставим по умолчанию и нажмём кнопку Начать установку.
Finishing Cockpit-machines configuration
Open your browser and connect to the Cockpit instance of your host server. Consult the post-installation guide to find out the possible connection paths. Log in as root or with your administrative account. In the overview (start) page select Virtual Machines in the left navigation column.
If there is no entry Virtual Machines in the navigation column, the cockpit-machines module was left off in the installation step above. Select Applications further down and then Machines for installation.
Networks
A box on the right above the virtual machines list shows 1 Network and lists the networks managed by libvirt. By default, it contains the internal network default with the interface virbr0. The list does not contain the external interface. It is managed by the server. Nevertheless, it is as well available for virtual machines.
Enabling hardware virtualization support
This section covers setting up libvirt on your system. After setting up libvirt , you can create virtualized guest operating systems, also known as virtual machines.
Установка гостевой Windows 10
Запускаем стандартную установку данной ОС, выбираем редакцию, вводим или пропускаем (для получения 30 дневной пробной версии) серийный номер, принимаем лицензионное соглашение с конечным пользователем, затем Выборочная установка ибо нам требуется создать разделы на диске и установить драйвер VirtIO для ранней стадии загрузки системы.
Ошибка, связанная с отсутствием драйвера VirtIO
Укажем версию драйвера Red Hat VirtIO SCSI controller для Windows 10 и нажмём Далее.
С этого момента программа установки наконец обнаружит наш виртуальный накопитель и предложит создать разделы, а затем установить на него операционную систему.
Далее весь процесс установки вполне стандартный и описывать его мы не будем.
Введение
Многие пользователи для запуска виртуальных машин до сих пор предпочитают использовать VirtualBox, поэтому в данной статье мы решили рассмотреть альтернативу, имеющую ряд серьёзных преимуществ:
- нет необходимости в установке out-of-tree модулей ядра, т.к. они уже входят в его состав;
- корректная работа на конфигурациях с активной технологией UEFI Secure Boot;
- более быстрая работа гипервизора за счёт отсутствия необходимости переключения между режимами ядра и пользователя.
Подключение к ОС виртуальной машины с помощью SSH
Теперь попробуем с помощью SSH подключиться к установленной на виртуальную машину операционной системе из нашей хост-сети. Для этого нужно ввести в командную строку следующий набор команд, не забыв заменить 10.42.0.197 на IP вашей гостевой системы:
Также на панели управления виртуальной машиной есть дополнительные кнопки, позволяющие ее:
Теперь создадим файл, чтобы воспользоваться хуками для проброса портов на нашу виртуальную машину. Для этого воспользуемся следующей командой:
В открывшемся текстовом редакторе нам нужно будет ввести следующий текст:
Настройка прав доступа
Для работы с виртуальными машинами внутри системного сеанса необходимо состоять в особой группе libvirt, поэтому добавим нашу основную учётную запись в неё:
Установка модуля виртуализации KVM на CentOS 8
Следующий шаг — установка модуля виртуализации. Осуществить эту операцию можно, воспользовавшись следующей командой:
Также нужно установить некоторые пакеты. Например, virt-install позволит вам легко создавать виртуальные системы через интерфейс командной строки. Тогда как пакет virt-viewer — позволяет осуществлять мониторинг существующих виртуальных машин. Для их установки можно воспользоваться одной командой:
Безусловно, стоит проверить, сконфигурирован ли хост для активации драйверов гипервизора Libvirt. Для этого предназначена команда virt-host-validate:
Теперь нам осталось лишь запустить демон Libvirt. В этом поможет следующая команда:
Также его обязательно нужно добавить в список приложений, автоматически запускающихся при включении системы:
Рекомендуем дополнительно убедиться в работоспособности Libvirt, проверив его статус:
Настройка системного сеанса KVM
4 комментария к записи
На моей системе модуль вывода видео QXL работает значительно лучше Virtio и поддерживает автоматическое изменение разрешения виртуального экрана в зависимости от размера окна virt-manager.
Драйверы QXL входят в комплект гостевых дополнений Virtio.
Драйвер Virtio тоже должен поддерживать динамическое изменения размера.
Добрый день! Подскажите, как в KVM установить Windows на отдельный жёсткий диск?
Необходимо добавить блочное устройство в разделе Add Hardware по его UUID. Доступно только в системной сессии KVM.
Fedora uses the libvirt family of tools as its virtualization solution.
СПОНСОР
Мы используем файлы cookie на нашем веб-сайте, чтобы предоставить вам наиболее релевантный опыт, запоминая ваши предпочтения и повторные посещения. Нажимая «Принять все», вы соглашаетесь на использование ВСЕХ файлов cookie. Однако вы можете посетить «Настройки файлов cookie», чтобы предоставить контролируемое согласие.
Privacy Overview
Этот веб-сайт использует файлы cookie, чтобы улучшить вашу работу во время навигации по веб-сайту. Из них файлы cookie, которые классифицируются как необходимые, хранятся в вашем браузере, поскольку они необходимы для работы основных функций веб-сайта. Мы также используем сторонние файлы cookie, которые помогают нам анализировать и понимать, как вы используете этот веб-сайт. Эти файлы cookie будут храниться в вашем браузере только с вашего согласия. У вас также есть возможность отказаться от этих файлов cookie. Но отказ от некоторых из этих файлов cookie может повлиять на ваш опыт просмотра.
Создание виртуальных машин и управление ими через Cockpit
Для начала вернитесь в панель инструментов Cockpit. Там выберите пункт «Виртуальные машины» (Virtual Machines). Там вы должны увидеть подпункт «Создать ВМ» (Create VM).
Снова появится всплывающее окно, куда следует ввести следующие параметры новой виртуальной машины:
- подключение (Connection);
- имя (Name, например — ubuntu18.04);
- тип источника для установки (Installation Source Type, в тестовой системе мы сохранили образы ISO в пуле хранения — /var/lib/libvirt/images/);
- источник для установки (Installation Source);
- хранилище (Storage);
- размер (Size);
- память (Memory).
Важно: данные о поставщике операционной системы и о самой ОС автоматически заполнялся после указания источника для установки.
Также обязательно поставьте отметку в чекбоксе напротив опции немедленного запуска виртуальной машины. После этого можно нажать кнопку «Создать» (Create).
В результате ваша виртуальная машина должна автоматически запуститься с использованием указанного ISO-образа. После этого стоит продолжить установку ОС (например, Ubuntu 18.04).
Нажатие кнопки «Сетевые интерфейсы» (Network Interfaces) на панели управления виртуальной машиной покажет вам, что в качестве источника используется созданный ранее мост.
Стоит отметить, что во время настройки сетевого интерфейса вы увидите, как Ethernet виртуальной системы получает IP от DHCP-сервера сети, к которой подключена хост-система.
Важно: вам следует установить пакет OpenSSH, чтобы иметь возможность подключаться через SSH к виртуальной операционной системе через любой компьютер, подключенный к хост-сети.
Как только операционная система установится, перезагрузите свою виртуальную машину. После этого выберите не панели инструментов пункт «Диски» (Disks) и отключите устройство под названием cdrom.
Далее нажмите кнопку «Запуск» (Run), чтобы активировать виртуальную машину.
После этого с помощью пункта панели инструментов «Консоли» (Consoles) можно войти в операционную систему с использованием той учетной записи, которую вы создали во время ее установки.
Создание подключения к сеансу
Запустим Менеджер виртуальных машин (virt-manager) из меню используемой графической среды.
Главное окно Virt Manager
В главном окне менеджера виртуальных машин, нажмём правой кнопкой мыши по QEMU/KVM, затем в контекстном меню выберем вариант Отключиться и Удалить. Подтвердим удаление.
В меню Файл выберем Добавить соединение.
Создание пользовательского сеанса KVM
В поле Гипервизор выберем пункт QEMU/KVM сеанс пользователя, затем установим флажок в чекбокс Подключаться автоматически и нажмём Подключиться. Новый пункт появится в списке.
Installing libvirt virtualization software
Installing the software is quite simple.
Check to really install guestfs-tools , not libguestfs-tools (unless you need additional windows guests related software). The package guestfs-tools provides a basic set of various useful tools to maintain virtual disks. Additional packages provide support for specific use cases, e.g. various file systems or forensic support. Use dnf search guestfs to get a list of available packages.
Do never install the group @virtualization onto a Fedora Server. It includes various graphical programs and libraries that are not usable on headless servers.
Next check the SELinux labels
Usually, the installation adjusts the SELinux labels accordingly. Otherwise, adjustment it manually.
If everything is correct, the next step is to activate autostart after re-boot and start KVM and libvirtd.
With Fedora 35 libvirt switched to a modular archtecture (version 7.6.0-3) while used a single monolithic libvirt daemon up to Fedora 34 (version 7.0.0-x). The installation procedure is the same because the packaging system takes care of the differences. But activation and start up differs as well as installation and configuration of an internal protected virtual network between VMs und host and VMs.
Adjusting libvirt internal network configuration
The default configuration of the internal network (virbr0) activates just a DHCP Server. If the virtual machines should also be able to communicate with each other and the host, then adding a DNS server is at least very advantageous. It is easier and less error-prone to address VMs and the host by name instead of IP numbers.
Use the libvirt tool to adjust the default network. Replace names and placeholders as required. Delete the line with "forward mode = 'nat'" if you do not want to allow access to the public network via the virtual network.
Activate the modified configuration.
Check if the DNS resolution works.
Как работает KVM
Для начала попробуем объяснить принципы, на базе которых реализована KVM. Прежде всего остального, все виртуальные системы в ней обособлены как отдельные процессы Linux. Все они обладают своим виртуальным аппаратным обеспечением:
- процессором;
- оперативной памятью;
- сетевой картой;
- жестким диском.
Также каждая виртуальная машина управляется ядром .
Это интересно: с помощью KVM можно реализовать вложенную виртуализацию, запуская виртуальные системы в уже работающих виртуальных системах.
Стоит отметить, что приложение может эмулировать различное аппаратное обеспечение архитектуры x86 и поддерживает средства аппаратной виртуализации — Intel VT и AMD-V. За счет этого можно добиться следующих преимуществ:
- эффективной изоляции виртуальных систем и повышенного уровня безопасности;
- использования SELinux (Security-Enhanced Linux) с технологией sVirt, обеспечивающей безопасную виртуализацию;
- наследования функции управления памятью ядра;
- миграции в автономном режиме в реальном времени (передачи активной виртуальной системы между разными физическими хостами).
Все это и многое другое делает KVM стандартным инструментом многих системных администраторов и других IT-специалистов по всему миру.
Установка драйверов Virtio гостевой ОС
По окончании установки сразу завершаем работу виртуальной машины (Пуск — Выключение), нажимаем кнопку Показать виртуальное оборудование на панели инструментов, переходим на страницу SATA CDROM 1, жмём Browse и внутри пула iso выбираем ISO-образ с гостевыми драйверами Virtio.
Подключение образа гостевых драйверов
Применим изменения, а затем перейдём на страницу Дисковод 1, нажмём кнопку Удалить и Применить, т.к. он более нам не требуется.
Удаление образа FDD с драйверами
На панели инструментов нажмём кнопку Показать графическую консоль, а затем Включить виртуальную машину.
Откроем Проводник Windows, перейдём на виртуальный CD диск D: и запустим программу установки virtio-win-gt-x64.exe.
Запуск установки гостевых дополнений Virtio
Выберем рекомендуемые Red Hat компоненты.
Выбор компонентов пакета драйверов Virtio
Разрешим установку драйверов с цифровой подписью Red Hat, нажав Установить.
Подтверждение установки драйверов Virtio
Создание каталогов для образов
По умолчанию предлагается использовать каталог ~/.local/share/libvirt/images для хранения дисковых образов виртуальных машин, однако для удобства мы создадим новые.
Это опциональное действие. Можно использовать пул default для любых целей.
В главном окне менеджера выделим пункт QEMU/KVM сеанс пользователя, затем в меню Правка выберем пункт Свойства подключения и переключимся на вкладку Пространство данных.
Настройки пула пользовательского сеанса
Создадим два каталога: images для дисковых образов виртуальных машин и iso для ISO образов, из которых будет производиться установка операционных систем:
В левой панели окна менеджера пространств данных нажмём кнопку Добавить пул (с символом плюс).
Добавление пользовательского пула
В поле Название для пула с дисковыми образами укажем images, Тип — каталог в файловой системе, а Target Path — каталог на диске (в нашем случае — созданный ранее ~/virt/images). Нажмём Готово и пул появится в списке. Подтвердим сохранение изменений.
Повторим то же самое, но для ISO образов:
Если всё сделано верно, в левой панели появятся два новых пула — images и iso. Выберем каждый и убедимся, что в чекбоксе Автозапуск при загрузке установлен флажок. Если это не так, исправим и нажмём Применить.
Пул с именем default теперь допускается удалить, хотя это и не обязательно. Для этого выберем его, нажмём кнопку Остановить пул, а затем Удалить пул и подтвердим намерение.
Storage pools
When first used, the list of virtual machines displayed in the center of the page is empty, of course. A box left above that list displays 0 Storage pools. Libvirt uses pools to determine the location of typical files. The installer has already created the directories. Only the pools need to be defined here.
Typically you use one Pool for installation media, stored at /var/lib/libvirt/boot. "Installation Media" would be a suitable descriptive pool name. Select 0 Storage pools in the box and then Create storage pool. A new form opens.
If you are logged in as an adminstrative user (even if having used sudo su - ), you are asked to select a connection type, "system" or "session". This selection is presented in various configuration forms, so some explanation here. Use "system" for a production deployments, what you do in most cases. Select "sesssion" in the special case of testing, development, and experimentation. The "session" option does not support any custom or advanced networking, but works pretty much everwhere (including containers) and without any privileges. The libvirt project provides additional information for developers. If you are logged in directly as root, this line doesn’t show up. Instead, everything is treated as system. i.e. production deployment (never do development or experimentation as root).
Next enter "Installation media" as the name, "Filesystem directory" as the type, and /var/lib/libvirt/boot as the target path.
In version 264 there is a bug that blocks the creation of storage pools (see Bug 2068883. Proceed without creating pools for the time being.
In most cases, the (virtual) hard disk used for a virtual machine is a disk image file stored in /var/lib/libvirt/images. Define another pool named "Disk images" accordingly.
Activate both pools in the drop down menu of each pool.
You may create additional pools as needed, e.g. disk images via iSCSI in a SAN or as a logical volume in a volume group (LVM) on the host’s local disk. The latter offers a better performance in theory, but the practical gain is usually rather small, if any. We will not go into further detail here for the time being.
Создание каталогов для образов
По умолчанию предлагается использовать каталог /var/lib/libvirt/images для хранения дисковых образов виртуальных машин, однако место внутри корневого раздела у большинства ограничено, поэтому мы создадим новое на отдельном разделе диска.
Внимание! Для системного сеанса не следует указывать в качестве хранилища каталоги, расположенные внутри /home, т.к. SELinux настроен на полную блокировку доступа к домашним каталогам пользователей для любых системных сервисов и по этой причине гипервизор не сможет работать с ними.
В главном окне менеджера выделим пункт QEMU/KVM, затем в меню Правка выберем пункт Свойства подключения и переключимся на вкладку Пространство данных.
Стандартные настройки хранения образов
Создадим новый раздел диска, отформатируем его в любую поддерживающую Unix-права доступа файловую систему (рекомендуется ext4 или xfs), пропишем в /etc/fstab и смонтируем например в качестве /media/virt.
Перейдём в созданный раздел и создадим два каталога: images для дисковых образов виртуальных машин и iso для ISO образов, из которых будет производиться установка операционных систем:
В левой панели окна менеджера пространств данных нажмём кнопку Добавить пул (с символом плюс).
Добавление нового пула
В поле Название для пула с дисковыми образами укажем images, Тип — каталог в файловой системе, а Target Path — каталог на диске (в нашем случае — созданный ранее /media/virt/images). Нажмём Готово и пул появится в списке. Подтвердим сохранение изменений.
Повторим то же самое, но для ISO образов:
Если всё сделано верно, в левой панели появятся два новых пула — images и iso. Выберем каждый и убедимся, что в чекбоксе Автозапуск при загрузке установлен флажок. Если это не так, исправим и нажмём Применить.
Пул с именем default теперь допускается удалить, хотя это и не обязательно. Для этого выберем его, нажмём кнопку Остановить пул, а затем Удалить пул и подтвердим намерение.
На этом базовая настройка завершена и можно приступать к установке гостевых операционных систем.
Настройка пользовательского сеанса KVM
Шаг 1. Убедитесь, что в вашем процессоре есть расширения виртуализации Intel VT или AMD-V.
Первый шаг — убедиться, что ваш процессор имеет расширения виртуализации Intel VT или AMD-V. В некоторых системах это отключено в BIOS, и вам может потребоваться его включить.
Создание гостевой ОС Windows 10
На главной панели инструментов нажмём кнопку Создать виртуальную машину или выберем одноимённый пункт из меню Файл.
В появившемся окне мастера на первом шаге выберем пункт Локальный ISO или cdrom.
Мастер создания виртуальной машины
На втором шаге мастера нажмём кнопку Обзор, выберем из списка загруженный ранее ISO образ и нажмём Выбор тома.
Оставляем флажок в чекбоксе Automatically detect from installation media/source, чтобы Virt Manager самостоятельно подобрал оптимальные параметры для виртуальной машины и жмём Вперёд.
Установка гостевой ОС из ISO образа
Указываем выделяемый виртуальной машине объём оперативной памяти и количество ядер процессора.
Теперь создадим локальный дисковый образ для гостевой ОС.
Выбор пространства данных для VM
Установим флажок в чекбокс Настроить пространство хранения данных, а также точку около пункта Выбрать или создать дополнительное пространство данных и нажмём кнопку Настроить.
Создание нового тома внутри пула
В левой панели переключимся на пул images, затем нажмём кнопку Создать том.
Создание нового тома
Создадим новый том для гостевой ОС:
Выберем созданный том в списке и нажмём кнопку Выбор тома.
На заключительном шаге мастера будет предложено указать название для виртуальной машины (пробелы и русские буквы также не допускаются).
Финальный шаг мастера создания VM
Обязательно установим флажок в Проверить конфигурацию перед установкой и нажмём Готово.
Выбор режима работы KVM
KVM поддерживает работу в двух режимах:
- системный сеанс — qemu:///system — виртуальные машины будут запускаться с повышенными правами от имени пользователя libvirt с полноценной поддержкой сети и общими для всех пулами данных;
- пользовательский сеанс — qemu:///session — виртуальные машины будут запускаться с правами текущего пользователя с индивидуальным пулом и поддержкой сети при помощи qemu-bridge.
Более полное сравнение можно найти здесь (на английском языке).
Системный сеанс считается enterprise-ready решением, а пользовательский наиболее безопасным.
Настройка сетевого моста в Cockpit
Далее нам нужно создать виртуальный сетевой коммутатор — сетевой мост. Он нужен для того, чтобы подключить виртуальные машины к той же сети, в которой работает хост.
После того, как запускается демон Libvirt, в качестве сетевого интерфейса по умолчанию активируется virbr0. Это виртуальный сетевой коммутатор, работающий в NAT-режиме.
Специально для этой статьи мы создадим сетевой интерфейс в режиме моста с именем br0. Который обеспечит присутствие виртуальных систем в сети, к которой подключен хост-компьютер.
Для этого следует зайти в веб-интерфейс Cockpit и там выбрать пункт панели инструментов «Сети» (Networking). После этого нужно выбрать подпункт «Добавить мост» (Add Bridge).
Далее вы должны увидеть всплывающее окно. В нем нужно указать следующие данные:
- имя моста;
- подчиненные устройства моста или портовые устройства (к примеру — enp2s0, интерфейс Ethernet).
После этого нужно нажать кнопку «Принять» (Apply).
В списке доступных интерфейсов должен появиться ваш мост. Спустя пару секунд интерфейс Ethernet должен быть деактивирован.
Создание подключения к пулу
Запустим Менеджер виртуальных машин (virt-manager) из меню используемой графической среды.
Главное окно Virt Manager
Если в списке отсутствует пункт QEMU/KVM, добавим его, вызвав диалог создания нового подключения через меню Файл — Добавить соединение.
Создание подключения
В поле Гипервизор выберем пункт QEMU/KVM, затем установим флажок в чекбокс Подключаться автоматически и нажмём Подключиться. Новый пункт появится в списке как показано на скриншоте выше.
Установка KVM на Fedora / CentOS / RHEL 8
Прежде всего остального, следует проверить, поддерживает ли ваше аппаратное обеспечение технологию виртуализации. Для этого введите в командную строку Linux следующие команды:
Кроме того, следует убедиться в том, что модули KVM уже загружены в ядро вашей операционной системы. Для этого достаточно ввести следующую команду:
Пример вывода (тестовая платформа на базе Intel):
Кроме того, в данной статье мы решили дополнительно использовать веб-интерфейс Cockpit. С помощью которого будем создавать виртуальные системы GNU / Linux и заниматься их системным администрированием.
Настройка сети в пользовательском сеансе
Создадим сетевой мост для виртуальных машин:
Добавим основное проводное соединение в качестве ведущего для моста:
Здесь вместо enp3s0 укажем физический интерфейс проводного соединения (может быть получен из вывода nmcli device status).
Разрешим использование моста в qemu-bridge-helper:
Добавим правила для файрвола:
На этом настройка пользовательского сеанса завершена и можно приступать к установке гостевых операционных систем.
Настройка Cockpit
Cockpit — это удобный и простой в освоении инструмент, предназначенный для мониторинга и администрирования серверов под управлением Linux через веб-браузер. С его помощью можно легко выполнять следующие виды задач:
- мониторинг трафика и настройка сетевых подключений;
- управление дисковым пространством;
- создание виртуальных систем;
- чтение системных логов.
Также авторизация в веб-интерфейсе данного инструмента происходит с использованием данных локальной учетной записи вашей системы. И права доступа, которыми обладает выбранная учетная запись, определяют доступные Cockpit возможности по управлению системой. То есть, для выполнения большинства операций нужно авторизоваться с помощью данных аккаунта, имеющего права суперпользователя (sudo).
Стоит отметить, что системы под управлением дистрибутивов CentOS 8 и RHEL 8 уже содержат установленный и активированный инструмент Cockpit. В том случае, если приложение отсутствует — его поможет установить простая команда dnf. Помимо всего прочего, для работы с виртуальными системами на основе Libvirt следует установить соответствующее расширение cockpit-machines. Для этого введите в командную строку следующую команду:
Далее нужно дождаться установки указанного пакета. После чего — можно активировать сокет Cockpit:
Кроме того, важно настроить его автозапуск после включения системы:
Также следует проверить статус сокета, чтобы убедиться в его работоспособности. Для этого введите в консоль следующую команду:
Следующий шаг — добавление службы Cockpit в исключения вашего брандмауэра и перезагрузите его. Для этого можно воспользоваться командой firewall-cmd:
Теперь запустите свой веб-браузер и введите в адресную строку следующий URL-адрес:
Также можно попробовать такой URL:
В том случае, если вы правильно ввели свои данные и правильно выполнили предыдущие шаги — откроется веб-консоль приложения.
Storage set up
Libvirt stores its data including the image files of the virtual hard disk(s) for the guest systems in /var/lib/libvirt. If you adhere to the default partitioning concept, the libvirt application data is stored in its own logical volume that you have to create in advance. You need to specify the size of the storage area, a unique name, and the accommodating VG (fedora_fedora in case of default partitioning). In the new logical volume, create an xfs file system and mount at /var/lib/libvirt.
Cockpit
If there is no valid public certificate installed so far, a browser warning appears and you have to accept an exception for the self-signed certificate. The subsequent login can use either the root account or an unprivileged administrative user account.
In Cockpit select "Storage" in the left navigation column and then the target volume group in the device list at the top of the right column of the opening window. The center content area changes to show the selected volume group at the top and a list of existing logical volumes below it that may be empty for now.
To create a logical volume select "Create logical volume" next to the 'Logical volumes' section title. In the form that opens, fill in the name of the new logical volume at the top, e.g. in this case 'libvirt'. Leave the usage field as 'File system' and adjust the size at the bottom, e.g. 500 GiB. Then create the LV.
In the 'Logical volumes' list, a new line appears with the LV name, libvirt in this example, as part of the device part on the right side. Expand that line and select 'format' on the right side. In the form that opens, fill in the name of the new file system, e.g. in this case 'libvirt', and the mount point, /var/lib/libvirt in this case. Leave the other fields at their default values. Select 'Format' and Cockpit will handle everything else.
After completion, the file system is immediately available and is also permanently configured in the system accordingly.
Command line
Some administrators may prefer the command line for easy scripting. Adjust size and VG name accordingly.
Creating a guest with virt-install
virt-install is a command-line based tool for creating virtualized guests. Execute virt-install --help for command line help, or you can find the manual page at man 1 virt-install .
Planning VM Resources
Adjust the ram, vcpus, and disk size parameters according to the resources you have available.
Storage: An easy way to check your disk size from a bash shell is using the df(1)` utility from the shell:
Memory: You can check your available memory from the shell using free(1):
VCPU: You can check your processor information using lscpu(1) :
When allocating resources to your VM, keep in mind the minimum system requirements for the version of Fedora you are installing as well as your use case requirements. For Fedora 36, you can find this in the Release Notes.
Create Storage for the VM
The libvirt default storage pool is located at `/var/lib/libvirt/images - which is the parent file path we use in this example. For individuals who are lacking enough storage in that path, you can simply mount a new disk or partition to that directory path (from the BASH shell, type man 1 mount ) or select a new path. In the example virt-install command below, the disk did not exist prior to running virt-install. When the specified disk is not pre-existing, you must specify the size so virt-install can create a disk for you. If your disk already exists, you can safely remove the ,size=20 parameter from the disk argument.
You have several disk storage options for your VM. While it’s outside the scope of this article to discuss these in detail, the following are a few common options. These examples use 20G as the upper limit for disk size, but you can adjust this size to fit your needs.
Again, you do not need to manually allocate storage using the example options shown below if you specify the size parameter in the virt-install example shown below.
KVM (Kernel-based Virtual Machine) — это инструмент с открытым исходным кодом для виртуализации. Который отличается высоким уровнем интеграции с операционными системами семейства GNU / Linux.
Данное приложение представляет собой загружаемый модуль ядра, который модифицирует вашу ОС в гипервизор Типа 1 (bare-metal). С помощью которого можно создавать платформу, используемую для запуска виртуальных машин (ВМ).
Так каким образом можно установить KVM на системы под управлением дистрибутивов Fedora / CentOS / RHEL 8? Давайте попробуем разобраться вместе!
Содержание:
Adjusting the hosts DNS resolution configuration
In order for the host to initiate communication with its virtual machines, it must query the name server set up in the previous step for internal domains. So we need Split DNS.
The name resolver service systemd-resolved introduced with Fedora 33 can do this automatically. But libvirt handles its interfaces on its own and must therefore inform systemd-resolved about it. A script in a hook provided by libvirt can take care of this. You have to adjust the local domain name (as of $ in the script below) accordingly!
Check, if /etc/resolv.conf is a link and not a file. Activate modified local DNS resolving
In case it is a file, fix it:
Test the hook file
It is useful to modify the host’s search path resolve a short single hostname to the internal network.
Check the functionality of name resolution with internal and external addresses.
+ Everything should work fine now.
Hardware requirements
QEMU / KVM require hardware virtualization support. The first thing to do is to make sure that it is available.
The command will return one line per cpu core if virtualization is enabled. If not, you should first check in the BIOS whether virtualization is disabled.
Activation and startup with Fedora 34
Enable automatic startup at boot and start libvirt.
By default, libvirt creates a (virtual) bridge with an interface virbr0, the IP 192.168.122.1 and the libvirt-internal name default. In addition, a separate firewall zone libvirt is set up and assigned to the internal interface. Check if everything is running as expected.
Шаг 5. Создайте тестовый экземпляр
Сначала начните с создания сети моста, которая будет подключена к вашим экземплярам, приведенные ниже руководства должны помочь.
Когда у вас будет готов интерфейс моста, создайте тестовый экземпляр с помощью интерфейса командной строки или Virtual Machine Manager.
Установка выполняется в текстовом режиме, но процедура установки аналогична графическому интерфейсу. После завершения установки перезагрузите экземпляр и войдите в систему.
Вы также можете войти через консоль:
Нажмите клавишу , чтобы получить:
Установите KVM в Fedora 32/31/30/29
В этом разделе мы рассмотрим все шаги по установке последней версии гипервизора KVM в Fedora. Мы также включим установку таких инструментов управления, как libguestfs-tools
Networking Support
By default, libvirt will create a private network for your guests on the host machine. This private network will use a 192.168.x.x subnet and not be reachable directly from the network the host machine is on. However, virtual guests can use the host machine as a gateway and can connect out via it. If you need to provide services on your guests that are reachable via other machines on your host network you can use iptables DNAT rules to forward in specific ports, or you can set up a bridged environment.
See the libvirt networking setup page for more information on how to setup a bridged network.
Installing virtualization software
When installing Fedora, you can install the virtualization packages by selecting Virtualization in the Base Group in the installer. See Installing Using Anaconda.
For existing Fedora installations, you can install the virtualization tools via the command line using the Virtualization Package Group. To view the packages, run:
Run the following command to install the mandatory and default packages in the virtualization group:
Alternatively, to install the mandatory, default, and optional packages, run:
After the packages install, start the libvirtd service:
To start the service on boot, run:
To verify that the KVM kernel modules are properly loaded:
If this command lists kvm_intel or kvm_amd , KVM is properly configured.
Шаг 4. Установите графический интерфейс диспетчера виртуальных машин
Если у вас есть настольная версия Fedora, вы можете установить, virt-manager что дает пользователям графический интерфейс для управления вашими виртуальными машинами.
Creating virtual machines
The installation of Fedora guests using Anaconda is supported. The installation can be started on the command-line using the virt-install program or in the user interface program virt-manager .
Completed
Virtualization is now ready to use on the server and you can start setting up guest VMs.
Установка KVM
Первым делом установим ряд необходимых пакетов:
По окончании активируем автоматическую загрузку сервиса libvirtd при помощи systemd:
Внимание! Сразу после этого действия может отключиться текущее сетевое соединение из-за изменения в конфигурации адаптеров и появления новых виртуальных. Это нормальное явление. Именно по этой причине не следует пытаться установить KVM через SSH подключение.
System requirements
To run virtualization on Fedora, you need:
At least 600MB of hard disk storage per guest. A minimal command-line Fedora system requires 600MB of storage. Standard Fedora desktop guests require at least 3GB of space.
At least 256MB of RAM per guest, plus 256MB for the base operating system. At least 756MB is recommended for each guest of a modern operating system. A good way to estimate this is to think about how much memory is required for the operating system normally, and allocate that amount to the virtualized guest.
KVM requires a CPU with virtualization extensions, found on most consumer CPUs. These extensions are called Intel VT or AMD-V. To check whether you have CPU support, run the following command:
If this command results in nothing printed, your system does not support the relevant virtualization extensions. You can still use QEMU/KVM, but the emulator will fall back to software virtualization, which is much slower.
Activation and startup with Fedora 35/36
The libvirt Fedora installation procedure provides systemd startup scripts that take care of enabling and starting the various unix sockets and services as needed. This includes support for qemu, xen and lxc. Configuration of vbox is disabled by default. The drivers determine during startup whether the required prerequisites are met and abort otherwise. The default services, in case of Fedora Server qemu and lxd, are started at boot time. If not used for about one minute they are deactivated, but will restart on demand as soon as a virtual machine gets started (either by command line or Cockpit service). No need for administrator intervention at all.
The network configuration is slightly different. The services don’t start at boot time, like qemu, lxc, etc., but on demand at first access. Therefore, you won’t get an interface virbr0 until any libvirt servive request it. That’s sometimes inconvenient, e.g. if you use that interface for non-libvirt services, too (e.g. lxd or nspawn container).You may prefer to enable virt-network service anyway:
Optionally, if you are planning to use the virtual network independently from starting virtual machines or you need the virbr0 interface at boot time anyway, enable libvirt’s internal network. Otherwise you may skip this step.
Alternatively, you may want do completly discard libvirt’s internal network. You’ll take this path, if you set up an iternal network with NetworkManager tools,
Reboot the system to activate and test the virtualization functionality
Check the successful start via a status query
Upon completion of a boot, an interface virbr0 as well as a dnsmasq server is now available, regardless of when and if a libvirt service is started. The virtnetwork service will terminate if no libvirt service starts up within the first 1-2 minutes (and later restart automatically if needed). But the interface and the dnsmasq server remain regardless.
The virtualization services virtqemud.service, etc will be dormant it no VM has been started as well. But the socket is active and will start the corresponding service on demand.
Подготовка к установке
Для установки нам потребуются:
- официальный ISO образ операционной системы Windows 10, который можно скачать с официального сайта Microsoft (30-дневная пробная версия);
- ISO образ с набором драйверов Virtio для гостевых операционных систем; для ранней стадии установки.
Скачаем указанные образы, скопируем их в каталог /media/virt/iso (системный сеанс), либо ~/virt/iso (пользовательский сеанс).
Шаг 2: Установите KVM / QEMU в Fedora 32/31/30/29
Установите необходимые пакеты виртуализации в вашей системе Fedora, запустив:
После установки убедитесь, что модули ядра загружены.
Также установите полезные инструменты для управления виртуальными машинами.
У нас есть руководство о том, как использовать libguestfs-tools :
Как смонтировать виртуальный диск ВМ на гипервизор KVM
These nice people helped write this page:
Fredrik Arneving, Peter Boy, Jan Kuparinen
All Fedora Documentation content available under CC BY-SA 4.0 or, when specifically noted, under another accepted free and open content license.
В данной статье мы подробно рассмотрим как правильно настроить систему виртуализации KVM/libvirt в Fedora и установим в качестве гостевой ОС Microsoft Windows 10.
Читайте также: