Ubuntu 18 установка kvm

Обновлено: 04.07.2024

Сложно себе представить в наше время физический сервер без установленной на нем той или иной системы виртуализации. Я расскажу, как установить и настроить популярный гипервизор 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 на рабочем столе Ubuntu 18.04. Мы также покажем вам, как создавать виртуальные машины, которые можно использовать в качестве среды разработки для PHP, Node.js, Ruby и так далее.

Те же инструкции применимы для Ubuntu 16.04 и любого другого дистрибутива на основе Ubuntu, включая Linux Mint и Elementary OS.

Подготовка

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Запустите инструмент brctl , чтобы brctl список текущих мостов и интерфейсов, к которым они подключены:

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

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

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

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

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

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

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

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

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

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

Выводы

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

KVM или Основанная на ядре Виртуальная машина обеспечивают виртуальную среду, используемую для выполнения одной или нескольких дополнительных операционных систем помимо основной системы, не вмешиваясь в ее функции. В KVM Ядро Linux использует технологию виртуализации путем использования существующей системы и аппаратных ресурсов. Новая виртуальная среда, созданная KVM, может использоваться для обеспечения дополнительной рабочей области для тестеров программного обеспечения, разработчиков, архитекторов и даже домашних пользователей.

В этом учебном руководстве мы опишем, как установить и использовать виртуальную машину с помощью платформы-виртуализации-KVM с открытым исходным кодом. Команды и процедура, описанная в этом учебном руководстве, были выполнены в системе Ubuntu 18 на x86 процессоре.

Процесс установки KVM

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

Шаг 1: проверка поддержки оборудования

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

Выполните следующую команду на своем Терминале Ubuntu. Можно открыть терминал путем нажатия Ctrl+Alt+T или через системного Тире.


Вывод этой команды очень важен. Вывод 1 или что-либо большее, чем это указывает, что Ваш ЦП может быть установкой для использования технологии виртуализации. Вывод 0 указывает на неспособность Вашей системы выполнить KVM. В моем случае вывод равняется 4, который проверяет, что я могу установить и выполнить виртуальную машину (машины).

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

OutPut 1:


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

Теперь, когда Вы включаете свою систему и работаете kvm-хорошо команда, следующий вывод будет отображен:

OutPut 2:

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


Шаг 2: установка пакета KVM

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


Вам предложат обеспечить пароль, поскольку только суперпользователь может установить пакет на Ubuntu. Процесс установки начнется; во время которого Вам предложат с да или никакой опцией. Введите y для продолжения установки. Мы также устанавливаем виртуальный пакет менеджера с этой установкой; это - графический инструмент для управления Вашими виртуальными машинами.

Шаг 3: добавление Вашей учетной записи пользователя на KVM

Следующий шаг после установки должен добавить Вашу учетную запись пользователя как пользователя KVM. Важно отметить, что можно использовать виртуальные машины на KVM, только если Вы - пользователь root или если Вы - часть libvirt/libvirtd группы. Используйте следующую команду, чтобы добавить себя к libvirtd группе:

Вывод 1:

[Имя пользователя] был добавлен к libvirtd группе.

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

Вывод 2:

Та же команда могла бы дать следующий вывод в Вашей системе:


Это указывает на использование новой версии KVM, который имеет группу по умолчанию libvirt служащий той же цели как та из libvirtd группы. Следующий вывод команды групп укажет, что текущий пользователь root уже является членом libvirt группы. Поэтому нет никакой потребности добавить себя к этой группе.


Для добавления других пользователей этой группе используют следующую команду:

У этого нового пользователя будут доступ и полномочия управления на KVM.

Шаг 4: проверка успешной установки

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

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


Создайте новый VM в KVM

После успешной установки KVM можно начать работать с ним сразу же. Давайте посмотрим, как получить доступ к менеджеру по графической виртуальной машине на Вашем Ubuntu.

Можно получить доступ к менеджеру VM через Тире Ubuntu следующим образом:


ИЛИ путем доступа к нему через Список приложений Ubuntu.

Теперь позволяет нам создать демонстрационную виртуальную машину через менеджера. В этом учебном руководстве я буду создавать новый VM для дополнительного Ubuntu ОС, которую я хочу использовать наряду с текущей основной установкой того же, уже существующего в моей системе. Я загрузил файл ISO на свою систему через Интернет.

Выполните эти шаги:

Следующее изображение показывает среду менеджера VM:


Можно создать новую виртуальную машину через Меню Файла, Создать новый значок виртуальной машины на панели инструментов или через контекстное меню при записи QEMU/KVM под столбцом 'Name'.

Следующее Новое диалоговое окно VM откроется:


Обратите внимание на то, что можно было также отобразить следующее диалоговое окно, если Вы не активировали виртуализацию для своего ЦП. См. Шаг 1 Процесса установки для избавлений от этой проблемы.


Выберите свою опцию инсталляции из этих четырех доступных параметров и нажмите кнопку Forward. Я выбираю Локальную опцию Media установки, поскольку файл ISO уже загружается в моей системе.

Следующее диалоговое окно появится:


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

Нажмите Forward; следующее диалоговое окно появится:


На этом шаге можно выбрать RAM для нового VM. Для систем на 32 бита можно зарезервировать RAM только до 2 г. Для систем на 64 бита можно даже выбрать больше чем 2 ГБ из памяти, доступной на главном компьютере. Через это диалоговое окно можно также выбрать число ЦП из доступных процессоров системы.

Определите свой выбор и затем нажмите кнопку Forward; следующее диалоговое окно появится:


Через это диалоговое окно можно включить устройство хранения данных для VM, который Вы создаете.


Это - последний шаг, прежде чем установка Вашего нового VM начнется. Здесь можно определить название нового VM и сделать несколько других конфигураций.

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


Я установлю пакет Ubuntu 18.04 на своем новом VM и начну использовать его как, я был бы на нормальной машине, не влияя на мою исходную ОС.

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

Через соответствующую консоль VM

При создании нового VM он открывается в состоянии выполнения. Можно выполнить следующие операции управления на VM через новую консоль VM:


Можно включить VM путем нажатия на Start Button, расположенный на панели инструментов.

Можно приостановить VM путем нажатия на Pause Button, расположенный на панели инструментов. Это только приостановит VM, не выключит его.

Для выключения VM, как Вы выключил бы операционную систему на Вашей реальной машине, нажать Кнопку отключения от панели инструментов.

Снимок является текущим состоянием системы в установленный срок. Это включает информацию о памяти, диске и состоянии устройства. Можно взять снимок виртуальной машины в чистом состоянии прежде, чем выполнить потенциально фатальную процедуру. Это поможет Вам восстановить систему к ее чистому состоянию в случае, если проблема происходит в будущем. Можно взять и управлять снимками виртуальной машины через значок Manage Snapshot, расположенный на панели инструментов. При взятии снимка ему присваивают уникальный идентификатор так, чтобы к нему можно было получить доступ позже через тот идентификатор.

Можно клонировать существующую виртуальную машину с той же ОС и деталями конфигурации путем выбора опции Clone из меню Virtual Machine. Можно отредактировать некоторые конфигурации нового клона, например, Конфигурации сети. Использование этого нового клона состоит в том, что, так как он основан на предыдущем VM, его снимки могут быть особенно полезными для исходного VM. Клоны также полезны в создании и управлении кластеризованной сетью VMs того же типа.

При миграции VM он может успешно быть выполнен в целевой системе. Для миграции VM выберите опцию Migrate из меню Virtual Machine.

Можно также сделать снимок экрана среды VM просто путем выбора опции Take Screenshot из меню Virtual Machine.

Можно позволить виртуальному доступу операционной системы и использовать USB-устройство путем выбора опции USB-устройства Перенаправления из меню Virtual Machine.

Путем отправки комбинаций горячей клавиши в компьютер назначения можно использовать, те включают VM без них оказывающий влияние на хост-машину на ограниченный срок. Виртуальный менеджер идет с рядом таких горячих клавиш, которые можно использовать исключительно на компьютере назначения в течение некоторого времени через меню Send Key.

  • Просмотрите и настройте аппаратные детали

Можно просмотреть и настроить систему и аппаратные детали виртуальной машины путем нажатия на информацию (я сформировал), значок от панели инструментов или путем выбора опции Details из меню View.

Через диспетчера виртуальных машин

Диспетчер виртуальных машин позволяет Вам управлять следующими опциями для своего соединения KVM и нового VM:

Можно контролировать использование ЦП гостя VM и также хост-машина через опцию Graph в Меню Представления.


Через опцию Connection Details в меню Edit можно управлять и настроить Виртуальную сеть, устройство хранения данных и Сетевые интерфейсы соединения KVM.

Можно удалить VM через опцию Delete в меню Edit графического менеджера VM.

Другими Предпочтениями соединения можно управлять через опцию Preferences в Меню Редактирования.

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

Инструкция написана на примере Linux Ubuntu Server 18.04.3 LTS. Она подойдет для большинства дистрибутивов на основе Debian.


Проверка поддержки гипервизора

Проверяем, что сервер поддерживает технологии виртуализации:

cat /proc/cpuinfo | egrep "(vmx|svm)"

В ответ должны получить что-то наподобие:

flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 popcnt aes lahf_lm epb tpr_shadow vnmi flexpriority ept vpid dtherm ida arat

В противном случае, заходим в БИОС, находим опцию для включения технологии виртуализации (имеет разные названия, например, Intel Virtualization Technology или Virtualization) и включаем ее — задаем значение Enable.

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

* если команда вернет ошибку «kvm-ok command not found», установите соответствующий пакет: apt-get install cpu-checker.

INFO: /dev/kvm exists

KVM acceleration can be used

значит поддержка со стороны аппаратной части есть.

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

Для нашего удобства, создадим каталог, в котором будем хранить данные для KVM:

* будет создано два каталога: /kvm/vhdd (для виртуальных жестких дисков) и /kvm/iso (для iso-образов).

\cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime

* данная команда задает зону в соответствии с московским временем.

* выполняем синхронизацию с сервером времени.

Установка и запуск

Устанавливаем KVM и необходимые утилиты управления.

а) Ubuntu до версии 18.10

apt-get install qemu-kvm libvirt-bin virtinst libosinfo-bin

б) Ubuntu после 18.10:

apt-get install qemu-kvm libvirt-daemon-system libvirt-bin virtinst libosinfo-bin

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

Настроим автоматический запуск сервиса:

systemctl enable libvirtd

systemctl start libvirtd

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

Виртуальные машины могут работать за NAT (в качестве которого выступает сервер KVM) или получать IP-адреса из локальной сети — для этого необходимо настроить сетевой мост. Мы настроим последний.

Используя удаленное подключение, внимательно проверяйте настройки. В случае ошибки соединение будет прервано.

apt-get install bridge-utils

а) настройка сети в старых версиях Ubuntu (/etc/network/interfaces).

Открываем конфигурационный файл для настройки сетевых интерфейсов:

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

iface br0 inet static

dns-nameservers 192.168.1.1 192.168.1.2

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

Перезапускаем службу сети:

systemctl restart networking

б) настройка сети в новых версиях Ubuntu (netplan).

* в зависимости от версии системы, конфигурационной файл yaml может иметь другое название.

Приводим его к виду:

* в данном примере мы создаем виртуальный бридж-интерфейс br0; в качестве физического интерфейса используем eth0.

Применяем сетевые настройки:

Настаиваем перенаправления сетевого трафика (чтобы виртуальные машины с сетевым интерфейсом NAT могли выходить в интернет):

sysctl -p /etc/sysctl.d/99-sysctl.conf

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

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

virt-install -n VM1 \

--ram 2048 --arch=x86_64 \

--vcpus=2 --cpu host --check-cpu \

--os-type linux --os-variant=ubuntu18.04 --boot cdrom,hd,menu=on

  • VM1 — имя создаваемой машины;
  • autostart — разрешить виртуальной машине автоматически запускаться вместе с сервером KVM;
  • noautoconsole — не подключается к консоли виртуальной машины;
  • network — тип сети. В данном примере мы создаем виртуальную машину с интерфейсом типа «сетевой мост». Для создания внутреннего интерфейса с типом NAT вводим --network=network:default,model=virtio;
  • ram — объем оперативной памяти;
  • vcpus — количество виртуальных процессоров;
  • disk — виртуальный диск: path — путь до диска; size — его объем;
  • cdrom — виртуальный привод с образом системы;
  • graphics — параметры подключения к виртуальной машины с помощью графической консоли (в данном примере используем vnc); listen — на какой адресе принимает запросы vnc (в нашем примере на всех); password — пароль для подключения при помощи vnc;
  • os-variant — гостевая операционная система (весь список мы получали командой osinfo-query os, в данном примере устанавливаем Ubuntu 18.04).

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

На компьютер, с которого планируем работать с виртуальными машинами, скачиваем VNC-клиент, например, TightVNC и устанавливаем его.

На сервере вводим:

virsh vncdisplay VM1

команда покажет, на каком порту работает VNC для машины VM1. У меня было:

* :1 значит, что нужно к 5900 прибавить 1 — 5900 + 1 = 5901.

Запускаем TightVNC Viewer, который мы установили и вводим данные для подключения:


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

Кликаем по Connect. На запрос пароля вводим тот, что указали при создании ВМ, (vnc_password). Мы подключимся к виртуальной машине удаленной консолью.

Если мы не помним пароль, открываем настройку виртуальной машины командой:

И находим строку:

<graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0' passwd='12345678'>

<listen type='address' address='0.0.0.0'/>

* в данном примере для доступа к виртуальной машине используется пароль 12345678.

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

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

1. Получить список созданных машин:

2. Включить виртуальную машину:

virsh start VMname

* где VMname — имя созданной машины.

3. Выключить виртуальную машину:

virsh shutdown VMname

4. Включить автозапуск виртуальной машины:

virsh autostart VMname

5. Редактирование конфигурации виртуальной машины:

virsh edit VMname

6. Работа с сетевыми интерфейсами.

Добавить обычный сетевой интерфейс (default или NAT) виртуальной машине:

virsh attach-interface --domain VMname --type network --source default --model virtio --config --live

Добавить интерфейс типа bridge:

virsh attach-interface --domain VMname --type bridge --source br0 --model rtl8139 --config --live

Удалить сетевой интерфейс:

virsh detach-interface VMname --type bridge --mac 52:54:00:2e:a9:4d

* где bridge — тип сетевого интерфейса (также может быть network); 52:54:00:2e:a9:4d — MAC-адрес сетевого адаптера (узнать данный адрес можно в конфигурации виртуальной машины или в самой гостевой операционной системы).

7. Посмотреть IP-адреса, выданные виртуальным машинам автоматически:

virsh net-dhcp-leases default

* где default — виртуальная сеть, создаваемая по умолчанию при установке KVM.

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

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

virsh domblklist VMname

* в данном примере путь до диска — /data/kvm/vhdd/VMname-disk1.img.

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

virsh shutdown VMname

* или завершаем работу в самой операционной системе.

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

qemu-img resize /data/kvm/vhdd/VMname-disk1.img +100G

* данной командой мы расширим дисковое пространство виртуального диска /data/kvm/vhdd/VMname-disk1.img на 100 Гигабайт.

Мы должны увидеть:

Получаем информацию о виртуальном диске:

qemu-img info /data/kvm/vhdd/VMname-disk1.img

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

virsh start VMname

Меняем размер блочного устройства:

virsh blockresize UBU /data/kvm/vhdd/VMname-disk1.img 200G

* где 200G — общий размер виртуального диска после расширения.

После необходимо поменять размер диска в самой операционной системе. Пример того, как это можно сделать можно прочитать в инструкции Добавление дискового пространства виртуальной машине в VMware (раздел «Настройка операционной системы»).

Дополнительные средства управления

Virt-Manager

Virt-manager — графическая консоль для управления виртуальными машинами. С ее помощью можно создавать последние, модифицировать их, запускать, останавливать, подключаться консолью.

Установить на Linux Ubuntu:

apt-get install virt-manager

ubuntu-vm-builder

ubuntu-vm-builder — пакет, разработанный компанией Canonical для упрощения создания новых виртуальных машин.

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