В этой статье мы подробно расскажем о том, как установить KVM в Ubuntu. Подобные навыки сегодня нужны во многих направлениях сектора информационных технологий. И точно пригодятся системным администраторам, инженерам DevOps и многим другим ИТ-специалистам. Потому что позволяют:
- существенно повысить уровень безопасности за счет изоляции программного обеспечения от аппаратной платформы и от внешнего мира;
- сократить затраты труда на развертывание и настройку, благодаря многократному использованию заранее созданного образа операционной системы;
- получить безопасную тестовую среду для проверки ПО и новых технических решений.
Содержание:
Что такое KVM
KVM — это Kernel-based Virtual Machine, что переводится как «виртуальная машина на основе ядра операционной системы». Этот инструмент имеет открытый исходный код на основе ядра Linux и распространяется бесплатно. В результате установки KVM операционная система становится гипервизором 2-го типа.
Читайте также: Как установить KVM на Fedora / CentOS / RHEL 8.
Пошаговое руководство по установке KVM в Ubuntu
Теперь давайте перейдем непосредственно к установке виртуальной машины на основе ядра KVM в Ubuntu.
Проверяем поддержку виртуализации на нашем компьютере
Прежде всего давайте проверим, возможна ли на Вашем компьютере виртуализация KVM в Ubuntu. Для этого Ваш центральный процессор (CPU) должен поддерживать одну из двух самых распространенных технологий аппаратной виртуализации:
- AMD-V;
- Intel-VT.
Проверить поддержку аппаратной виртуализации Вашим процессором в операционной системе Ubuntu можно за счет использования команды egrep
с опцией -c
. Для этого вводим ее в командную строку со следующим аргументом:
Вывод данной команды может принять следующие значения:
- 0 — к сожалению, Ваш процессор не поддерживает ни одной технологии аппаратной виртуализации;
- >0 — технология аппаратной виртуализации поддерживается Вашим процессором.
В нашем случае вывод команды содержит цифру «4» — то есть процессор компьютера поддерживает виртуализацию.
Важно: расширение аппаратной виртуализации может потребоваться включить в меню BIOS.
Также нужно проверить, поддерживается ли нашим процессором виртуализация именно с использованием KVM. Для этого воспользуемся утилитой kvm-ok.
Если в Вашей операционной системе Ubuntu отсутствует программа kvm-ok — устанавливаем ее с помощью команды apt install
:
Важно: команду apt install следует выполнять с правами суперпользователя (root) — через команду sudo
.
Далее выполняем команду kvm-ok
, чтобы проверить совместимость оборудования с виртуализацией KVM в Ubuntu (также от имени суперпользователя):
Вывод команды свидетельствует о том, что виртуализация KVM поддерживается, и мы можем приступать к установке.
Устанавливаем KVM в Ubuntu
Давайте вместе попробуем установить KVM в Ubuntu, virt-manager, bridge-utils и другие зависимости утилиты. Для этого вводим в командную строку команду apt install
со следующими аргументами:
Безусловно, не будет лишним по пунктам разобрать, что именно и для чего мы устанавливаем:
- qemu — «быстрый эмулятор», который позволяет использовать технологию аппаратной виртуализации;
- qemu-kvm — основной пакет виртуальной машины на базе ядра KVM;
- libvirt-daemon — это демон виртуализации;
- virtinst — инсталлятор гостевых виртуальных машин.
Теперь проверяем работу демона виртуализации — libvirt-daemon. Для этого вводим от лица суперпользователя в терминал Linux команду systemctl status
:
Создаем виртуальную машину в Ubuntu
Мы успешно справились с проверкой поддержки технологии аппаратной виртуализации. И установили KVM со всеми зависимостями. Теперь настало время создать виртуальную машину с помощью команды virt-install.
Создаем виртуальную машину через командную строку Linux
Virt-install — это команда для создания виртуальных машин через командную строку Linux. Для успешного создания виртуальной машины с помощью этого инструмента нужно прописать ряд параметров. Если в качестве примера взять образ Windows Server 2022, то для этого мы создаем скрипт с названием start-windows-2k22.sh:
Далее помещаем в наш скрипт следующий текст:
Чтобы узнать, к какому семейству дистрибутивов Linux относится наша ОС, вводим в командную строку команду osinfo-query os
:
Скачиваем драйвера для Windows:
Подключаем диск с драйверами:
После выполнения команды virt-install виртуальная машина загрузится и будет сразу же готова к установке операционной системы. К рабочему столу виртуальной машины можно подключиться по VNC.
Создаем скрипт для проброса портов на виртуальную машину в KVM
Воспользуемся технологией хуков — создаем файл qemu в папке /etc/lib/libvirt/hooks:
Далее помещаем в наш скрипт следующий текст:
Аналогично будет выглядеть процесс подготовки скрипта с целью создания виртуальной машины для хостинга:
В таком случае помещаем в наш скрипт следующий текст:
Скачиваем образ ubuntu22.04:
Дописываем в конец файла /etc/libvirt/hooks/qemu скрипт для проброса 80 порта на веб-сервер Apache:
Если Вы правильно выполнили все приведенные в статье рекомендации — у Вас должно было получиться!
Читайте также: Как узнать IP-адрес гостевой виртуальной машины Linux KVM.
Выводы
В этой статье мы рассказали и показали, как установить KVM, как настроить KVM в Linux Ubuntu. И продемонстрировали, что начать использовать возможности аппаратной виртуализации в Linux намного проще, чем кажется на первый взгляд. Кроме того, мы показали, как работать с Kernel-based Virtual Machine через командную строку командой virt-install и как подготовить скрипт проброса портов или создания виртуальной машины для хостинга.
Спасибо за время, которое Вы уделили прочтению статьи! Также рекомендуем нашу следующую статью — Как настроить создание и управление виртуальными машинами KVM с помощью Cockpit и Virt-Manager (Virtual Machine Manager).
Если у Вас возникли вопросы — задавайте их в комментариях!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
7 комментариев. Оставить новый
Добрый день.
У вас ошибка, $ virt manager — не хватает тире, т.е. вот так: virt-manager
Добрый день.
Следовал Вашей инструкции для установки ВМ Windows 10 , при создании вм выдает ошибку : permission denied.
Видимо что то с правами доступа к iso образу windows.
В интернете куча решений данной проблемы ни один не помог)
Буду признателен если направите на путь истинный .
@Артур
Запускай «virt-manager» через sudo и будет тебе счастье.
«sudo virt-manager»
Спасибо за статью!
Вопрос.
Как файлы перебрасывать между гостевой и основной машиной?
Можно по ssh я думаю, или наверняка можно сделать обший volume
Все работает, но там ставили апач. А если я хочу поставить исп манаджер? Что делать то? Просто пробросить доп порты? Ибо хочу сделать мини хост с разграничением прав для пользователей
Здравствуйте, хорошая статья, вопрос есть небольшой, немного не понятно как настроены сетевые интерфейсы хоста и гостевых машин, будут ли гостевые машины доступны другим хостам?