Настройка qemu kvm archlinux

Обновлено: 04.07.2024

Проверка оборудования

Проверьте, поддерживается ли на вашем хосте аппаратная виртуализация. Для процессоров Intel должна быть поддержка технологии Intel VT. Для процессоров AMD поддержка AMD SVM. Так же убедитесь, что аппаратная виртуализация включена в bios материнской платы хоста.

В данном примере используется процессор Intel, по этому в выводе присутствует vmx. Если вывода у команды не было, возможно, ваш процессор не поддерживает виртуализацию, либо она отключена в bios материнской платы.

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

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

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

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

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

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

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

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

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

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

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



Для выбора образа нажмите Обзор и в открывшемся окне нажмите Выбрать файл. Найдите образ iso и откройте его, нажав на кнопку Открыть.


Установите необходимое количество оперативной памяти и процессоров, которые будут доступны данной виртуальной машине. Минимально необходимые значения для РЕД ОС указаны на скриншоте ниже.


Выберите количество постоянной памяти, которое будет доступно виртуальной машине. Минимально рекомендуемым для РЕД ОС является 15 Гб.


Впишите название виртуальной машины в поле Название. Установите галку в пункте Проверить конфигурацию перед установкой. Выберите нужную вам сеть. Нажмите Готово.


Запуск виртуальной машины

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


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

Добавить в автозапуск:

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

Клонирование виртуальных машин

Для клонирования виртуальной машины в окне Virtual Machine Manager кликните правой кнопкой мыши на нужной машине и нажмите Клонировать.


Впишите название новой виртуальной машины и выберите клонируемое пространство данных. Нажмите клонировать

Создание снапшотов

Для создания снапшотов в главном окне Virtual Machine Manager выберите виртуальную машину и нажмите кнопку Открыть.

В открывшемся окне нажмите на значек с двумя мониторами. Откроется окно управления снимками. Нажмите + для создания снапшота.


Снапшоты можно создавать как при включенной, так и при выключенной виртуальной машине.

Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.

Favorite

Добавить в избранное

Главное меню » Linux » Установить и настроить KVM в ArchLinux

(1 оценок, среднее: 5,00 из 5)


В этой статье показано, как установить и настроить KVM в вашей системе ArchLinux.

Часть 1: Установка KVM

Процедура установки KVM немного сложна, так как сначала необходимо проверить систему на наличие необходимых предпосылок.

Шаг 1. Проверьте поддержку виртуализации

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

Технические характеристики оборудования для запуска KVM: VT-x для процессоров Intel и AMD-V для процессоров AMD. Таким образом, если в вашей системе есть оборудование для создания виртуальных машин, вы увидите следующее в отображаемом тексте:

Если ни один из них не отображается, это означает, что либо ваша система не может поддерживать виртуализацию, либо она отключена на компьютере разработчиками. В этом случае вы можете включить виртуализацию после перезапуска системы и входа в BIOS.

Шаг 2. Найдите модуль ядра

Чтобы узнать, есть ли в вашей системе модуль ядра для запуска KVM, введите следующую команду:

Если вы используете процессор AMD, вы должны увидеть CONFIG_KVM_AMD (или CONFIG_KVM_INTEL, если вы используете Intel), за которым следует = y или = m, тогда все готово.

Шаг 3: Установите KVM для ArchLinux

Запустите терминал и запустите следующий код для прямой установки KVM:

Это должно установить KVM в вашей системе.

Шаг 4: активируйте и запустите KVM

Выполните следующую команду, чтобы активировать KVM:

Далее введите следующее:

Затем перейдите в /applications и запустите диспетчер виртуальных машин.

Читать Как настроить имя пользователя и адрес электронной почты Git

Часть 2: Настройка KVM

Чтобы продолжить использование KVM со стандартной учетной записью Linux, вы можете сделать это, изменив файл libvirtd.conf. Чтобы получить доступ к файлу, введите следующее:

Между строками 80-90 должен быть термин «lineabout unix_sock_group». Вы измените это на libvirt.

Перейдите к строкам между 100-110 и измените unix_sock_rw_perms на = 0770

Затем введите следующий код, чтобы включить вашу стандартную учетную запись Linux в libvirt.

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

Теперь вы можете использовать свою учетную запись Linux для использования KVM.

Чтобы создать виртуальные машины внутри виртуальной машины, включите вложенную виртуализацию, введя следующее:

Чтобы применить эти изменения, введите:

Вывод

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Ранее я уже писал об установке Qemu-KVM в Debian. Но, на мой взгляд, информация получилась неполной. Плюс я не учёл некоторые нюансы. Потому предлагаю вашему вниманию обновлённую статью по установке виртуальной машины Qemu-KVM. Старую статью, естественно, удалю.

Думаю, объяснять что такое виртуальная машина, не стоит. Вы наверняка это знаете (раз читаете эту статью). Если нет - прочитайте это. Мы же остановимся непосредсвенно на сабже. Qemu-KVM - это проект по объединению двух замечтальнейшийх (на мой взгляд) технологий полной виртуализации. Qemu - это своего рода "эмулятор компьютера", который поддерживает великое множество аппаратных архитектур. В нём можно запустить практически любую ОС для любого устройства (к примеру я запускал старые версии Mac OS X, который для PowerPC). Недостатком Qemu является его медлительность вследствии отсутствия аппратного ускорения. И тут на помощь приходит другой проект - KVM. Или Kernel Virtual Machine. KVM - это технология ядра Linux, которая позволяет обеспечить аппаратное ускорение при полной виртуализации. Недостатком KVM является поддержка только архитектуры x86

Почему Qemu-KVM? Для Linux это самый рекомендуемый проект виртуализации. Он работает быстрее, чем VirtualBox и VMware Player (по моим тестам), KVM - это родная для Линукса технология. Плюс, если вы обладатель хорошего игрового компьютера с двумя видеокартами, вы можете установить в Qemu-KVM Windows, пробросить в неё одну из видеокарт, и забыть о перезагрузке в другую ОС. Захотели поиграть - запустили виртуалку с виндой и играете. Производительность будет 95% от производительности установленной на "железо" винды. Но это просто шикарно, на мой взгляд. Об этом я напишу отдельную статью. Будет интересно :)

А теперь опишу план наших действий. Во первых, установку я буду проводить на примере Debian 8.2 GNOME 64 bit, хотя, особых различий в других графических окружениях не будет. Во-вторых - я буду описывать работу с KVM только в графическом режиме (мы ведь не на сервер будет его ставить). Поэтому никаких терминалов, скриптов и так далее, как обычно поступают в случае серверной виртуализации. В третьих - советую вам дополнительно прочитать документацию к Qemu и KVM (ссылки дам в конце статьи). Вам это очень пригодится, если вы хотите по-максимуму использовать весь потенциал этой связки. Ну чтож, план наших действий ясен. Теперь этапы действий:

  • установка qemu-kvm;
  • установка графического менеджера и дополнительных утилит;
  • настройка сетевого моста;
  • создание хранилища для виртуальных машин;
  • установка гостевой системы.

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

В выводе команды должны присутствовать либо vmx, либо svm. Если их нет - проверьте включена ли виртуализация в BIOS (ищите пункты Intel VT-i или аналогичный для AMD). Если ничего нет - значит не повезло.

Устанавливаем необходимые компоненты:

sudo apt install qemu-kvm bridge-utils libvirt-bin virt-manager

Добавляем себя в группу libvirt:

sudo adduser $USER libvirt

Теперь настроим сеть. Для того чтобы все виртауальные машины могли выходить в сеть и связываться друг с другом, нужно создать сетевой мост и виртаульные сетевые карты для каждой виртуалки (tap-устройства). Так как виртуальные машины мы будем устанавливать из графического интерфейса, то создавать вручную tap'ы не нужно. Virt Manager сделает это за нас при каждом запуске. Нам нужно только настроить мост. Для начала включим маршрутизацию в ядре:

sudo nano /etc/sysctl.conf

Ищем строку net.ipv4_forward=0 и меняем её значение на 1. Сохраняем и:

Далее я буду предполагать следующее: 1) на вашем компьютере есть одна сетевая карта, получающая ip-адрес от роутера. 2) вы выходите в интернет через 3G-модем, и сетевая карта у вас свободна. Этот вариант предполагает побольше ручной работы, но он проверен неоднократно (у самого так на одной из машин). Итак, открываем файл interfaces:

sudo nano /etc/network/interfaces

Его содержимое по умолчанию такое:

Меняем его содержимое. Для первого варианта:

Для второго варианта:

Примечание: если вам не нужно автоматическое подключение Интернета через модем после старта системы, уберите из конфига строки auto ppp0 и
iface ppp0 inet wvdial . В противном случае, убедитесь что при запуске системы, модем вставлен в USB-порт.

Сохраняем. Теперь для варианта с модемом, нужно установить программу дозвона wvdial:

sudo apt install wvdial

Правим конфиг (обратите внимание: в качестве примера используется 3G-модем Beeline. Примеры конфигов для других модемов вы без труда найдёте в интернете):

sudo nano /etc/wvdial.conf

Сохраняем. Теперь модем будет включаться сразу после загрузки системы. Строка up route del default br0 удаляет маршрут по умолчанию через мост. Если этого не сделать, вы не сможете соединиться с Интернетом, так как трафик будет идти по мосту, а не через 3G-модем.

Последним этапом нам нужно сказать фаерволлу, чтобы он пропускал в сеть трафик от наших виртуалок и обратно. Для этого можно пойти двумя путями: написать скрипт с несколькими правилами для iptables, который будет запускаться вместе с системой, или ввести эти правила вручную и сохранить их. Я воспользуюсь первым вариантом. Для второго вам нужно будет установить пакет iptables-persistent и просто поочерёдно вводить правила (с использованием sudo). Итак. создаём скрипт (в любом текстовом редакторе). Вставляем туда следующее содержимое:

Сохраняем его как gateway.sh и даём права на выполнение (либо в свойствах файла, либо в терминале командой chmod +x gateway.sh). Теперь вы можете либо запускать его вручную, после того как загрузилась система, либо добавить в автозагрузку. Для этого переместите скрипт в

/.config/autostart (в файловом менеджере включите показ скрытых файлов, и вы увидите каталог .config в домашней директории).

Теперь всё готово для установки виртуальной машины. Из меню приложений запускаем Virt Manager (менеджер виртуальных машин):


Кликаем правой кнопкой на строке localhost и выбираем Детали. Переходим на вкладку Хранилище. Нам нужно указать каталог (или раздел диска/диск) для хранения виртуальных машин.


В левом нижнем углу жмём на плюсик (Добавить пул), указывам тип хранилища и путь к нему.


На вкладке Сетевые интерфейсы, можете проверить, всё ли работает.


Теперь нажимаем Файл - New virtual machine. Указываем путь к образу диска, тип виртуальной машины. Далее указываем количество оперативной памяти для неё и количество ядер процессора. Далее указываем наше хранилище и нажимаем Новый том. Указываем название, тип оставляем qcow2, и размер. Это будет виртуальный жёсткий диск. Если планируете устанавливать систему с графической оболочкой и кучей программ, дайте места побольше (гигов 50). На последней вкладке ставим галочку на Изменить настройки перед запуском, проверяем что в качестве сетевого устройства выбран наш мост, пишем любое название для виртуалки и жмём Завершить. Перед вами откроется окно параметров этой виртуальной машины.






Переходим на вкладку Процессор, и ставим галочку на Скопировать настройки процессора хост-системы.


Далее на вкладку Диск, и указываем тип шины VirtIO (самая производительная).


Далее на вкладку Сеть (следующая), и также указываем vitio. На вкладке Дисплей укажите Spice, а на вкладке Видео - QXL. Обычно эта связка обеспечивает максимальную производительность отрисовки графики, но, если хотите, можете поэксперементировать. Учтите, что для гостевых систем Windows, требуется отдельная установка QXL-драйвера (в самой Windows).



Теперь когда всё готово, в левом верхнем углу жмём Начать установку. И ставим систему как обычно, за одним исключением: как только установщик начнёт автоматически настраивать сеть, нажмите Отмена, и выберите Настроить сеть вручную. Укажите для виртуалки желаемый IP-адрес (в нашем случае 192.168.0.3), маску подсети (255.255.255.0), шлюз (шлюзом будет адрес хоста, тоесть 192.168.0.2) и DNS-сервер (здесь просто укажите Гугловский 8.8.8.8). И всё. Дальше ничего делать не нужно. Ставьте систему и настраивайте. В общем-то, всё. Описанные действия - это способ заменить, скажем, VirtualBox на более лучшую альтернативу. Прочитав документацию, вы поймёте, насколько широки возможности Qemu-KVM. Я намеренно не стал описывать здесь дополнительные консольные параметры и методы запуска виртуальных машин через терминал, так как это далеко не всегда нужно на домашней машине. Об этом я напишу отдельную статью, по настройке домашнего многофункционального сервера (который также сможет выступать в качестве сервера виртуальных машин). Для тех, кто по каким-то причинам не понял написанное, или остались непонятные моменты - предлагаю посмотреть ролик, в котором я уже не опишу, а покажу, как всё это добро устанавливать и настраивать. Если у вас есть предложения или дополнения к статье - пишите в комментариях.

Дополнение: для работы графических окружений, которым необходимо 3D ускорение, установите пакеты spice-vdagent и xserver-xorg-video-qxl

QEMU/KVM не требует DKMS-модуля для своей работы, в отличии от VirtualBox. Бла-бла-бла.

Установка необходимых пакетов

Для эмуляции на основе qemu/kvm необходимы следующие компоненты:
- virt-manager — GUI для работы с libvirt и qemu . Позволяет подключаться к локальному и/или удалённому экземпляру qemu/kvm . Поключение к удалённому экземпляру libvirt и просмотр консоли удалённой эмулируемой машины обеспечивает ssh-туннель.
- qemu — программа, умеющая эмулировать различные процессоры и другое оборудование.
- libvirt — библиотека для работы с kvm из пространства пользователя.
- kvm — гипервизор, модуль находящийся в ядре системы, значительно ускоряющий выполнение эмулируемой машины в qemu .

Дополнительные телодвижения

Добавляем себя к группам пользователей-эмуляторов:

Загружаем подходящий модуль (здесь для процессора Intel) и запускаем демоны:

После выхода из своего сеанса и повторного входа, или перезагрузки компьютера, появляется возможность запустить virt-manager и создать/добавить первую виртуальную машину.

Инструменты настройки

Настройка производится с помощью:
- virsh — консольная утилита;
- virt-manager — относительно удобная GUI-утилита.

Настройка хранилищ (pool)

Хранилища — это места хранения образов винчестеров виртуальных машин, образов DVD-дисков. Хранилищем может стать каталог файловой системы, или выделенный раздел на LVM2. Перед работой с ними их необходимо добавить в систему.

По умолчанию доступно одно хранилище /var/lib/libvirt/images .

Настройка сети для QEMU/KVM

Virtual network 'default' : NAT

При запуске демона libvirtd в систему автоматически добавляется виртуальный сетевой интерфейс virbr0 с отдельной подсеткой 192.168.122.0/24 , а в netfilter дописываются правила, с помощью которых, через NAT, виртуальные машины смогут иметь доступ к инету:

Также запускается dnsmasq для раздачи ip-адресов из назначенной подсети.

Описание сети default находится в /etc/libvirt/qemu/networks/default.xml . Вручную изменять этот файл не рекомендуется, и хорошей практикой будет использование команды virsh net-edit default , которая запустит редактор vi , а после завершения редактирования, проверит файл на соответствие правилам.

Естественно, если демоны iptables и ip6tables запускаются после libvirtd , то iptables-правила для виртуальной сетки будут затёрты. Для решения этой проблемы дописываем в самое начало runit-скрипта /etc/sv/libvirtd/run две строки, чтобы runit сам расставил зависимости:

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

Отменяем автоматическое создание сети командой virsh net-autostart default --disable , в результате чего будет удалена ссылка /etc/libvirt/qemu/networks/autostart/@default.xml .

Shared device

Чтобы выставить новую виртуальную машину в текущую локальную сеть создаём мост, в составе которого будут работать текущий физический сетевой интерфейс и сетевые интерфейсы виртуальных машин.

Выключаем демон dhcpcd , чтобы не мешал работе NetworkManager . В моём случае dhcpcd был включен, несмотря на используемый NetworkManager , и настойчиво назначал ip-адрес физическому интерфейсу, тогда как NetworkManager назначал эти же данные на мост br0 :

Определяем текущее сетевое подключение. В выводе информации о текущих подключениях видим "Wired connection 1":

После выяснения текущего сетевого соединения выполняем:
1. Выключаем текущее сетевое подключение "Wired connection 1".
2. Отключаем автоподнятие интерфейса "Wired connection 1".
2. Создаём мост br0 .
3. Добавляем текущий физический сетевой интерфейс в этот мост.
4. Отключаем stp, так как вероятность петли на интерфейсе br0 , по понятным причинам, стремится к нулю.
5. Поднимаем мост br0 .

Если в локальной сети присутствует dhcp-сервер, то на br0 назначится ip-адрес, иначе назначение проводим вручную.

В заключении, указываем новой виртуальной машине br0 в качестве "Shared physical device".

Читайте также: