Установка qemu kvm ubuntu

Обновлено: 02.07.2024

Это руководство содержит инструкции по установке и настройке KVM на рабочем столе Ubuntu 20.04. Мы также покажем вам, как создавать виртуальные машины, которые можно использовать в качестве среды разработки для различных приложений.

Подготовка

Чтобы запустить гостевую систему с более чем 2 ГБ ОЗУ, у вас должна быть 64-разрядная хост-система.

Прежде чем продолжить установку, убедитесь, что ваш хост-компьютер Ubuntu поддерживает виртуализацию KVM. В системе должен быть либо процессор Intel с VT-x (vmx), либо процессор AMD с поддержкой технологии AMD-V (svm).

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

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

На некоторых машинах производители могут отключить расширения виртуальной технологии в BIOS.

Чтобы проверить, включен ли VT в BIOS, используйте инструмент kvm-ok , который входит в комплект. Введите следующие команды от имени пользователя root или пользователя с привилегиями sudo, чтобы установить пакет cpu-checker , который включает команду kvm-ok :

После установки проверьте, может ли ваша система запускать виртуальные машины KVM с аппаратным ускорением:

Если возможность виртуализации процессора не отключена в BIOS, вывод будет выглядеть примерно так:

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

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

После установки пакетов демон libvirt запустится автоматически. Вы можете проверить это, набрав:

Чтобы иметь возможность создавать виртуальные машины и управлять ими, вам необходимо добавить своего пользователя в группы «libvirt» и «kvm». Для этого введите:

Выйдите из системы и войдите снова, чтобы членство в группе обновилось.

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

В процессе установки создается мост с именем «virbr0». Это устройство использует NAT для подключения компьютеров гостей к внешнему миру.

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

Эта сетевая настройка подходит для большинства пользователей настольных компьютеров Ubuntu, но имеет ограничения. Если вы хотите получить доступ к гостям из-за пределов локальной сети, вам необходимо создать новый мост и настроить его так, чтобы гостевые машины могли подключаться к внешнему миру через физический интерфейс хоста.

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

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

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

В строке поиска Действия введите «Диспетчер виртуальных машин» и щелкните значок, чтобы запустить приложение.

После запуска приложения в верхнем меню нажмите «Файл» -> «Новая виртуальная машина»:

Введите имя вашей виртуальной машины и нажмите «Готово».

Виртуальная машина загрузится, и откроется новое окно:

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

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

Выводы

Мы показали вам, как установить KVM в системах Ubuntu 20.04. Теперь вы можете создавать гостевые машины Windows или Linux. Чтобы найти дополнительную информацию о KVM, посетите страницу документации KVM .

Сложно себе представить в наше время физический сервер без установленной на нем той или иной системы виртуализации. Я расскажу, как установить и настроить популярный гипервизор kvm на сервер под управлением Ubuntu. Это решение является open source, так что можно свободно использовать где угодно.

Что такое KVM?

Я сегодня не буду рассматривать готовые сборки гипервизоров, а вручную установлю на Ubuntu Server нативный гипервизор KVM с минимальными надстройками над ним. У нас на выходе будет сам гипервизор, локальная сеть для его корректной работы и средства управления гипервизором и виртуальными машинами. Если вам интересно, почему мой выбор пал на именно на убунту, читайте мой обзор этой системы, а так же статью про установку ubuntu.

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

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

INFO: Your CPU does not support KVM extensions
KVM acceleration can NOT be used

Если же все ОК, то информация будет следующая.

Проверка виртуализации процессора

В этом случае можно приступать к установке виртуализации kvm.

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

Я устанавливаю следующие компоненты kvm:

Запустим и добавим в автозагрузку сервис управления kvm:

В целом, все. Установка KVM на Ubuntu на этом и заканчивается. Можно проверить, загрузились ли у вас модули ядра kvm.

Все в порядке, гипервизор kvm готов к работе.

Сетевой Bridge для kvm

Настройка сети для виртуальных машин kvm может быть настроена различными способами. Я как минимум 3 наиболее популярных знаю:

  1. Виртуальные машины выходят во внешний мир через сам хост kvm, на котором настроен NAT. Этот вариант вам будет доступен сразу после установки kvm. Ничего дополнительно настраивать не надо, так как сетевой бридж для этого virbr0 уже будет добавлен в систему. А в правилах iptables будет добавлен MASQUERADE для NAT.
  2. Одна из виртуальных машин превращается в шлюз и через нее осуществляется доступ во внешний мир для всех виртуальных машин. Наиболее гибкий способ управления сетью для vm, но в то же время требует больше времени на настройку и набор знаний по работе с сетями.
  3. Для виртуальных машин kvm создается отдельный сетевой бридж во внешнюю сеть. Они напрямую получают в нее сетевой доступ.

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

Настройка Bridge для kvm

Теперь на хосте приводим сетевые настройки в /etc/netplan к следующему виду.

Здесь будьте очень внимательны. Не выполняйте изменения сетевых настроек, не имея прямого доступа к консоли сервера. Очень высок шанс того, что что-то пойдет не так и вы потеряете удаленный доступ к серверу.

Теперь надо применить новые настройки.

Сразу после этого вы потеряете доступ к серверу по старому адресу. Интерфейс ens18 перейдет в состав bridge br0 и потеряет свои настройки. А в это время бридж br0 получит новые сетевые настройки по dhcp. IP адрес будет отличаться от того, что был перед этим на интерфейсе ens18. Чтобы снова подключиться удаленно к гипервизору kvm, вам надо будет пойти на dhcp сервер и посмотреть, какой новый ip адрес ему назначен.

Если у вас нет dhcp сервера или вы просто желаете вручную указать сетевые настройки, то сделать это можно следующим образом.

В этом случае после применения новых настроек, гипервизор kvm будет доступен по адресу 192.168.25.2.

Обращайте внимание на все отступы в конфигурационном файле netplan. Они важны. В случае ошибок, настройки сети применены не будут. Иногда эта тема очень напрягает, так как не получается сразу понять, где именно в отступах ошибка. В этом плане yaml файл для настроек сети гипервизора как-то не очень удобен.

Далее еще один важный момент. Чтобы наш kvm хост мог осуществлять транзит пакетов через себя, надо это явно разрешить в sysctl. Добавляем в /etc/sysctl.d/99-sysctl.conf новый параметр. Он там уже есть, надо только снять пометку комментария.

Применяем новую настройку ядра.

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

Настройка KVM в Ubuntu Server

В целом, какой-то особенной настройки для гипервизора kvm после установки делать не нужно. Я обычно выношу в отдельные директории диски виртуальных машин и iso образы. Например, в /mnt/kvm . Это позволяет подмонтировать туда любые внешние хранилища, если будет такая необходимость.

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

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

Настройка KVM

kvm passthrough

Гипервизор KVM поддерживает так называемый проброс оборудования в виртуальную машину. Называется эта технология passthrough. Для того, чтобы это было возможно, ваше железо должно поддерживать технологию IOMMU. С ее помощью можно, к примеру, пробросить в виртуальную машину видеокарту.

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

port forwarding

Если вы не создаете свой отдельный сетевой бридж для виртуальных машин, с помощью которого они будут автоматически попадать во внешнюю сеть, вам необходимо будет пробрасывать порты внутрь виртуалок. Я считаю это не очень удобным, поэтому выше и описал способ сразу вывести виртуальную машину во внешнюю сеть. Но если вам по каким-то причинам не хочется это делать и вы остаетесь на дефолтной настройке сети в kvm, то вам придется с помощью iptables делать проброс портов. Это не очень сложно, если вы умеете работать с iptables. Если же нет, то это может стать проблемой.

В рамках данной статьи я тоже не буду рассматривать этот вопрос, так как iptables отдельная большая тема. Просто знайте, что проброс портов в виртуальную машину это обычная настройка iptables. Приведу только один пример, как с помощью iptables пробросить порт ssh для одной из виртуальных машин.

В этом примере я пробросил внешний tcp порт 22122 хоста в виртуальную машину 192.168.122.11, порт 22. В данном случае virbr0 дефолтный бридж, который был автоматически создан при установке kvm на хост.

Основные команды KVM

Для дальнейшей работы с гипервизором kvm нам необходимо познакомиться с основными командами управления.

Просмотр всех виртуальных машин:

Запустить неактивную виртуальную машину:

Выключить vm штатно через возможности ОС:

Мгновенная остановка виртуальной машины. Например, если она зависла.

Информация о дисках vm:

Посмотреть информацию о vm:

Краткая информация о хосте гипервизора kvm:

Информация о файле образа диска vm:

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

Давайте теперь создадим и запустим нашу первую виртуальную машину на гипервизоре kvm. Для этого нам достаточно только консоли системы ubuntu и команды virt-install. Но перед тем, как создать саму машину, сделаем для нее диск в формате qcow2.

Отлично, теперь создаем виртуальную машину для гипервизора kvm:

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

Я получил предупреждение о том, что слишком мало выделил оперативной памяти для виртуальной машины Ubuntu20.04

WARNING Requested memory 1024 MiB is less than the recommended 2048 MiB for OS ubuntu20.04

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

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

Вывод :0 означает, что нет отступа от дефолтного порта vnc 5900. Если бы в выводе было :1, значит подключаться нужно было бы к порту 5901. В нашем случае подключаемся через любой vnc клиент к ip адресу гипервизора по порту 5900.

Подключение к консоли виртуальной машины

Пароль для доступа по vnc

После подключения к консоли виртуальной машины, увидим традиционный установщик Ubuntu.

Консоль виртуальной машины с ubuntu в kvm

Можно продолжать установку непосредственно системы внутри vm. На этом установку новой виртуальной машины в kvm закончим. Рассмотрим дополнительно некоторые важные параметры, касающиеся управления.

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

Для того, что виртуальная машина kvm автоматически запускалась при старте гипервизора, можно явно это указать в самом начале. Во время создания vm надо добавить параметр autostart примерно так:

Либо воспользуйтесь встроенной командой:

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

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

Теперь рассмотрим ситуацию, когда вам надо удалить виртуальную машину в kvm, используя только консоль. Сделать это не сложно. Для начала посмотрим на список всех виртуальных машин хоста:

Останавливаем виртуальную машину vmserver01:

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

Теперь уже виртуальную машину можно удалить:

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

Эта команда по сути просто удаляет конфигурацию vm из директории /etc/libvirt/qemu . Для полного удаления виртуальной машины вам необходимо отдельно удалить ее диск. Сделайте это вручную сами в зависимости от того, где располагался диск. Если это был обычный qcow2 или raw файл, то удалите его командой rm.

Будьте внимательны с именем файла. Не удалите случайно диск от другой виртуальной машины.

Увеличение размера диска

Для увеличения диска виртуальной машины в kvm достаточно воспользоваться консольной утилитой qemu-img. Если вы не знаете, где располагается диск виртуальной машины, посмотреть можно так:

Увеличение размера диска

Далее нам нужно завершить работу виртуальной машины. После этого увеличиваем размер диска:

Увеличил размер диска на 1G. Посмотрим информацию о диске:

Информация о диске virtual machine

В моем примере размер диска vm был изначально 2G, я увеличил его до 3-х.

KVM Agent

Для того, чтобы гипервизор мог получать информацию о виртуальной машине и взаимодействовать с ней, на нее необходимо установить qemu-guest-agent. Он нужен, например, для корректного завершения работы системы командой от гипервизора. Или для создания снепшота диска виртуалки без ее остановки. Для этого в свойствах виртуальной машины его нужно включить.

Сделать это можно отредактировав конфиг виртуальной машины. В него нужно добавить дополнительный channel. Сделаем это.

Добавляем в конфиг:

Прежде чем добавлять, посмотрите, нет ли у вас уже этой секции в конфигурации.

Установка Windows 10 в KVM

Для того, чтобы установить виртуальную машину с Windows 10 в KVM ничего особенного делать не надо. Кладем iso образы системы и virtio драйверов на kvm хост и запускаем виртуальную машину.

Дальше подключаемся по vnc и выполняем установку Windows 10. Узнать порт vnc для подключения можно командой:

В данном случае порт будет 5900. Число после двоеточия добавляется к стандартному порту 5900. Если бы там было :5, то подключаться нужно было бы по порту 5905. Если во время установки в списке дисков будет пусто, необходимо загрузить драйвер с образа virtio-win.iso. Сам драйвер находится в папке E:\viostor\w10\amd64.

После установки Windows 10 на KVM, зайдите в систему и установите драйвера для всего неопознанного оборудования. Драйвер можно поставить автопоиском с диска virtio-win. В самом конце с этого же диска установите Qemu Guest Agent. Он там в отдельной директории лежит в виде приложения.

На этом все, система с Windows 10 готова работать на гипервизоре KVM. Установка немного посложнее, чем в других гипервизорах из-за того, что в стандартном образе виндовс нет драйверов для дисков kvm.

Snapshot виртуальной машины KVM

Отдельно расскажу, как сделать snapshot виртуальной машины в kvm. Для того, чтобы функционал снимков был доступен, ваши диски должны быть в формате qcow2. Именно он поддерживает снэпшоты. Если диски raw, то сделать снимок не получится. Так же необходимо, чтобы в системе был установлен qemu-guest-agent. Если его не будет, то при создании снимка работающей vm получите ошибку:

error: Guest agent is not responding: QEMU guest agent is not connected

Прежде чем делать snapshot, посмотрим на имя диска виртуальной машины:

Отлично, имя диска vda. Теперь делаем его snapshot:

vmserver01 имя виртуальной машины, для которой делаем снэпшот
snapshot-name название самого снепшота, актуально, когда их несколько
vda имя диска виртуальной машины
vmserver01-disk1-snapshot.qcow2 имя и путь для снепшота

После этого в директории /mnt/kvm/disk появится файл vmserver01-disk1-snapshot.qcow2 , куда будут писаться все изменения диска. Сам же диск останется в неизменном виде. В этой ситуации его удобно забэкапить. Рассмотрим это позже. Если сейчас посмотреть список дисков виртуальной машины, то в качестве диска там будет указан снэпшот.

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

Проверьте список дисков. У вас должен исчезнуть snapshot, а основной диск вернется на прежнее место.

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

Бэкап виртуальной машины kvm может быть выполнен по-разному. По своей сути это просто копия диска и экспорт настроек vm. Если вы хотите делать backup без остановки виртуальной машины, то необходимо воспользоваться снепшотом. Как его сделать, я показал выше. После того, как снэпшот сделан, вам достаточно просто скопировать основной диск vm. Сделать это можно любым доступным способом. Например, можно его сразу же сжать и положить в директорию с бэкапами.

Мы сжали диск виртуальной машины с помощью tar и gz и положили его в директорию с бэкапами /mnt/backup/ . Для полноты бэкапа, положим туда же и настройки виртуальной машины.

После того, как сделаете backup виртуальной машины, не забудьте объединить снэпшот с основными диском. Не допускайте роста числа снэпшотов. Это приводит к сильному снижению производительности, а когда снимков станет слишком много, могут быть ошибки работы с диском.

Если у вас есть возможность остановить виртуальную машину для создания архива, то снимки вам не нужны. Просто останавливайте виртуалку и копируйте ее диски. А потом запускайте снова. Можно все эти действия объединить в скрипт. Примерно так:

Это просто набросок. По хорошему, сюда нужно добавлять проверки, отправку отчета на почту и т.д.

Web интерфейс (gui) для KVM

Выше я показал, как управлять виртуальными машинами через консоль. В целом, весь необходимый функционал доступен. Но если вам хочется управлять виртуальными машинами kvm через браузер, то можно поставить простую панель управления для этого. В качестве KVM Web Interface я предлагаю использовать VMDashboard. Это обычное веб приложение, написанное на php. В работе использует базу данных MySQL.

Устанавливаем необходимые компоненты сервера для работы Web Interface.

Для того, чтобы работало подключение к консолям виртуальных машин через web интерфейс, необходимо раскомментировать один параметр в /etc/libvirt/qemu.conf .

Продолжаем настройку web панели для kvm. Добавляем пользователя www-data в группу libvirt:

Переходим в директорию www и загружаем исходники панели:

Распаковываем их и готовим к запуску:

Теперь нам нужно создать mysql базу для веб панели.

Далее нужно перезагрузить kvm сервер:

Web интерфейс для KVM

На этом установка и настройка веб панели управления для kvm закончена. Можно переходить в интерфейс и управлять виртуалками.

kvm gui

Заключение

Постарался всесторонне рассмотреть вопрос установки и настройки гипервизора kvm на ubuntu server. Если забыл что-то важное, напомните в комментариях. Я дополню статью.

2 комментариев к записи « Установка и настройка KVM в Ubuntu »

Спасибо за обратную связь. Странно, что vmdashboard не заработал. У меня обычно нет проблем с его настройкой. Ничего особенного настраивать не надо. Сходу все запускается.

KVM или Kernel Virtual Module - это модуль виртуализации для ядра Linux, который позволяет превратить ваш компьютер в гипервизор для управления виртуальными машинами. Этот модуль работает на уровне ядра и поддерживает такие технологии аппаратного ускорения, как Intel VT и AMD SVM.

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

Также у гостевой системы не будет доступа к компонентам реальной операционной системы. Виртуальная машина выполняется в полностью изолированном пространстве. Вы можете использовать KVM как в системе с графическим интерфейсом, так и на серверах. В этой статье мы рассмотрим как выполняется установка KVM в Ubuntu 20.04.

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

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

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:


Использование KVM в Ubuntu

Вы справились с задачей установить KVM в Ubuntu, но вы еще не можете использовать эту среду виртуализации но ее нужно еще настроить. Далее, мы рассмотрим как выполняется настройка KVM в Ubuntu. Что удобно, в новых версиях сеть уже настроена и вам не нужно создавать новый сетевой мост. Вы можете убедится в этом выполнив команду:


Интерфейсы virbr0 и virbr-nic созданы KVM по умолчанию и они полностью реализуют все необходимые возможности сети. Ещё вы можете посмотреть доступные мосты с помощью команды:

sudo brctl show


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

Настройка KVM Ubuntu завершена и теперь мы можем перейти к ее использованию. Сначала давайте просмотрим список уже существующих виртуальных машин:

virsh -c qemu:///system list

Он пуст. Создать виртуальную машину можно через терминал или в графическом интерфейсе. Для создания через терминал используйте команду virt-install. Сначала перейдем в папку libvirt:

Для установки CentOS команда будет выглядеть вот так:

sudo virt-install \
--virt-type=kvm \
--name centos8 \
--ram 2048 \
--vcpus=2 \
--os-variant=rhl8.0 \
--hvm \
--cdrom=/var/lib/libvirt/boot/CentOS-8.iso \
--network=bridge:virbr0,model=virtio \
--graphics vnc \
--disk path=/var/lib/libvirt/images/centos7.qcow2,size=40,bus=virtio,format=qcow2

Разберем подробнее что означают параметры этой команды:

  • virt-type - тип виртуализации, в нашем случае kvm;
  • name - имя новой машины;
  • ram - количество памяти в мегабайтах;
  • vcpus - количество ядер процессора;
  • os-variant - тип операционной системы;
  • cdrom - установочный образ системы;
  • network-bridge - сетевой мост, который мы настроили ранее;
  • graphics - способ получения доступа к графическому интерфейсу;
  • diskpath - адрес нового жесткого диска для этой виртуальной машины;

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

sudo virsh vncdisplay centos8

Теперь вы можете ввести полученные данные в вашем клиенте VNC и подключится к виртуальной машине даже удаленно. Для Debian команда будет немного отличаться, но все выглядит похожим образом:

Переходим в папку для образов:

Можно скачать установочный образ из интернета если это необходимо:

Затем создадим виртуальную машину:

sudo virt-install \
--virt-type=kvm \
--name=debina8 \
--ram=2048 \
--vcpus=2 \
--os-variant=debian8 \
--hvm \
--cdrom=/var/lib/libvirt/boot/debian-8.5.0-amd64-DVD-1.iso \
--network=bridge=bridge0,model=virtio \
--graphics vnc \
--disk path=/var/lib/libvirt/images/debian8.qcow2,size=40,bus=virtio,format=qcow2

Теперь снова посмотрим список доступных машин:

virsh -c qemu:///system list

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

sudo virsh start имя_машины

sudo virsh shutdown имя_машины

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

sudo virsh suspend имя_машины

sudo virsh reboot имя_машины

sudo virsh reset имя_машины

Для полного удаления виртуальной машины:

sudo virsh destroy имя_машины

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

Если у вас есть доступ к графическому интерфейсу то нет никакой необходимости использовать терминал, вы можете применить полноценный графический интерфейс менеджера виртуальных машин Virtual Manager. Программу можно запустить из главного меню:


Для создания новой машины кликните по иконке со значком монитора. Дальше вам будет необходимо выбрать образ ISO вашей системы. Также можно использовать реальный CD/DVD привод:

Если вы выбрали ISO образ, то надо его открыть из файловой системы:

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

На этом экране вам нужно выбрать размер жесткого диска, который будет доступен в вашей машине:

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

Затем автоматически запустится установка:

После этого машина будет готова к использованию и появится в списке. Вы можете запустить ее с помощью зеленого треугольника на панели инструментов менеджера.

Выводы

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

На завершение лекция от яндекса о том что такое виртуализация в Linux:

Нет похожих записей

Оцените статью:

(12 оценок, среднее: 4,67 из 5)

Об авторе

18 комментариев

Спасибо за прекрасную статью! Меня интересует вот какой вопрос. Можно ли организовать средствами KVM проброс PCI-E в виртуальную машину, и если да, то как?

После запуска машины ошибка(((

Ошибка подключения к графической консоли:
внутренняя ошибка: не удалось выполнить команду QEMU «getfd»: No file descriptor supplied via SCM_RIGHTS

Кто знает какие существуют штатные (для которых есть deb пакеты хотя бы в ppa) бесплатные веб-интерфейсы для libvirt'а?

Добрый вечер. В этой строчке ошибка $ sudo addif bridge0 eth0 - нужно добавить $ sudo brctl addif bridge0 eth0

loopback
auto lo bridge0
iface lo inet loopback
iface bridge0 inet dhcp
bridge_ports eth0

Здесь может быть ошибка, т.к. у меня система не принимает эту редакцию /etc/network/interfaces, из-за чего пропадает ethernet-соединение:

ifquery: couldn't read interfaces file "/etc/network/interfaces"
/etc/network/interfaces:4: option with empty value

Судя по всему речь идёт о строке "loopback", хотя если её закомментировать, то улучшений не происходит.

Благодарю! По данной статье настроил виртуалку. Только вот как сделать общую папку не понятно. Уже часов 12 бьюсь над этой задачей. Пока только получилось пробросить флэшку. Если объясните как настроить общую папку в kvm буду благодарен в двойне.

МИГРАЦИЯ. в этих ваших интернетах валом типовых статей как поставить KVM и поднять там виртуалку.
Однако нет ни одной путней статьи о том как устроена миграция, какие виды бывают. Как это работает. А главное какого это не работает.

Последнее время применение виртуализации при построении серверной инфраструктуры встречается все чаще. Гибкость, масштабируемость, экономия делают эту технологию очень перспективной. Сейчас на рынке существует достаточное количество решений, как проприетарных, так и open source, позволяющих развернуть виртуальные сервера. Один из таких вариантов я хочу рассмотреть в данной статье.

Поигравшись с ГУЙовыми платформами виртуализации от Microsoft, VMware и Sun, я решил попробовать сделать тоже самое через консоль. Установив давно понравившийся мне linux дистрибутив ubuntu, стал выбирать — на какой же реализации виртуальных машин (ВМ) остановиться. В википедии есть интересная табличка, хотя посмотрев оффициальный help к ubuntu я понял, что лучше начать с KVM.

image

Процедура установки хост-сервера в общем-то стандартная, но есть нюансы. Во время установки включил LVM (как я понял — гостевые ОС можно впоследстии размещать на LVM-томах, что придаст дополнительную гибкость), а в окне выбора доустанавлемого ПО отметил OpenSSH server и Virtual Machine host.

Хост-серверу задан статический ip 172.16.4.24, что можно увидеть далее в приведенных конфигах.
После установки хост-сервера, подключаемся к нему по ssh (одноименной командой из linux или putty/kitty из windows).

Первым делом необходимо проверить, поддерживает ли железо сервера аппаратную виртуализацию командой
egrep '(vmx|svm)' /proc/cpuinfo
Если вывод команды не пустой, значит поддерживает.

Скачиваем в домашнюю папку iso-образ того дистрибутива операционной системы, которая в последствии будет гостевой. У меня это тот же самый ubuntu-9.04-server-amd64.iso

Устанавливаем необходимые пакеты:
sudo apt-get install kvm libvirt-bin python-virtinst bridge-utils

Добавляем пользователя, который будет рулить виртуалками (в простейшем случае это тот пользователь, которого мы завели во время установки системы, и под которым проделываем все описываемые действия):
sudo adduser $USER libvirtd

После этого лучше ребутнуться.

Проверяем, как установилась KVM, командой:
virsh -c qemu:///system list --all
В консоли должно появиться примерно следующее:
az@vsrvs:

$ virsh -c qemu:///system list --all
Connecting to uri: qemu:///system
Id Name State
----------------------------------
если все так, продолжаем.

Для того, чтобы виртуальные сервера работали в нашей реальной локальной сети на хост-машине создаем сетевой мост. Для этого надо подредактировать файл /etc/network/interfaces

Так он выглядел до модификации:


Далее переходим к инсталляции ВМ:
sudo virt-install -n vsrv1 -r 384 -f vsrv1.img -s 10 -c ubuntu-9.04-server-amd64.iso --accelerate --os-type=linux --os-variant=generic26 -v --vnc -w bridge:br0
где:
-n vsrv1 — имя ВМ;
-r 384 — выделяемый объем ОЗУ для нее;
-f vsrv1.img — файл, являющийся виртуальный жестким диском для гостевой ОС;
-s 10 — объем этого диска в гигабайтах;
-c ubuntu-9.04-server-amd64.iso — образ cd дистрибутива гостевой ОС, подключаемый как виртуальный cdrom;
--accelerate --os-type=linux --os-variant=generic26 -v — ускоряем, оптимизируем ВМ для конкретной гостевой ОС и задействуем аппаратные возможности виртуализации;
--vnc — запускаем для ВМ vnc-сервер;
-w bridge:br0 — указываем использовать сетевой мост.

То все отлично, виртуальная машина запустилась, что можно проверить командой:
virsh -c qemu:///system list --all
Поэтому преступаем к установке гостевой ОС.

Для начала необходимо подключится к vnc-серверу, который отображает экран ВМ. Я делал это из WinXP, хотя, из практически любого linux дистрибутива, это делается аналогично.

image

  1. Во вкладке Session — Host Name (or IP address) адрес нашего хост-сервера (в моем случае 172.16.4.24).
  2. Во вкладке Windows-Translation — выбираем UTF-8.
  3. Во вкладке Connection-SSH-Tunnels — заполняем поля Source port 59000, Destination localhost:5900, нажимаем Add. Должна появится следующая запись:

  4. Жмем Open и мы должны подключится по SSH к хост-серверу. Одновременно у нас произойдет перенаправление порта 5900 хост-сервера (порт vnc-сервера) на наш локальный 59000 порт.

Устанавливаем vnc-клиент, например UltraVNC, запускаем UltraVNC Viewer и подключаемся к localhost:59000. Если все сделано правильно, то мы увидим экран нашей ВМ с запущенным инсталлятором гостевой ОС.

Устанавливаем гостевую ОС.

image

Так она начинает загружаться после установки:

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